首页 > 其他分享 >[CMU 15-418] Lecture2 A Modern Multi-Core Processor

[CMU 15-418] Lecture2 A Modern Multi-Core Processor

时间:2023-04-23 20:02:28浏览次数:43  
标签:Lecture2 Core Multi 15 每个 指令流 指令 线程 执行

本系列文章为 CMU 15-418/15-618: Parallel Computer Architecture and Programming, Fall 2018 课程学习笔记
课程官网:CMU 15-418/15-618: Parallel Computer Architecture and Programming
参考文章:CMU 15-418 notes
相关资源与介绍:CMU 15-418/Stanford CS149: Parallel Computing - CS自学指南

Part 1 parallel execution

image.png


Part 2 access memory

术语:延迟与带宽的区别

image.png

CPUs利用预取(prefeching)来隐藏(hide而不是reduce)访存阻塞(Hiding stalls)
GPUs利用多线程(multi-threading)来隐藏访存阻塞
GPUs一般需要自己的更高速的memory而不是主存,同时其caches更小,级数更少

image.png

Interleaved multi-threading是指相对粗粒度的多线程操作,每个核仍然是在执行一个指令流,出现延迟操作时可以切换线程,由CPU以及硬件进行调度
SMT是多线程与超标量的结合,即一个核不止执行一个指令流中的单条命令,而是可以执行若干线程中的若干指令,相当于指令级别(ILP)的粒度

image.png

一个线程的ILP不够时就可以用SMT来达到更高的ILP
Costs:

  • 需要更多的空间保存线程上下文(multi-thread)
  • 增加了单一线程的运行时间
  • 需要更高的带宽,因为更多的线程->更大的工作集->每个线程的缓存空间减少->更经常访问主存

image.png


Examples

image.png


超标量(superscalar)执行 (ILP)
从一个指令流中每次选出多条指令执行,有多个取指令与ALU硬件
需要处理器在执行阶段检测出在指令流中独立(independent)的操作
每个核每个时钟周期执行多条指令
如图:每个时钟周期执行2条指令

image.png


多核(multi-core)执行
使用pthread并将其划分为两个指令流
有多个指令流,每个指令流进入一个核中执行
每个核每个时钟周期执行一条指令
如图:2个核每个时钟周期执行1条指令 = 2条指令per clock

image.png


多核+超标量执行
每个核每个时钟周期执行多条指令
如图:2个核每个时钟周期执行2条指令 = 4条指令per clock

image.png


四核
使用independent loop iterations
如图:4个核每个时钟周期执行1条指令 = 4条指令per clock

image.png


SIMD(single instruction multiple data)单指令流多数据流
SIMD宽度不是byte或bit而是value
一个宽度多大要看使用的数据类型MMX SSE AVX等(和要使用的寄存器大小有关)SIMD
如图:4个核每个时钟周期执行1个8SIMD宽度的SIMD指令 = 4个8SIMD宽度的SIMD指令per clock

image.png


使用multi-thread技术来hide stalls
有多个线程执行上下文
能够在遇见stalls时切换指令流

image.png


综合 超标量与SIMD与多线程

image.png


一个芯片的所有结构连接在一起结果

image.png


Summary

芯片CPUs/GPUs的运算能力一般远远大于访问内存的速度,所以许多并行程序被存储带宽(memory bandwidth)所限制

image.png

需要了解的术语:

image.png


标签:Lecture2,Core,Multi,15,每个,指令流,指令,线程,执行
From: https://www.cnblogs.com/zncleon/p/17347553.html

相关文章

  • ASP.NET Core Web API 流式返回,逐字显示
    Websocket、SSE(Server-SentEvents)和长轮询(LongPolling)都是用于网页和服务端通信的技术。Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据。SSE是一种单向通信协议,允......
  • 首次发刊!Coremail管理员社区2023年Q1季刊发布
    4月21日,Coremail安全邮件城市沙龙在北京正式开展,此次沙龙活动的主题为“践行教育信创,护航邮件安全”。广东盈世计算机科技有限公司服务副总裁、ICANNUA大使吴秀诚在活动上正式发布《Coremail管理员社区2023年Q1季刊》。Coremail管理员社区Coremail管理社区属于云服务板块之一,由Cor......
  • abp(net core)+easyui+efcore实现仓储管理系统——组织管理升级之下(六十二)
    Abp(netcore)+easyui+efcore实现仓储管理系统目录abp(netcore)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)abp(netcore)+easyui+efcore实现仓储管理系统——解决方案介绍(二)abp(netcore)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(netcore)+eas......
  • netcore 技术栈=
    学习计划.netcore工作原理(基本用法已掌握,但是要更深入一点).netcore的IOC,DI,AOP,DDDABP框架linux(常用命令,ftp)部署.netcore应用到CentOSNginx反向代理及分布式Session在容器中部署.netCore应用通过Nginx反向代理到Docker中的.netCore容器及分布式集成(Docker,K8s,Jenkins,Gi......
  • 【HMS Core】视频编辑服务报错method not allowed 20124、Parameter error. Error: ap
    【关键字】视频编辑服务、报错 【问题背景】问题1:集成视频剪辑服务,在原子能力SDK的素材管理时,提示Parametererror.Error:appIdisinvalid.问题2:视频编辑sdkdemo的所有功能提示methodnotallowed20124,后台已申请动态照片、一键微笑、AI着色、一键动效、一键染发的功能......
  • sql语法错误[1093] You can't specify target table 'score' for update in FROM clau
    不能在同一张表中将查询非结果集作为更新条件执行将需要的结果集外层套一层自查询如updateaseta.num=a.num+1wherea.namein(selecta.agefromawherexx=xxx);报错[1093]Youcan'tspecifytargettable'score'forupdateinFROMclauseupdateaseta......
  • A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms
    介绍多视图立体重建是计算机视觉领域中一个非常重要的研究方向,它可以应用于三维建模、虚拟现实、机器人导航等多个领域。然而,目前多视图立体重建领域存在着很多问题和挑战,例如精度不高、完整性不足等。因此,作者希望通过本文对当前主流算法进行比较和评估,为该领域的进一步发展提供......
  • .Net Core学习心得
    4.21:简单RBAC项目获取用户所在权限的菜单项第一款方案:用户表、用户角色表、角色表、角色权限表、权限表五表联查publicList<PermissionDto>GetMenus(longuserid){//获取全部的数据varuser=_dbContext.Users.AsQueryable();varrole=_dbContext.Roles.AsQueryable()......
  • [2core]条形码+ZXing.NET+SkiaSharp
    在将验证码功能代码从.netframework迁移到.net6后,马上就想到了条形码(1D和2D)的迁移事项,主要它们两者都涉及到图片处理方面的知识和技术。由于之前使用了类库ZXing.NET,因此在.net6中也使用了它。但是如果想要跨平台使用,就需要和图片处理的类库建立绑定关系,所以就选择了其支持的Skia......
  • hive出现MetaException(message:Metastore contains multiple versions (2)异常
    1、使用Spark操作Hive表时发生的报错2、错误日志23/04/1908:49:28WARNmetadata.Hive:Failedtoaccessmetastore.Thisclassshouldnotaccessedinruntime.org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:Unabletoinstantiateor......