2KB项目,专业的源码交易网站 帮助 收藏 每日签到

针对吞吐量优化的架构

  • 时间:2019-01-23 18:45 编辑:2KB 来源:2KB.COM 阅读:329
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:Und
英文原文:Understanding Throughput-Oriented Architectures

已经有许多关于商业微处理器从单内核过度到多内核的文章,这个趋势表现的最明显的是CPU处理器上面。现在的商业PC机通常包含2至8个核心,当然,将来可能会更多。用这么多内核的目的是通过利用适当的并行工作负载来执行多个独立的程序或者执行由多个并行任务组成的程序,从而实现更高的性能,然而单核芯片要维持相同性能只能靠顺序的工作负载(译者注:明显力不从心嘛!)

与此相关的一个架构趋势是日益突出的面向吞吐量微处理器架构体系。有一些处理器,比如SUN的Niagara,NVIDIA的图形处理单元或GPU,都跟随着早先的面向吞吐量处理器的设计,但是更广泛地被使用了在商品机上面。笼统的说,他们更专注于执行并行工作负载,同时试图提高总吞吐量,即使牺牲 一个任务中可能需要的串行方面的性能。虽然提高总吞吐量在单个任务上面增加时延并不是一个好的权衡,但是这确实是一个无可非议的、正确的设计决策在许多 依赖并行计算的问题领域,包括实时计算机图形、视频处理、医学图像分析、分子动力学、天体物理模拟和基因序列调整。

现在的GPU是完全可编程的,设计来满足问题领域——实时计算机图形,有极大的固有的并行性。此外,实时图像在工作的总量上放置了一个可以完成一个帧的额外时间(通常持续1/30秒)。由于他们历史的发展,GPU已经发展成了面向吞吐量处理器架构的典范。他们强调吞吐量的优化、期望丰富和可用的并行性要比其他面向吞吐量的架构更好。他们也可以广泛的使用和易于编程。NVIDIA在2006年发布了其首款支持CUDA并行计算架构的GPU,目前正在发售的代号为“Fermi”24的第三代CUDA架构,是NVIDIA在2010年发布的Tesla C2050和其他处理器。

图1所示的为一个包含25095个原子的核小体结构,该结构可以用来评测用于分子动力学模拟程序工具包的AMBER的性能。分子动力学领域中的多核计算具有其内在的并行性,因此,近期AMBER增加了加速CUDA计算功能。目前溶剂方面的计算依赖的是由2台4核的Intel Xeon E5462处理器组成的8核计算系统,在采用了加速CUDA计算功能后,计算速率可达到每天中平均0.06纳秒一次,而同样的情况若采用NVIDIA Tesla C2050则是每天中平均1.04纳秒一次,该速率大概仅是单核顺序运算的144倍,也仅是八核运算的17倍之多。

以GPU为例,本篇文章将分析吞吐量优化处理器和比较传统的时延优化处理器间的基础架构设计方案的不同。这些不同同时也导致了并行编程方法,从性质上来说,就与现在流行的CPU并行线程模型不同。

 

吞吐量优化的处理器

任务延迟(任务发起到完成所花费的时间)和吞吐量(单位时间完成的工作总量)作为两种基本的处理器性能衡量指标。为了避免顾此失彼,处理器设计在时延和吞吐量两者间优化方面做了许多精心的权衡。根据可能承受的工作负载,现实世界中的处理器倾向于打破两者优化间的平衡。

传统的标量微处理器基本上是采用时延优化类型的架构,旨在任何时候通过避免任务级别延迟来减少单个串行程序的运行时间。很多架构技术包括无序执行、推断执行,复杂内存缓存都可以避免任务级别延迟。这种传统的设计方法是基于认为工作负载中提供给处理器的可用并行执行数是非常稀缺的保守判断。典型的英特尔奔腾4单核标量处理器在时延优化上可谓下足了功夫。最近很多多核处理器(比如英特尔酷睿2双核和酷睿i7)反映着一种趋势,即在时延优化上做了让步并且支持适量的并行执行。

相反地,基于工作负载中可以支持高并行这种认识,吞吐量优化处理器产生了。这种不同导致了区别于传统时序机的架构产生。一般来说,吞吐量优化处理器架构有三个重要特征:强调采用多个单核处理器,广泛的硬件多线程,使用单指令多数据(或者称为SMID)执行。以GPU为例,积极地提高吞吐量类型的处理器愿意牺牲单线程执行效率去扩大整个线程中总体计算吞吐量。(译者注:翻完时浏览器挂掉又得重翻的说,吃力ing....)

成功的处理器不可能只优化总体任务吞吐量然而完全忽略单一任务延迟,反之亦然。不同处理器在时延或吞吐量优化方面着重点不同。例如,单一吞吐量优化架构也许不都采用上述3个特点。同样值得注意的是,不同架构策略包含流水线、复用、无序执行,通过提高指令级吞吐量来避免任务级别延迟。

硬件多线程。很多并行的计算能被分解一系列并发的时序任务,在所有线程中这些任务潜在地可能并行执行或同步执行。我们把每个线程都看做一个虚拟标量处理器,很显然表示每个线程都有程序计数器、寄存器文件和相应地处理器状态。因此单一线程可以执行单一时序任务对应的指令流。值得注意的是这种线程模型是不管并发线程是如何调动的,比如说,线程间是否调度合理(任何等待的线程是否最终得到执行)就是另外一回事。

众所周知,多线程,不管是软件级的还是硬件级的,提供了一种容许延迟的方案。如果指定线程因为等待某个指令(比如等待流水线指令单元完成、等待外部DRAM数据到达、或者其他事件)完成而被阻塞,那么支持多线程的系统允许另一个阻塞的线程执行。也就是说,单线程中长延时的操作可以被另一个位于就绪状态的线程隐藏或者覆盖。这里说的容许延迟,其中的处理器利用率并不会应为部分活动线程被阻塞而出现下降,这也是面向吞吐量处理器的一个标志。

硬件多线程作为一种提高并行工作负载上的集群性能的设计策略已经有很长的的一段历史。20世纪六十年代开发的数据控制公司CDC 6600 的外围处理器和 七十年代末开发异构元素处理器系统 28 都是著名的早期硬件多线程运用(实例)。这些年来已经有许多更加多线程化的处理器被设计出来 31;比如,Tera,Sun Niagara,以及 NVIDIA GPU22 架构都使用了集成多线程来实现并行工作负载的高吞吐性能,通过交错多线程。每一个线程都能够在每一个(线程)周期中的进行线程间切换。所以线程的的执行都交错在非常小的粒度上,通常是指令级别的。 本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部