ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:1.80MB ,
资源ID:21511857      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21511857.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(异构计算发展现状分析Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

异构计算发展现状分析Word文件下载.docx

1、由于母公司AMD的变动,ATI Radeon的份额不会有大幅的增加。未来一两年,众核高性能计算市场是三家争霸。通用计算GPU发展历程GPU通用计算不是偶然出现的,它是传统计算机芯片技术发展的必然结果。CPU处理器经过几十年的发展,逐渐遇到几个非常困难的技术问题。此时专为视觉计算设计的图形处理单元(GPU)技术已经成熟,GPU的设计体系恰好能够在一定条件下解决CPU的技术难题,先前只用来处理图形的GPU找到了高性能计算这个新的领域,称为通用计算GPU(General Purpose GPU)。CPU处理器发展历程计算机诞生的几十年以来,CPU芯片技术一直按照摩尔定律飞速发展,每隔十八个月,单位芯

2、片面积上的晶体管数量就增加一倍,性能提高一倍。下图统计了1970年至2010年主要型号CPU包含的晶体管数量,可以看出增加速度近似为一条直线。提高CPU性能的主要手段为提高时间频率,从下图可以看出,在2005年以前,时间频率基本上线性增加在此过程中解决了一个又一个的技术难题,如时钟频率、超标量架构、流水线技术等。20世纪80年代精简指令型CPU诞生了,精简指令型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由56个不同功能的电路单元组成一条指令处理

3、流水线,然后将一条X86指令分成56步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。然而,超过一定点之后,不断的加速时钟频率就会开始进入收益递减

4、的阶段。这就是为什么一千兆赫的芯片的运行速度达不到500兆赫的两倍那么快的原因。时钟在从头至尾的工作中必须协调芯片上数百万个晶体管的工作,这产生了它自己的耗费。时钟的频率越高,耗费就越大。并且伴随着功耗的不断增加和仿存能力的限制,CPU处理能力已经存在了一定的瓶颈。2005年之后CPU时间频率没有显著提高。这是因为CPU芯片技术遇到难以解决的困难:内存墙和功耗墙。内存延迟和内存墙:计算机的内存是用动态存储电路(DRAM)实现的。DRAM存储一位信息只使用一个晶体管。DRAM的好处是密度大,坏处是有很大的延迟。静态存储电路(SRAM)存储一位信息使用六个晶体管,好处是基本没有延迟,但是密度很小,

5、容量做不上去。所以,现在的计算机内存使用的都是DRAM。DRAM的延迟是个物理极限,除非有革命性的突破,很难减小。内存延迟是指内存在接到访问命令后,要等一段时间,才能传回数据。这个延迟在100纳秒左右。 过去30年,DRAM内存的传输速度(仅仅是传输数据的速度)有所提高,但是DRAM的延迟始终没有什么改善,反而有继续扩大的趋势。最新的内存标准DDR3,在延迟上比老的DDR2标准还要大一点。虽然DDR3标准的内存条工作电压低于DDR2,但是功耗却明显比DDR2要高,以至于需要散热片。CPU速度按照摩尔定律提高并不意味着CPU的实际性能也有相应的提高。过去40年,内存的速度提高不大,延迟没有降低。

6、内存延迟已经成为制约CPU实际处理能力的瓶颈,这个问题被称为内存墙(Memory Wall)。早在十几年前,少数顶尖科学家就非常重视“内存墙”(Memory Wall)的问题。尽管“内存墙”问题非常严重,但是,大家对于如何解决“内存墙”问题毫无头绪,还是只在CPU核心做文章。结果就是把CPU核心做得越来越复杂,越来越烫,也越来越多。现在的主流通用CPU功耗基本上都在100瓦以上,甚至高达200瓦以上。CPU的高耗电已经成为一个巨大环境问题。一台PC服务器最少200瓦,一年的耗电就有1千7百千瓦时。据估计,Google的服务器群电费每年最少有5亿美元。高功耗是“内存墙”问题导致的副产品:因为无法

7、提高性能,所以迫不得已使用高功耗的高速电路。因为“内存墙”,目前通用CPU工业的发展已经陷入了停滞状态。Intel推出的许多款新CPU,有更多,更快,也更烫的CPU核心,但是实际处理性能几乎没有任何进步。“内存墙”是全世界学术界和工业界研究的重点。解决“内存墙”问题的传统技术是使用CPU缓存。30年来,CPU缓存一直也是研究的重点,但是少有新发现。全世界所有CPU缓存的设计都大同小异,都是20年前的技术。我们很幸运地发现了一个内存访问的新规律,并发明了一个新CPU缓存算法和电路。新的CPU缓存可以降低网络应用的缓存失误率高达50%,降低三维动画和数字视频的失误率超过30%。这是30年来计算机体

8、系结构领域最大的突破。CPU核心和缓存:通用CPU一般由两部分组成:CPU核心和CPU缓存。CPU缓存是一小块高速存储模块,使用静态存储电路SRAM制造,做在和CPU核心同一块硅片上。CPU缓存延迟短,速度快,但是容量很小。从CPU缓存中读取数据一般只需要1到10个周期,也就是四分之一纳秒到5纳秒不到。相比之下,从内存读入数据,最少需要120纳秒,一般要150纳秒以上。CPU缓存容量相对于内存是非常小的。CPU缓存只能存储整个内存数据的很小一部分。当数据在缓存中发现,被称为缓存命中(Cache Hit);当数据不在缓存中,被称为缓存失误(Cache Miss)。缓存命中时,CPU核心就不需要去

9、内存取数据,因此可以高速执行。缓存失误时,CPU必须从内存读取数据。由于内存的延迟,CPU核心必须停下来等待数据。CPU缓存的性能是用失误率(miss rate)或者命中率(hit rate)来衡量的。不同的程序,CPU缓存的失误率不一样,一般在1%或者2%左右。科学计算程序的缓存效果好,失误率低,可以低于1%。三维动画,多媒体,数字视频和网络程序的CPU缓存效果差,失误率有时甚至超过2%。因此,这些程序的运行速度慢。CPU缓存减少内存访问次数的效果是很明显的,90%以上的数据读取都可以在缓存中完成。但是,因为内存延迟相对于CPU核心的速度差实在太大,以至于1%的CPU缓存失误率依然会导致CP

10、U核心在50%以上的时间里是空闲的。一次内存访问的耗时相比于CPU核心的运算速度的比率叫做Cache Miss Penalty(缓存失误惩罚比)。这个Penalty,目前已高于500,很快就会到1000以上。也就是说,一次缓存失误相当于执行几百到一千条指令。根据IBM研究所的数据,平均每执行60条指令,就会有一次缓存失误,也就是一次内存访问。一个低端的1GHz的单核CPU执行60条指令只需60纳秒,而内存访问最少耗时120纳秒。那么,CPU将在三分之二的时间里是空闲的。当内存端口满负荷时,CPU核心大部分时间都是空闲的。更快,更多的CPU核心,也只是空闲更多而已,对提高CPU的实际性能完全没有

11、任何意义。现在的CPU都是尽可能地设计更多的内存端口,使用上千根管脚。但是,由于芯片封装的限制,继续大幅增加CPU的管脚数目是很困难的。依靠增加内存通道数来提高CPU性能这条路走不通。CPU缓存是对CPU性能影响最大的部件。缓存的容量越大,失误率越低。但是,增加缓存的容量并非一个可行的办法。首先,CPU缓存已经占据了CPU芯片面积的50%以上,晶体管的80%以上。某些高端CPU,缓存使用的晶体管更是高达90%。继续增加CPU缓存的容量已经不太可能。更重要的是,加大缓存的容量,失误率降低并不多。Intel的Atom芯片的缓存只有512KB,而i7芯片的缓存高达8MB,是Atom芯片的16倍。由于

12、加大缓存容量,性能提高不明显,使得学术界和工业界在CPU设计的思路上,陷入了一个两难的处境。CPU的设计思路分为对立的两派:一派认为应该设计更大的CPU缓存,一派则是更多更快的CPU核心。两派的想法都有各自的道理,却都解决不了问题。支持更大缓存的一派的出发点是,CPU核心大部分时间是空闲的,增加CPU核心没有意义。支持更多CPU核心的一派的逻辑基础是,增加CPU缓存,并不能改善缓存的失误率。Intel是属于加大缓存的一派,Intel的CPU核心相对于AMD一直比较少。GPU(图形处理器)是属于后一派,GPU有成百上千个核心。IBM则是两边都下注,IBM既有多核但缓存小的CPU比如Cell芯片,

13、又有只有双核,但是带很大缓存的,比如Power6芯片。提高CPU缓存性能的希望在于设计更“聪明”的缓存替换算法,王去非博士提出Principle of Short Lifetime,并据此设计的WLRU算法能极大地提高CPU的性能。功耗墙:25年间Intel八代微处理器的时钟频率和功耗的增长趋势。两者的增长几乎保持了将近20年,但近几年来突然缓和下来。其原因在于两者是密切相关的,而且功耗已经到达了极限,无法再将处理器冷却下来。占统治地位的集成电路技术是CMOS(互补型金属氧化半导体),其主要的功耗来源是动态功耗,即在晶体管开关过程中产生的功耗。动态功耗取决于每个晶体管的负载电容、工作电压和晶体

14、管的开关频率:功耗=负载电容电压2开关频率为什么时钟频率增长为1000倍,而功耗只增长为30倍呢?因为功耗是电压平方的函数,能够通过降低电压来大幅减少,每次工艺更新换代时都会这样做。一般来说,每代的电压降低大约15%。20多年来,电压从5V降到了1V。这就是功耗只增长为30倍的原因所在。目前的问题是如果电压继续下降会使晶体管泄漏电流过大,就像水龙头不能被完全关闭一样。目前40%的功耗是由于泄漏造成的,如果晶体管的泄漏电流再大,情况将会变得无法收拾。为了解决功耗问题,设计者连接大设备,增加冷却,而且将芯片中的一些在给定时钟周期内暂时不用的部分关闭。尽管有很多更加昂贵的方式来冷却芯片,而继续提高芯

15、片的功耗到300瓦特,但对桌面计算机来说成本太高了。由于计算机设计者遇到了功耗墙问题,他们需要开辟新的路径,选择不同于已经用了30多年的方法继续前进。这就进入多核时代。GPU通用图形处理器的发展GPU计算是指利用图形卡来进行一般意义上的计算,而不是传统意义上的图形绘制。时至今日,GPU已发展成为一种高度并行化、多线程、多核的处理器,具有杰出的计算功率和极高的存储器带宽,如图所示。CPU和GPU的每秒浮点运算次数和存储器带宽CPU和GPU之间浮点功能之所以存在这样的差异,原因就在于GPU专为计算密集型、高度并行化的计算而设计,上图显示的正是这种情况,因而,GPU的设计能使更多晶体管用于数据处理,

16、而非数据缓存和流控制,如图所示。GPU中的更多晶体管用于数据处理更具体地说,GPU专用于解决可表示为数据并行计算的问题在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存储器运算的比率)。由于所有数据元素都执行相同的程序,因此对精密流控制的要求不高;由于在许多数据元素上运行,且具有较高的计算密度,因而可通过计算隐藏存储器访问延迟,而不必使用较大的数据缓存。数据并行处理会将数据元素映射到并行处理线程。许多处理大型数据集的应用程序都可使用数据并行编程模型来加速计算。在3D渲染中,大量的像素和顶点集将映射到并行线程。类似地,图像和媒体处理应用程序(如渲染图像的后期处理、视频编码和解码、图

17、像缩放、立体视觉和模式识别等)可将图像块和像素映射到并行处理线程。实际上,在图像渲染和处理领域之外的许多算法也都是通过数据并行处理加速的从普通信号处理或物理仿真一直到数理金融或数理生物学。在上述领域,GPU计算已经获得了成功的应用,并取得了令人难以置信的加速效果。而且,随着大数据存储技术的成熟和深度学习模型理论上的突破,GPU加速计算在基于深度神经网络模型的图像分类、人脸识别、语音训练等新型领域也表现得越发活跃,有着不错的加速。GPU的应用加速效果GPU加速计算的创新领域GPU计算得到了业界的广泛支持,NVIDIA、AMD、INTEL等都对芯片市场的微妙变化和GPU计算的技术发展前景都极为关注

18、,并展开了激烈的技术竞赛。NVIDIA最早提出了GPU计算概念。2007年2月,NVIDIA正式发布了CUDA架构(Compute UnifiedDevice Architecture统一计算设备架构),这也是NVIDIA确定的GPU计算产品的正式名称。CUDA是GPU计算产品的一个新的基础架构,一个完整的GPU计算解决方案,它采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案;它提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。CUDA是世界上第一个针对GPU的C语言

19、开发环境的GPU计算产品,其工具集的核心是一个C语言编译器,利用它可以最大限度地提升流处理单元浮点运算能力。CUDA架构的成功尝试,为业界GPU计算的研发提供了宝贵的借鉴。早在2006年收购ATI之初,AMD就做出了一个重大举动,这就是它所发布的GPU计算“Stream Processor”(流处理器),率先将GPU计算技术引入普通应用阶段。AMD也提出了以Fusion为研发代号的硅芯片整合计划。Fusion提供基于融合处理器的GPU计算平台融合,二个Fusion处理器一起连接可以达到并行GPU的关系,更适合CPU的代码将在Fusion处理器当中的CPU部分被执行,而更适合GPU的代码也将在F

20、usion处理器的GPU部分被执行。作为全球最大的CPU供应商,Intel早已经敏锐地意识到,GPU通用计算将给PC带来革命性的变化。Intel采取了与NVIDIA以GPU为核心的截然不同的研发理念,将GPU计算纳入了CPU的发展轨道。业界普遍对Intel首款Larrabee芯片充满了期待。Larrabee在硬件设计上,采用微内核设计,内核逻辑采用顺序执行结构(InOrder),可同时执行4个线程。在指令体系上,Larrabee最大的优点就是与IA架构(X86)处理器的互换性,它使用经过调整的X86指令,使现行X86计算程序可以直接被Larrabee运算执行。GPU计算的发展前景一片光明,也必

21、将在更多的领域内得到更广泛的支持和应用。通用计算GPU硬件产品目前,GPU厂商分成两大阵营,NVIDIA公司作为全球专业的GPU生产厂商,力推其Tesla系列的高性能计算产品,以新发布的Fermi为其拳头产品。AMD并购ATI以后,致力于把GPU推上高性能计算的发展道路,其推出的Fusion的产品APU,主张把CPU与GPU融合,与NVIDIA公司一决高下。NVIDIA Fermi架构Fermi架构在即G80架构之后的又一重要的GPU架构。G80架构在时NVIDIA公司最初的通用计算GPU架构,既可以做图形计算,也可以用来做并行计算。GT200架构扩展了G80架构的特点和功能。对于Fermi而

22、言,是NVIDIA 公司总结G80和GT200架构以后,几乎是重新设计的专门针对于通用计算的 GPU架构。Fermi的设计采纳了用户在使用G80和GT200架构时候给出的建议。Fermi的主要设计针对于以下几点:单精度的计算大概是桌面CPU的10倍的时间左右,并且一些应用需要GPU提供更强的双精度运算。 ECC的添加,使得内存有容错的能力。 有些并行计算并不一定能使用到shared memory,所以更多的需求是在内存访问中加上缓存。 有些CUDA程序需要超过16KB的SM shared memory来加速他们的运算。 用户需要更快的应用程序和图形显示之间的资源切换。 用户需要更快的原子读写操

23、作来加速并行程序运算。Tesla GPU的20系列产品家族基于代号为Fermi的下一代CUDA架构,支持技术与企业计算所必备的诸多特性,其中包括C+支持、可实现极高精度与可扩展性的ECC存储器以及7倍于Tesla 10系列GPU的双精度性能。Tesla C2050与C2070 GPU旨在重新定义高性能计算并实现超级计算的平民化。尺寸规格9.75英寸PCIe x16规格Tesla GPU的数量1CUDA核心数量448CUDA核心频率1.15 GHz双精度浮点性能515 Gflops单精度浮点性能1.03 Tflops专用存储器总容量Tesla C20503GB GDDR5Tesla C20706

24、GB GDDR5存储器频率1.5 GHz存储器接口384位NVIDIA Kepler架构NVIDIA Tesla并行计算架构从G80架构,Fermi架构到目前Kepler架构,每一代架构更新都带来产品工艺、计算能力、存储带宽等方面的巨大提升,与CPU相比GPU发展更快,具有更强大的计算能力。2012年NVIDIA推出的Kepler架构,Kepler GK110由71亿个晶体管组成,是当时速度最快,架构最为复杂的微处理器,GK110应用于Tesla K20产品,开启了2496个流处理器。Kepler GK110架构三个重要特点: SMX 新一代流式多处理器Kepler GK110 GPU的核心是

25、SMX单元,集成了几个架构创新,这不仅使其成为有史以来功能最强大的流式多处理器(SM),而且最省电最具编程性。SMX:192个CUDA核、32个特殊功能单元(SFU)和32个加载存/储单元(LD/ST) Dynamic Parallelism 动态创建工作在设计Kepler GK110架构的总体目标之一是使开发人员更容易更轻松地利用GPU的巨大处理能力。为此新的Dynamic Parallelism功能,使Kepler GK110 GPU能通过应用不返回主机CPU的数据而动态创建新的线程。这使得多个程序能直接在GPU上执行,因为现在内核有能力独立承担所需的额外工作量。任何内核可以启动另外一个内

26、核,并创建额外的工作所需的必要流程、事件和依赖,而无需主机CPU的介入。这种简化的编程模式更易于创建、优化和维护。它还通过为GPU维持与传统CPU内核启动工作负载相同的语法,创建了一个程序员友好环境。Dynamic Parallelism拓宽了目前在各领域利用GPU可以完成的应用程序。应用程序可以动态启动中小型并行工作负载,这在以前系统开销是非常大的。没有Dynamic Parallelism的情况下,CPU启动GPU上的每个内核。有了该新功能Kepler GPU可以启动嵌套内核,不需要与CPU进行通信 Hyper-Q最大化GPU资源Hyper-Q允许多个CPU核同时在单一GPU上启动工作,从

27、而大大提高了GPU的利用率并消减了CPU空闲时间。此功能增加了主机和Kepler GPU之间的连接总数,允许32个并发、硬件管理的连接,与Fermi相比,Fermi只允许单个连接。Hyper-Q是一种灵活的解决方案,允许CUDA流程和消息传递接口(MPI)进程的连接、先前被假设依赖限制的现有应用程序,可以在不改变任何现有代码的情况下达到32倍的性能提升。Hyper-Q在基于MPI并行计算机系统中使用会有较明显的优势。通常会在为多核CPU系统中运行而创建基于MPI的传统算法。由于以CPU为基础的系统可以有效处理的工作负载通常比使用GPU处理的要小,所以一般每个MPI进程中通过的工作量是不足以完全

28、占据GPU处理器。虽然可以一直发出多个MPI进程同时运行在GPU上,但是这些进程可能会由于假依赖会成为瓶颈,迫使GPU低于最高效率运行。Hyper-Q消除了假依赖的瓶颈,并大幅提高了从系统CPU将MPI进程移动到GPU的处理速度。Hyper-Q必定会是MPI应用程序性能提高的驱动。Hyper-Q允许使用一个单独的工作队列同时运行所有的流程。在Fermi模式下,由于单一的硬件工作队列引起的流程内的依赖,并发受限。目前主流的Tesla Kepler架构产品及相关指标如下所示:主流NVIDIA Tesla Kepler架构产品线Tesla K80Tesla K40Tesla K20XTesla K20Stream Processors2 * 24962880 26882496Core Clock562 MHz745 MHz732 MHz706 MHzBoost Clock(s)875 MHz875MHz,810MHzN/AMemory Clock5 GHz DDR56GHz DDR55.2 GHz DDR5Memory Bus Width2 x 384-bit384-bit

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1