版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 异构(众核)计算发展现状分析目 录 TOC o 1-3 h z u HYPERLINK l _Toc530404749 1.1 众核计算发展现状 PAGEREF _Toc530404749 h 3 HYPERLINK l _Toc530404750 1.1.1 通用计算GPU发展历程 PAGEREF _Toc530404750 h 4 HYPERLINK l _Toc530404751 1.1.2 通用计算GPU硬件产品 PAGEREF _Toc530404751 h 12 HYPERLINK l _Toc530404752 1.1.3 通用计算GPU编程环境 PAGEREF _Toc530
2、404752 h 22 HYPERLINK l _Toc530404753 1.1.4 Intel Xeon Phi协处理器 PAGEREF _Toc530404753 h 27众核计算发展现状AMD多核处理器目前最多16个核心,Intel处理器最多18个核心,由于功耗、制造工艺等方面的困难,核数的增加越来越慢。而众核处理器比多核处理器拥有更多的计算核心,目前主流的众核处理器最少有60个的核心,最多有4992个核心。目前最流行的众核处理器有三种:nVidia GPU、AMD GPU、Intel Xeon Phi。2014年12月10日, NVIDIA正式发布了配置24GB显存的双处理器版Tes
3、la K80,拥有4992个处理核心,双精度浮点计算能力最高可达2.91TFLOPs,内部存储器带宽达480GB/s。图:TOP500中使用协处理器的系统越来越多图:2014年底HPC TOP500协处理器使用分布图高性能计算机TOP500名单每年发布两次,它列出世界范围内计算能力最强的500套计算机。这个名详细单统计入围计算机的排名、所在地点、制造商、计算机型号、国家或地区、安装年份、应用领域、处理器核心数量、LINPACK实测峰值、计算机理论峰值、所用网络设备等详尽信息。这个名单从1993年开始发布,目的是研究计算机技术的历史演化,为计算制造商、用户提供参考。从TOP500的统计数据中可以
4、看出,自2007年至2012年12月,使用各类加速卡的超级计算机从1套增加到62套,其中IBM Cell 2套,ATI Radeon 2套,NVIDIA Fermi 48套,Intel Xeon Phi 7套,NVIDIA Kepler 2套。按装机套数统计,带加速卡的超级计算机比重为12.5%。在所有加速卡中,NVIDIA公司生产的GPU占绝对优势,份额达到80.6%。2010年夺得第2名成绩的星云超级计算机和2011年夺得第1名的天河超超级计算机,都使用了GPU加速卡。2012年名单中的第1名Titan使用18000余块最新NVIDIA GPU K20X。2013年排名第一的天河二号使用了
5、Intel Xeon Phi。可以预见,在未来几年的超级计算机和高性能计算中,GPU加速仍将扮演重要角色。IBM Cell的份额会持续下降,借助Intel的大力推广,Intel Xeon Phi的份额会上升。由于母公司AMD的变动,ATI Radeon的份额不会有大幅的增加。未来一两年,众核高性能计算市场是三家争霸。通用计算GPU发展历程GPU通用计算不是偶然出现的,它是传统计算机芯片技术发展的必然结果。CPU处理器经过几十年的发展,逐渐遇到几个非常困难的技术问题。此时专为视觉计算设计的图形处理单元(GPU)技术已经成熟,GPU的设计体系恰好能够在一定条件下解决CPU的技术难题,先前只用来处理
6、图形的GPU找到了高性能计算这个新的领域,称为通用计算GPU(General Purpose GPU)。CPU处理器发展历程计算机诞生的几十年以来,CPU芯片技术一直按照摩尔定律飞速发展,每隔十八个月,单位芯片面积上的晶体管数量就增加一倍,性能提高一倍。下图统计了1970年至2010年主要型号CPU包含的晶体管数量,可以看出增加速度近似为一条直线。提高CPU性能的主要手段为提高时间频率,从下图可以看出,在2005年以前,时间频率基本上线性增加在此过程中解决了一个又一个的技术难题,如时钟频率、超标量架构、流水线技术等。20世纪80年代精简指令型CPU诞生了,精简指令型CPU不仅精简了指令系统,还
7、采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由56个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成56步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即指令预取、译码、执行、写回结果,浮点流水又分为八级流水。超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是
8、以时间换取空间。例如Pentium 4的流水线就长达20级。将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。然而,超过一定点之后,不断的加速时钟频率就会开始进入收益递减的阶段。这就是为什么一千兆赫的芯片的运行速度达不到500兆赫的两倍那么快的原因。时钟在从头至尾的工作中必须协调芯片上数百万个晶体管的工作,这产生了它自己的耗费。时钟的频率越高,耗费就越大。并且伴随着功耗的不断增加和仿存能力的限制,CPU处理能力已经存在了一定的瓶颈。2005年之后CPU时间频率没有显著提高。这是因为CPU芯片技术遇到难以解决的困难:内存墙和功耗墙。内存延迟和内存墙:计算机的
9、内存是用动态存储电路(DRAM)实现的。DRAM存储一位信息只使用一个晶体管。DRAM的好处是密度大,坏处是有很大的延迟。静态存储电路(SRAM)存储一位信息使用六个晶体管,好处是基本没有延迟,但是密度很小,容量做不上去。所以,现在的计算机内存使用的都是DRAM。DRAM的延迟是个物理极限,除非有革命性的突破,很难减小。内存延迟是指内存在接到访问命令后,要等一段时间,才能传回数据。这个延迟在100纳秒左右。 过去30年,DRAM内存的传输速度(仅仅是传输数据的速度)有所提高,但是DRAM的延迟始终没有什么改善,反而有继续扩大的趋势。最新的内存标准DDR3,在延迟上比老的DDR2标准还要大一点。
10、虽然DDR3标准的内存条工作电压低于DDR2,但是功耗却明显比DDR2要高,以至于需要散热片。CPU速度按照摩尔定律提高并不意味着CPU的实际性能也有相应的提高。过去40年,内存的速度提高不大,延迟没有降低。内存延迟已经成为制约CPU实际处理能力的瓶颈,这个问题被称为内存墙(Memory Wall)。早在十几年前,少数顶尖科学家就非常重视“内存墙”(Memory Wall)的问题。尽管“内存墙”问题非常严重,但是,大家对于如何解决“内存墙”问题毫无头绪,还是只在CPU核心做文章。结果就是把CPU核心做得越来越复杂,越来越烫,也越来越多。现在的主流通用CPU功耗基本上都在100瓦以上,甚至高达2
11、00瓦以上。CPU的高耗电已经成为一个巨大环境问题。一台PC服务器最少200瓦,一年的耗电就有1千7百千瓦时。据估计,Google的服务器群电费每年最少有5亿美元。高功耗是“内存墙”问题导致的副产品:因为无法提高性能,所以迫不得已使用高功耗的高速电路。因为“内存墙”,目前通用CPU工业的发展已经陷入了停滞状态。Intel推出的许多款新CPU,有更多,更快,也更烫的CPU核心,但是实际处理性能几乎没有任何进步。“内存墙”是全世界学术界和工业界研究的重点。解决“内存墙”问题的传统技术是使用CPU缓存。30年来,CPU缓存一直也是研究的重点,但是少有新发现。全世界所有CPU缓存的设计都大同小异,都是
12、20年前的技术。我们很幸运地发现了一个内存访问的新规律,并发明了一个新CPU缓存算法和电路。新的CPU缓存可以降低网络应用的缓存失误率高达50%,降低三维动画和数字视频的失误率超过30%。这是30年来计算机体系结构领域最大的突破。CPU核心和缓存:通用CPU一般由两部分组成:CPU核心和CPU缓存。CPU缓存是一小块高速存储模块,使用静态存储电路SRAM制造,做在和CPU核心同一块硅片上。CPU缓存延迟短,速度快,但是容量很小。从CPU缓存中读取数据一般只需要1到10个周期,也就是四分之一纳秒到5纳秒不到。相比之下,从内存读入数据,最少需要120纳秒,一般要150纳秒以上。CPU缓存容量相对于
13、内存是非常小的。CPU缓存只能存储整个内存数据的很小一部分。当数据在缓存中发现,被称为缓存命中(Cache Hit);当数据不在缓存中,被称为缓存失误(Cache Miss)。缓存命中时,CPU核心就不需要去内存取数据,因此可以高速执行。缓存失误时,CPU必须从内存读取数据。由于内存的延迟,CPU核心必须停下来等待数据。CPU缓存的性能是用失误率(miss rate)或者命中率(hit rate)来衡量的。不同的程序,CPU缓存的失误率不一样,一般在1%或者2%左右。科学计算程序的缓存效果好,失误率低,可以低于1%。三维动画,多媒体,数字视频和网络程序的CPU缓存效果差,失误率有时甚至超过2%
14、。因此,这些程序的运行速度慢。CPU缓存减少内存访问次数的效果是很明显的,90%以上的数据读取都可以在缓存中完成。但是,因为内存延迟相对于CPU核心的速度差实在太大,以至于1%的CPU缓存失误率依然会导致CPU核心在50%以上的时间里是空闲的。一次内存访问的耗时相比于CPU核心的运算速度的比率叫做Cache Miss Penalty(缓存失误惩罚比)。这个Penalty,目前已高于500,很快就会到1000以上。也就是说,一次缓存失误相当于执行几百到一千条指令。根据IBM研究所的数据,平均每执行60条指令,就会有一次缓存失误,也就是一次内存访问。一个低端的1GHz的单核CPU执行60条指令只需
15、60纳秒,而内存访问最少耗时120纳秒。那么,CPU将在三分之二的时间里是空闲的。当内存端口满负荷时,CPU核心大部分时间都是空闲的。更快,更多的CPU核心,也只是空闲更多而已,对提高CPU的实际性能完全没有任何意义。现在的CPU都是尽可能地设计更多的内存端口,使用上千根管脚。但是,由于芯片封装的限制,继续大幅增加CPU的管脚数目是很困难的。依靠增加内存通道数来提高CPU性能这条路走不通。CPU缓存是对CPU性能影响最大的部件。缓存的容量越大,失误率越低。但是,增加缓存的容量并非一个可行的办法。首先,CPU缓存已经占据了CPU芯片面积的50%以上,晶体管的80%以上。某些高端CPU,缓存使用的
16、晶体管更是高达90%。继续增加CPU缓存的容量已经不太可能。更重要的是,加大缓存的容量,失误率降低并不多。Intel的Atom芯片的缓存只有512KB,而i7芯片的缓存高达8MB,是Atom芯片的16倍。由于加大缓存容量,性能提高不明显,使得学术界和工业界在CPU设计的思路上,陷入了一个两难的处境。CPU的设计思路分为对立的两派:一派认为应该设计更大的CPU缓存,一派则是更多更快的CPU核心。两派的想法都有各自的道理,却都解决不了问题。支持更大缓存的一派的出发点是,CPU核心大部分时间是空闲的,增加CPU核心没有意义。支持更多CPU核心的一派的逻辑基础是,增加CPU缓存,并不能改善缓存的失误率
17、。Intel是属于加大缓存的一派,Intel的CPU核心相对于AMD一直比较少。GPU(图形处理器)是属于后一派,GPU有成百上千个核心。IBM则是两边都下注,IBM既有多核但缓存小的CPU比如Cell芯片,又有只有双核,但是带很大缓存的,比如Power6芯片。提高CPU缓存性能的希望在于设计更“聪明”的缓存替换算法,王去非博士提出Principle of Short Lifetime,并据此设计的WLRU算法能极大地提高CPU的性能。功耗墙:25年间Intel八代微处理器的时钟频率和功耗的增长趋势。两者的增长几乎保持了将近20年,但近几年来突然缓和下来。其原因在于两者是密切相关的,而且功耗已
18、经到达了极限,无法再将处理器冷却下来。占统治地位的集成电路技术是CMOS(互补型金属氧化半导体),其主要的功耗来源是动态功耗,即在晶体管开关过程中产生的功耗。动态功耗取决于每个晶体管的负载电容、工作电压和晶体管的开关频率:功耗=负载电容电压2开关频率为什么时钟频率增长为1000倍,而功耗只增长为30倍呢?因为功耗是电压平方的函数,能够通过降低电压来大幅减少,每次工艺更新换代时都会这样做。一般来说,每代的电压降低大约15%。20多年来,电压从5V降到了1V。这就是功耗只增长为30倍的原因所在。目前的问题是如果电压继续下降会使晶体管泄漏电流过大,就像水龙头不能被完全关闭一样。目前40%的功耗是由于
19、泄漏造成的,如果晶体管的泄漏电流再大,情况将会变得无法收拾。为了解决功耗问题,设计者连接大设备,增加冷却,而且将芯片中的一些在给定时钟周期内暂时不用的部分关闭。尽管有很多更加昂贵的方式来冷却芯片,而继续提高芯片的功耗到300瓦特,但对桌面计算机来说成本太高了。由于计算机设计者遇到了功耗墙问题,他们需要开辟新的路径,选择不同于已经用了30多年的方法继续前进。这就进入多核时代。GPU通用图形处理器的发展GPU计算是指利用图形卡来进行一般意义上的计算,而不是传统意义上的图形绘制。时至今日,GPU已发展成为一种高度并行化、多线程、多核的处理器,具有杰出的计算功率和极高的存储器带宽,如图所示。图:CPU
20、和GPU的每秒浮点运算次数和存储器带宽CPU和GPU之间浮点功能之所以存在这样的差异,原因就在于GPU专为计算密集型、高度并行化的计算而设计,上图显示的正是这种情况,因而,GPU的设计能使更多晶体管用于数据处理,而非数据缓存和流控制,如图所示。图:GPU中的更多晶体管用于数据处理更具体地说,GPU专用于解决可表示为数据并行计算的问题在许多数据元素上并行执行的程序,具有极高的计算密度(数学运算与存储器运算的比率)。由于所有数据元素都执行相同的程序,因此对精密流控制的要求不高;由于在许多数据元素上运行,且具有较高的计算密度,因而可通过计算隐藏存储器访问延迟,而不必使用较大的数据缓存。数据并行处理会
21、将数据元素映射到并行处理线程。许多处理大型数据集的应用程序都可使用数据并行编程模型来加速计算。在3D渲染中,大量的像素和顶点集将映射到并行线程。类似地,图像和媒体处理应用程序(如渲染图像的后期处理、视频编码和解码、图像缩放、立体视觉和模式识别等)可将图像块和像素映射到并行处理线程。实际上,在图像渲染和处理领域之外的许多算法也都是通过数据并行处理加速的从普通信号处理或物理仿真一直到数理金融或数理生物学。在上述领域,GPU计算已经获得了成功的应用,并取得了令人难以置信的加速效果。而且,随着大数据存储技术的成熟和深度学习模型理论上的突破,GPU加速计算在基于深度神经网络模型的图像分类、人脸识别、语音
22、训练等新型领域也表现得越发活跃,有着不错的加速。图:GPU的应用加速效果图:GPU加速计算的创新领域GPU计算得到了业界的广泛支持,NVIDIA、AMD、INTEL等都对芯片市场的微妙变化和GPU计算的技术发展前景都极为关注,并展开了激烈的技术竞赛。NVIDIA最早提出了GPU计算概念。2007年2月,NVIDIA正式发布了CUDA架构(Compute UnifiedDevice Architecture统一计算设备架构),这也是NVIDIA确定的GPU计算产品的正式名称。CUDA是GPU计算产品的一个新的基础架构,一个完整的GPU计算解决方案,它采用C语言作为编程语言提供大量的高性能计算指令
23、开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案;它提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。CUDA是世界上第一个针对GPU的C语言开发环境的GPU计算产品,其工具集的核心是一个C语言编译器,利用它可以最大限度地提升流处理单元浮点运算能力。CUDA架构的成功尝试,为业界GPU计算的研发提供了宝贵的借鉴。早在2006年收购ATI之初,AMD就做出了一个重大举动,这就是它所发布的GPU计算“Stream Processor”(流处理器),率先将GPU计算技术引入普通应用阶段。AMD也提出了以Fusion为研
24、发代号的硅芯片整合计划。Fusion提供基于融合处理器的GPU计算平台融合,二个Fusion处理器一起连接可以达到并行GPU的关系,更适合CPU的代码将在Fusion处理器当中的CPU部分被执行,而更适合GPU的代码也将在Fusion处理器的GPU部分被执行。作为全球最大的CPU供应商,Intel早已经敏锐地意识到,GPU通用计算将给PC带来革命性的变化。Intel采取了与NVIDIA以GPU为核心的截然不同的研发理念,将GPU计算纳入了CPU的发展轨道。业界普遍对Intel首款Larrabee芯片充满了期待。Larrabee在硬件设计上,采用微内核设计,内核逻辑采用顺序执行结构(InOrde
25、r),可同时执行4个线程。在指令体系上,Larrabee最大的优点就是与IA架构(X86)处理器的互换性,它使用经过调整的X86指令,使现行X86计算程序可以直接被Larrabee运算执行。GPU计算的发展前景一片光明,也必将在更多的领域内得到更广泛的支持和应用。通用计算GPU硬件产品目前,GPU厂商分成两大阵营,NVIDIA公司作为全球专业的GPU生产厂商,力推其Tesla系列的高性能计算产品,以新发布的Fermi为其拳头产品。AMD并购ATI以后,致力于把GPU推上高性能计算的发展道路,其推出的Fusion的产品APU,主张把CPU与GPU融合,与NVIDIA公司一决高下。NVIDIA F
26、ermi架构Fermi架构在即G80架构之后的又一重要的GPU架构。G80架构在时NVIDIA公司最初的通用计算GPU架构,既可以做图形计算,也可以用来做并行计算。GT200架构扩展了G80架构的特点和功能。对于Fermi而言,是NVIDIA 公司总结G80和GT200架构以后,几乎是重新设计的专门针对于通用计算的 GPU架构。Fermi的设计采纳了用户在使用G80和GT200架构时候给出的建议。Fermi的主要设计针对于以下几点:单精度的计算大概是桌面CPU的10倍的时间左右,并且一些应用需要GPU提供更强的双精度运算。ECC的添加,使得内存有容错的能力。有些并行计算并不一定能使用到shar
27、ed memory,所以更多的需求是在内存访问中加上缓存。有些CUDA程序需要超过16KB的SM shared memory来加速他们的运算。用户需要更快的应用程序和图形显示之间的资源切换。用户需要更快的原子读写操作来加速并行程序运算。Tesla GPU的20系列产品家族基于代号为Fermi的下一代CUDA架构,支持技术与企业计算所必备的诸多特性,其中包括C+支持、可实现极高精度与可扩展性的ECC存储器以及7倍于Tesla 10系列GPU的双精度性能。Tesla C2050与C2070 GPU旨在重新定义高性能计算并实现超级计算的平民化。尺寸规格9.75英寸PCIe x16规格Tesla GP
28、U的数量1CUDA核心数量448CUDA核心频率1.15 GHz双精度浮点性能515 Gflops单精度浮点性能1.03 Tflops专用存储器总容量Tesla C20503GB GDDR5Tesla C20706GB GDDR5存储器频率1.5 GHz存储器接口384位NVIDIA Kepler架构NVIDIA Tesla并行计算架构从G80架构,Fermi架构到目前Kepler架构,每一代架构更新都带来产品工艺、计算能力、存储带宽等方面的巨大提升,与CPU相比GPU发展更快,具有更强大的计算能力。2012年NVIDIA推出的Kepler架构,Kepler GK110由71亿个晶体管组成,是
29、当时速度最快,架构最为复杂的微处理器,GK110应用于Tesla K20产品,开启了2496个流处理器。Kepler GK110架构三个重要特点:SMX 新一代流式多处理器Kepler GK110 GPU的核心是SMX单元,集成了几个架构创新,这不仅使其成为有史以来功能最强大的流式多处理器(SM),而且最省电最具编程性。SMX:192个CUDA核、32个特殊功能单元(SFU)和32个加载存/储单元(LD/ST)Dynamic Parallelism 动态创建工作在设计Kepler GK110架构的总体目标之一是使开发人员更容易更轻松地利用GPU的巨大处理能力。为此新的Dynamic Paral
30、lelism功能,使Kepler GK110 GPU能通过应用不返回主机CPU的数据而动态创建新的线程。这使得多个程序能直接在GPU上执行,因为现在内核有能力独立承担所需的额外工作量。任何内核可以启动另外一个内核,并创建额外的工作所需的必要流程、事件和依赖,而无需主机CPU的介入。这种简化的编程模式更易于创建、优化和维护。它还通过为GPU维持与传统CPU内核启动工作负载相同的语法,创建了一个程序员友好环境。Dynamic Parallelism拓宽了目前在各领域利用GPU可以完成的应用程序。应用程序可以动态启动中小型并行工作负载,这在以前系统开销是非常大的。没有Dynamic Parallel
31、ism的情况下,CPU启动GPU上的每个内核。有了该新功能Kepler GPU可以启动嵌套内核,不需要与CPU进行通信Hyper-Q最大化GPU资源Hyper-Q允许多个CPU核同时在单一GPU上启动工作,从而大大提高了GPU的利用率并消减了CPU空闲时间。此功能增加了主机和Kepler GPU之间的连接总数,允许32个并发、硬件管理的连接,与Fermi相比,Fermi只允许单个连接。Hyper-Q是一种灵活的解决方案,允许CUDA流程和消息传递接口(MPI)进程的连接、先前被假设依赖限制的现有应用程序,可以在不改变任何现有代码的情况下达到32倍的性能提升。Hyper-Q在基于MPI并行计算机
32、系统中使用会有较明显的优势。通常会在为多核CPU系统中运行而创建基于MPI的传统算法。由于以CPU为基础的系统可以有效处理的工作负载通常比使用GPU处理的要小,所以一般每个MPI进程中通过的工作量是不足以完全占据GPU处理器。虽然可以一直发出多个MPI进程同时运行在GPU上,但是这些进程可能会由于假依赖会成为瓶颈,迫使GPU低于最高效率运行。Hyper-Q消除了假依赖的瓶颈,并大幅提高了从系统CPU将MPI进程移动到GPU的处理速度。Hyper-Q必定会是MPI应用程序性能提高的驱动。Hyper-Q允许使用一个单独的工作队列同时运行所有的流程。在Fermi模式下,由于单一的硬件工作队列引起的流
33、程内的依赖,并发受限。目前主流的Tesla Kepler架构产品及相关指标如下所示:主流NVIDIA Tesla Kepler架构产品线Tesla K80Tesla K40Tesla K20XTesla K20Stream Processors2 * 24962880 26882496Core Clock562 MHz745 MHz732 MHz706 MHzBoost Clock(s)875 MHz875MHz,810MHzN/AN/AMemory Clock5 GHz DDR56GHz DDR55.2 GHz DDR55.2 GHz DDR5Memory Bus Width2 x 384-
34、bit384-bit384-bit320-bitVRAM2 x 12GB12GB6GB5GBSingle Precision8.74 TFLOPs4.29 TFLOPs3.95 TFLOPs3.52 TFLOPsDouble Precision2.91 TFLOPs1.43 TFLOPs1.31 TFLOPs1.17 TFLOPsTDP300 W235 W 235 W225 WCoolingPassive Active/PassivePassiveActive/Passive2014年底NVIDIA发布了Tesla K80,是目前世界上最快的GPU 加速卡,搭配2个Kepler架构的GK210
35、核心,寄存器文件、一级缓存容量相比GK110有了成倍增长,分别为512KB、128KB。寄存器文件、一级缓存增大后可以明显改进流处理器阵列内的数据吞吐能力,适合于高密度的单精度/双精度的高性能计算任务,工作更为高效。K80可提供的计算性能是Tesla K20X的2.2倍、是Tesla K10的2.5倍,与目前最先进的CPU在实际应用测试中相比,效率可达到CPU的10倍。K80与K20X及CPU性能比较Tesla K80特性:GPU Boost 动态调整:Tesla K80支持GPU在运行过程中,根据负载情况情况主频的动态调整、超频,最大化程序执行效率。 共享内存和寄存器文件容量翻倍:相比较于K
36、20X和K10,K80的共享内存和寄存器文件增加了一倍,有效改善了流处理器阵列内的有效数据带宽。Zero-power 模式:在GPU没有加速工作负载的情况下,通过关闭闲置GPU(设置GPU为Zero-Power模式),来进一步提高数据中心的能源利用效率。多GPU Hyper-Q:通过多个CPU核心能够同时利用单个Kepler GPU,可大幅缩减CPU 闲置时间,大大提升了可编程性与效率。系统监控管理:在GPU集群/网格系统中,对GPU芯片进行监控管理的支持。支持ECC校验:内存和外部DDR5 的DRAM的ECC校验,保障了超级计算中心和数据中心的的计算精度和可靠性。 为何选择 Tesla而非G
37、eForce?性能NVIDIA Tesla专为高性能计算,最大程度精简了不必要的功能从而提供更高的计算性能。TeslaGeForceTesla的相对优势硬件比同级别GeForce高10%-40%-更高的双精度计算性能。2个DMA引擎1个DMA引擎更快内存访问交互速度,在多GPU相互通信、CPU与GPU数据交互频繁的环境中,Tesla需要的IO时间更短,数据吞吐能更强。最大24GB最大1.5GB更大的内存空间。系统内存和显存之间交互是非常耗时的。GPU程序运行中,如果显存够大,就可以将尽可能多的内容直接复制到显存中。这样就可以大大减少内存交互,从而提高程序运行速度。软件专有的Nvidia GPU
38、Direct无此软件在Infiniband网络环境下,该软件极大地提高GPU跨结点数据传递带宽、缩短网络延时,从而提高程序性能。而GeForce无法有效利用在Infiniband网络,跨节点的GPU访问速度要慢很多。专有的TCC驱动无专用驱动该专用驱动降低CUDA Kernal的资源占用,从而提高实际性能。可靠性关键应用所需的运算都无法容忍数据错误。而所有的Tesla产品都通过了在最极端条件下的零错误测试。而这是所有的GeForce产品所无法比拟的:TeslaGeForceTesla的相对优势硬件内部和外部RAM都有ECC保护无保护ECC保护,降低了内存错误的发生几率。全部通过零错误测试,保证
39、计算结果的正确性仅有针对图形应用的测试使用Tesla计算得出结果是准确的,可信的。而用Geforece计算出的结果往往出现错误,经常同一个程序跑几遍,得出的结果却不一样。因此对于严谨的科学计算来说,GeForce的这种表现是致命的。Nvidia原厂生产第三方厂商生产作为原厂,作为旗舰级产品,Nvidia必然使用将体制最好的GPU芯片,品质最好的物料和质量标准来来生产Tesla产品。因此质量绝非一般的GeForce可比的。软件三年质保,高优先级的售后服务视各厂商情况而定Tesla拥有更好的企业级售后服务。所有的GPU集群软件都是基于Tesla设计、测试与认证集群软件供应商并无任何针对GeForc
40、e的测试在集群中实用GeForce将面临巨大的软件兼容性风险。HPC解决方案HPC用户的需求的独特,每套集群都不相同,只有Tesla的团队才能够打造出满足客户需要的解决方案。TeslaGeForceTesla的相对优势硬件创新的服务器与工作站解决方案只是针对PC级应用Tesla拥有成熟的解决方案。生命周期18-24个月视各厂商情况而定更长的生命周期。软件集群管理软件可以监控GPU的温度,电力状态以及负载不支持在集群环境下管理Tesla远远比管理GeForce容易。CUDA/OpenCL工程师和技术专家共同缔造的全面解决方案不支持Tesla背后有着庞大的团队支持。注:本小节内容本自 HYPERL
41、INK /thread-199-1-1.html /thread-199-1-1.html,有删改。 AMD Fusion架构Fusion的理念其实早在2006年AMD收购ATI之时就已经提出,当时的计划是在20082009年间实现CPU和GPU的融合。既拥有CPU产品线又具备独立GPU产品线的AMD似乎拥有着得天独厚的优势,不过发布CPU+GPU架构产品的计划却被Intel抢先了一步。Fusion的计划被一度延后,具体产品要到2011年初才能面世,首发的两款Fusion APU的代号为Llano和Ontario,前者基于Phenom II核心及Radeon HD 5000系列GPU核心打造;
42、而后者则采用Bobcat微架构设计,同样融合支持DX11规格的GPU核心。AMD Fusion的硅芯片上有两个独立的内核,一个负责处理器,另一个负责绘图内核,两个内核而不是融合在一起。处理器有自己独立的缓冲存储器,绘图内核部分同样如此。两个内核会通过CrossBar互相连接。此外,Fusion亦会集成存储器控制器。Fusion中的各个组件之间使用HyperTransport连接,使各个组件连接成一个整体。处理器和绘图内核可以直接访问存储器,但绘图内核没有独立的显示存储器。南桥不会集成在Fusion芯片中。AMD现有GPU产品是Radeon HD 5000系列,以RadeonHD 5870为例,
43、其规格如下:引擎时钟速度:850 MHz 处理能力(单精度):2.72 TeraFLOPS 处理能力(双精度):544 GigaFLOPS 内存时钟速度:1.2GHz 内存数据率:4.8 Gbps 内存带宽:153.6 GB/sec 最大功率:188 Watts 闲置功率:27 Watts表:AMD新一代S系列加速卡详细规格 通用计算GPU编程环境GPU计算模型在一个异构计算模型中同时使用了CPU和GPU。应用程序的顺序部分在CPU上运行,计算密集型部分在GPU上运行。虽然应用程序使用了GPU的卓越性能来提升运行性能,但对用户而言,他们所能感知到的将仅仅是运行速度更快的应用程序。应用程序开发人
44、员将需要修改其应用程序中的计算密集型内核,并将其关联到GPU。应用程序的其它部分将仍然依赖于CPU进行处理。将一项功能关联到GPU需要重写功能,以在其中支持并行处理,同时添加“C”关键字以在应用程序和GPU之间往返传输数据。CUDA编程环境GPU计算得到了NVIDIA CUDA 架构的 GPU大规模并行架构的支持。CUDA架构由100多个处理器内核组成,这些内核能够协作运行来处理应用程序中的数据集。CUDA并行硬件架构伴随有CUDA并行编程模型。该模型提供了一个抽象集合,能够支持实现精细和粗放级别的数据与任务并行处理。编程人员可以选择使用高级语言(如 C、C+ 和 Fortran)或驱动程序
45、API(如 OpenCL和 DirectX-11 Compute)来实现并行处理。CUDA为一款完整的软件开发方案,内含支持GPU的C语言编译器、调试工具(Debugger)、性能分析软件(Profiler)、驱动程序及标准函数库。在NVIDIA GT200系列显卡和Tesla系列通用计算系统上C语言的函数库来编写应用程序的软件开发环境,CUDA主要分为 Library,runtime和Driver 三个部分。在CUDA的架构下,一个程序分为两个部份:host端和device端。Host端是指在CPU上执行的部份,而device端则是在显示芯片上执行的部份。Device端的程序又称为 kern
46、el。通常host端程序会将数据准备好后,复制到显卡的内存中,再由显示芯片执行device端程序,完成后再由host端程序将结果从显卡的内存中取回。由于CPU存取显卡内存时只能透过PCI Express接口,因此速度较慢(PCI Express x16的理论带宽是双向各4GB/s),因此不能太常进行这类动作,以免降低效率。在CUDA架构下,显示芯片执行时的最小单位是thread。数个thread可以组成一个block。一个block中的thread能存取同一块共享的内存,而且可以快速进行同步的动作。每一个block所能包含的thread 数目是有限的。不过,执行相同程序的block,可以组成g
47、rid。OpenACC编程环境OpenACC标准由PGI、Cray和NVIDIA三家公司联合创立,同时得到CAPS的支持,于2011年11月在SC11大会上首次发布,与NVIDIA CUDA并行编程架构完全兼容,并可与其互操作。OpenACC 1.0技术规范是这三个创办公司联合开发的,大部分内容来自PGI Accelerator编程模型。OpenACC应用程序接口(API)描述了一系列把采用标准C、C+和Fortran语言编写的循环调度语句和代码段从主CPU转移到所连接的加速器的编译器指令,让开发人员能够跨操作系统、主CPU和加速器进行代码移植。采用指令编译方法后,开发人员只需一个多平台多厂商
48、兼容代码库,为跨平台和多代应用开发带来诸多优势和便利。指令式编程(Direct-based Programming)OpenACC标准让并行编程人员能够为编译器提供简单的提示,这些简单的提示又叫“指令”,用于指定需要加速的代码区域,而无需编程人员修改或删减底层代码。通过向编译器指示并行运算的代码段,指令让编译器完成把计算任务复制到加速器的具体工作,从而大幅提高应用的运算性能。关于OpenACC API和标准的详情,请访问。Stream编程环境Stream(流)技术是一套先进的硬件和软件技术,能够使AMD GPU与系统的CPU协同工作,加速处理图形和视频以及其他大量应用。该技术使更加平衡的平台能
49、够以前所未有的速度运行要求苛刻的计算任务,为最终用户提供更出色的应用体验。流计算模型包含了一套软件系统以及流处理器。下图展示了流处理模块之间的关系:流计算软件为客户端用户提供了一个灵活完整的接口,从而使开发人员充分利用硬件特性进行流计算。软件主要分为下面几个模块:编译器:类似于Brook+的编译器,把Brook+内核的代码编译成为独立的C+文件以及IL代码。流处理器的设备驱动:流计算抽象模型(CAL)。性能分析工具:Stream KernelAnalyzer,可以及时编译Brook+,IL代码,并且分析程序性能。性能库:AMD核心数学库(ACML),这部分是专用于特定领域的。Brook+为开发
50、者提供了一个简便快捷的流计算开发接口。用户可以通过Brook+在ATI的硬件进行流计算开发。Brook+的内核程序是由一种类C语言编写的,所有非常适合传统的C以及C+程序员。Brook+语言中两个最关键的概念:流。流就是一些类型相同的数据,他们可以被分配到不同的流处理器中进行处理。内核。内核程序其实就是GPU硬件的行为程序,它指定了硬件的行为特性。Brook+的内核函数是被Brcc(Brook Code Compiler)编译的,编译后生成三个文件,其中两个是.h和.cpp文件,就是定义了一些和函数相关的类,还有一个最关键的就是IL代码。有了这些文件,这三个文件再和用户的其他源文件一起编译,链
51、接,从而生成可执行性文件。Brook+的程序在运行时,是需要Brook runtime的。Brook+的内核程序也可以被CPU执行,还可以进行调试。另外,还可以通过CAL(Compute Abstraction Layer)硬件驱动接口编程,程序员通过CAL可以访问硬件所提供的几乎所有特性,可以控制硬件非常底层的东西。OpenCL编程环境OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处
52、理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。OpenCL扩展了GPU用于图形生成之外的能力。O
53、penCL由非盈利性技术组织Khronos Group掌管。2009年6月NVIDIA首家发布了支持OpenCL 1.0通用计算规范的驱动程序,支持Windows和Linux操作系统。2009年8月初AMD首次发布了可支持IA处理器(x86和amd64/x64)的OpenCL SDKATI Stream SDK v2.0Beta,立即交由业界标准组织KHRONOS进行审核。目前,该SDK更名为AMD APP SDK。2012年2月,Intel发布了Intel SDK for OpenCL* Applications 2012,支持OpenCL 1.1基于带HD4000/2500的显示核心的第三
54、代酷睿CPU.和GPU。此外,目前高通adreno320提供了Android上的OpenCL SDK。支持GPU加速的主流软件高性能计算各行业的主流应用软件都看到了通用GPU的潜力,纷纷加入对GPU的支持。后面的表格列出了截至2012年11月支持GPU加速的软件,这些软件在各自的领域都是鼎鼎大名。这个软件列表是很不完整的,很多不太知名的软件没有包括进来。事实上,随着GPU通用计算越来越流行,就连英伟达(NVIDIA)公司自已也不能完全统计到底有多少软件支持它们的GPU产品。这些软件厂商看到了GPU通用计算的前景,抢先支持GPU加速,以期提高产品性能,在激烈的竞争中获得先发优势。软件支持GPU是
55、思路是:运算比重大、并行度高的模块先行移植,这样能缩短开发时间,而且释放了GPU的大部分计算能力。在高性能计算软件中,很多科学问题经过各种处理手段,最后归结为求解线性方程组。求解线性方程组占运算时间的80%,甚至更多,而且这个求解过程是高度并行化,在GPU上有很好的加速表现。因此,高性能软件支持GPU的主要途径就是将线性方程组求解过程转移到GPU进行,先支持单块GPU,再支持多块GPU,渐进开发。软件列表请到nVidia官网查看/object/gpu-applications-cn.htmlIntel Xeon Phi协处理器2012年11月SC12上,Intel发布了Intel Xeon P
56、hi协处理器,它对应的中文名称是因特尔至强融核协处理器。2012年11月发布的TOP500第7名Stampede安装了6400块Intel Xeon Phi SE10p协处理器,系统效率67.19%. Stampede部署在美国田纳西大学田纳西高等计算中心(Texas Advanced Compute Center)组成技术性能节点2E5-2680 八核CPU1Phi SE10p 61核6400个内存每节点32 GB205 TB共享硬盘Lustre 2.1.314 PB本地硬盘SATA(250GB)共1.6 PB网络InfiniBand Mellanox Switches/HCAsFDR 56
57、 Gbit/sIntel Xeon Phi产品参数:Intel Xeon Phi3120P3120A5110P5120D7120X7120P发布日期2013年Q22013年Q22012年Q42012年Q42013年Q22013年Q2处理器号3120P3120A5110P5120D7120X7120P内核数575760606161时钟速度1.1 GHz1.1 GHz1.053 GHz1.053 MHz1.238 GHz1.238 GHz最大 Turbo 频率- - - - - - - - - - - - 1.333 GHz1.333 GHz双精度峰值(flops)1.0032 T1.0032 T
58、1.01088 T1.01088 T1.208 T1.301 T1.208 T1.301 T高速缓存28.5 MB28.5 MB30 MB30 MB30.5 MB30.5 MB提供嵌入式方案不支持不支持不支持不支持不支持不支持光刻22 nm22 nm22 nm22 nm22 nm22 nm最大散热设计功耗300瓦300瓦225瓦245瓦300瓦300瓦建议客户价格$1695$1695$2649$2759$4129$4129最大内存6 GB6 GB8 GB8 GB16 GB16 GB内存通道数121216161616最大内存带宽240 GB/s240 GB/s320 GB/s352 GB/s35
59、2 GB/s352 GB/sECC 内存支持支持支持支持支持支持PCI Express 版本2.02.02.02.02.02.0注:型号中的字母P表示被动散热,A表示主动散热,D表示为独立的小卡,X表示没有散热部件。Intel的众核协处理器涉及多个名词术语。KNC: Knights Corner,Intel协处理器第一代正式产品的内部开发代号;MIC:架构代号,Intel Many Integrated Core;Phi:众核协处理器商业品牌,中文称为融核协处理器。PCIe带宽主机与协处理器以PCIe 2.0 x16插槽相连,PCIe 2.0 x16的理论数据带宽为单向8GB/s. MIC编程
60、常用的offload模式数据传输分为四个阶段:在MIC上开辟内存空间、区域入口处将数据从主机复制到MIC、区域出口处将数据从MIC复制到主机、释放MIC上的内存。Intel Xeon Phi 3100系列,从主机向MIC复制数据的带宽为4.872GB/s 6.294GB/s,数据块越大,速度越稳定。从MIC到主机的带宽在数据块较小的时候还比较稳定,约为5.3GB/s 5.8 GB/s,但在数据块增大的时候,传输速度就变得极不稳定。受传出带宽的影响,主机MIC主机的数据带宽也不稳定,传输4GB数据块时,带宽下降严重,在800GB/s以下。硬件结构主机与协处理器以PCIe 2.0 x16插槽相连,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商职业技术学院《安装工程计量计价》2025-2026学年第一学期期末试卷(B卷)
- 高中2025绿色未来主题班会说课稿
- 上海工商职业技术学院《Android 移动端系统开发》2025-2026学年第一学期期末试卷(A卷)
- 上饶卫生健康职业学院《安全系统工程学》2025-2026学年第一学期期末试卷(B卷)
- 上饶卫生健康职业学院《AutoCAD》2025-2026学年第一学期期末试卷(B卷)
- 高中“2025季节流感”勤防护主题班会说课稿
- 上海音乐学院《安全工程学》2025-2026学年第一学期期末试卷(A卷)
- 2025年动力电池回收材料再生工艺自动化改造
- 医学26年:结直肠癌前病变管理 查房课件
- 2026年日文歌曲说课稿
- GB/T 13331-2014土方机械液压挖掘机起重量
- 中国脑出血诊治指南(2023年)-1
- 第1节-种植工程课件
- 《昆虫记》阅读指导课课件
- 考试-四川省省情省策知识点
- 宿舍用电智能管理系统设计毕业论文
- 有机化学光谱法在有机化学中的应用公开课一等奖优质课大赛微课获奖课件
- 思想道德与法治课件:第四章 第二节 社会主义核心价值观的显著特征
- 质量信得过班组ppt课件(PPT 17页)
- 2021年高考理综物理真题试卷(山东卷)
- 流动资金自动测算表(内自带计算公式)
评论
0/150
提交评论