近年来,传统用于图像处理的GPU逐渐被发掘用来进行高性能计算,并且达到了相当好的效果,在单精度浮点运算中的速度达到5TFLOPs,在双精度浮点运算中的速度可以达到1TFLOPs。如今性能最好的GPU处理器(比如NVidea的Tesla K20和K40)与一些其他的多核处理器(比如Intel Xeon Phi处理器以及IBM和Inter的一些处理器)相比表现出了非常好的计算性能。
FPGA传统上是应用于单精度的定点运算,不过现在也可以浮点数进行高性能的计算,单精度浮点数的运算峰值已经超过1TFLOPs。但是运算的峰值并不能代表在特定环境下器件的持续工作性能,比如在计算2级的FFT时,Inter的80-teraflop持续工作性能只能达到其峰值性能的2.73%(20GFLOPs)。FPGA工作在一个较低的频率下,运算峰值较低,但是可以通过硬件优化来实现对特定应用的更好的运行效率,即持续性能能达到更接近峰值运算性能的值,同时与GPU和CPU相比FPGA的功率效率更高。
一个特定的应用在不同的平台上运算是不一样的,对于运算结果的评估可以基于以下几点:性能、功耗、功率效率、运行效率、成本以及其他。在本文中,我们分析每个期间在峰值性能以及能耗方面的发展趋势,并对三者在一些科学应用的持续性能进行对比,找出对于某一特定应用的最佳运算平台。
GPU最初被设计用来进行图像处理并在该方面显示出了强大的优势,近10年来GPU逐渐被应用到通用计算领域,一般称为GPGPU。基于其强大的并行计算能力,在一些其他的计算分析方面其性能早已可与多核CPU相媲美。
观察多代GPU的发展,我们发现其峰值性能并不是简单的线性增长,单精度浮点运算和双精度浮点运算都是这样。我们没有办法去简单的描述GPU的全面的发展,因为各种GPU的结构非常多,所以在此只挑出在某个年份的最佳性能的一些GPU进行分析。
每一代GPU之间的性能提升超过1TFLOP,同时右图中可知在某些年份工艺技术没有提升,但是性能提升了,说明性能的增长不仅与新的制造工艺有关也与结构的优化有关。单精度和双精度的性能差距由最初的相差10倍降到了最新一代的只差4倍左右。
关于能耗方面,GPU的功率效率(峰值性能与热设计功耗(TDP)的比值)也是在稳定则增长,单精度的功率效率由最初的0.5GFLOPs/W增加到了GFLOPs/W,双精度的功率效率由0.5GFLOPs/W增加到了6GFLOPs/W。这意味着GPU以一个增长的功率效率提供着一个惊人的运算性能。
GPU的外部存储带宽也非常高,Geforce 6800的带宽为35 GBytes/s,K20, K20X 和 K40的带宽分别为208,250和288 GBytes/s。.
通用CPU的峰值运算性能在近年来也获得了显著提升,图2中显示了部分Intel的著名CPU的峰值运算性能。
Intel最近推出的Xeon PHI 7120P处理器的峰值运算性能可以达到单精度2416GFLOPs,双精度1208GFLOPs,Intel处理器计算性能的提升靠的是增加CPU的核数,这些处理器的功率效率和GPU相比较低。最初65nm技术的CPU的功率效率为0.1 GFLOPs/W,目前22nm技术下的CPU的功率效率已经增加到单精度9 GFLOPs/W,双精度4.5 GFLOPs/W。
在Intel的这些处理器中,2008年出的一款多核处理器在3.16GHz频率1.07V电压下,峰值运算速度可以达到单精度1 TFLOP。CPU或者多核CPU的存储器带宽也很高。比如Xeon PHI 7120P的带宽为352GBytes/s,比最近出的GPU稍微高一些。
FPGA的峰值运算性能由它所包含的乘法器和LUT的资源决定,观察Xilinx公司的一些产品发现乘法器和LUT的资源并不是线性增长的(如图3所示)。最新的Virtex7系列FPGA中 XC7VX980T含有3600个18*18的乘法器和612000个LUT,XC7V2000T含有2160个乘法器和1221600个LUT。
对于双精度的峰值运算,只含有加法器运算的最佳的峰值运算性能出现在XC7V2000T FPGA中,为671GFLOPs;只含有乘法器运算的最佳峰值运算性能降为168GFLOPs;加法器和乘法器的组合运算的最佳运算性能为302GFLOPs,由XC7VX980T获得。
FPGA的功率效率超过10GFLOPs/W,一般来说是比CPU和GPU要高的,而且随着技术的发展FPGA的功率效率也会继续不断提升。比如Altera的一款能达到5TFLOPs的高性能FPGA就应用了Intel的14nm Tri-Gate,功率效率达到100GFLOPs。
为了更好的理解GPU,CPU,FPGA的相对发展,下面选取他们中在某些年最佳的性能的产品参数进行比较,包含单精度和双精度的运算,结果如图6,图7所示。
在单精度的浮点运算中,GPU的性能一直是遥遥领先。在2011年FPGA和CPU的性能都有很大提升,而在2013年CPU的性能仍然在提升,而FPGA相对于GPU 的性能下降了。在2013年之前,FPGA的性能一直优于CPU,但在2013年,出现了多核CPU比如Intel Phi,因此情况改变了。
对于双精度浮点运算,可以看到GPU的性能除了在前几年表现的差强人意,在2011年之后则一直领跑后两者。同时在2011年之后CPU的性能也超过了FPGA,而且在2013年CPU和GPU的性能也已经很接近了,大概只相差5%。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。