聚焦未来GPU发展方向
从SIGGRAPH 2003大会首先提出GPU通用计算概念,到NVIDIA公司2007年推出CUDA平台,再到今天Fermi架构面向通用计算领域设计。越来越多的信号告诉我们,GPU通用计算是一片正在被打开的潜力巨大的市场。
GPU通用计算目前遇到的最大障碍,其实来自GPU一贯的架构设计。由于GPU无法摆脱传统的图形加速器身份,而图形领域SIMD和VLIW是数据并行性和操作并行性的典型结构。
●SIMD架构的尴尬
SIMD适合多媒体中的分组数据流,通过特定算法将长的数据流截成定长短向量序列,从而可以和向量处理器那样实现对定长短向量序列的高效处理。VLIW具有的优点是:指令操作域定长,译码简单;适合流水处理,减少CPI;编译器需要开发程序潜在的指令级操作并行性。VLIW指令字较长,而SIMD具有很强的数据压缩能力。事实上,传统观点一直认为VLIW和SIMD技术相结合可以获得更高的性能加速比,且非常适合多媒体数据处理。
AMD与NVIDIA的GPU流处理器单元对比
AMD从R600核心开始,一直延续着上述理念设计GPU产品,R600身上有很多传统GPU的影子,其Stream Processing Units很像上代的Shader Units,它依然是传统的SIMD架构。这些SIMD架构的5D ALU使用VLIW技术,可以用一条指令完成多个对数值的计算。
由于内部的5个1D ALU共享同一个指令发射端口,因此宏观上R600应该算是SIMD(单指令多数据流)的5D矢量架构。但是R600内部的这5个ALU与传统GPU的ALU有所不同,它们是各自独立能够处理任意组合的1D/2D/3D/4D/5D指令,完美支持Co-issue(矢量指令和标量指令并行执行),因此微观上可以将其称为5D Superscalar超标量架构。
SIMD虽然很大程度上缓解了标量指令执行效率低下的问题,但依然无法最大限度的发挥ALU运算能力,尤其是一旦遇上循环嵌套分支等情况,SIMD在矢量处理方面高效能的优势将会被损失殆尽。同时VLIW的效率依赖于指令系统和编译器的效率。SIMD加VLIW在通用计算上弱势的原因就在于打包发送和拆包过程。
●MIMD架构的改进
NVIDIA从G80开始架构作了变化,把原来的4D着色单元彻底打散,流处理器不再针对矢量设计,而是统统改成了标量运算单元。每一个ALU都有自己的专属指令发射器,初代产品拥有128个这样的1D运算器,称之为流处理器。这些流处理器可以按照动态流控制智能执行各种4D/3D/2D/1D指令,无论什么类型的指令执行效率都能接近于100%。
AMD所使用的SIMD架构流处理器,具有非常明显的优势就是执行全4D指令时简洁高效,对晶体管的需求量更小。而NVIDIA为了达到MIMD流处理器设计,消耗了太多晶体管资源,同时促使NVIDIA大量花费晶体管的还有庞大的线程仲裁机制、端口、缓存和寄存器等等周边资源。NVIDIA为了TLP(线程并行度)付出了太多的代价,而这一切代价,都是为了GPU能更好地运行在各种复杂环境下。
●NVIDIA遇到的障碍
TLP线程并行度的设计方向是近年来NVIDIA公司GPU设计的主要目标。展望未来GPU发展,以下几个问题是必须解决的。首先是分支预测能力,GPU需要拥有更好的分支能力,才能运行更多复杂程序,更好的利用cache来掩盖分支的延迟;然后是更大的缓存和Shared memory(AMD称之为LDS ,Local Data Share),这种共享寄存器负责共享数据和临时挂起线程,容量越大,线程跳转和分支能力就越强;线程粒度同样重要,粒度越细能够调用并行度来进行指令延迟掩盖的机会越大,性能衰减越小。细化粒度对GPU的线程仲裁机制要求很大;同时大容量缓存的可读写性也是必须具备的……
除此之外实现更高水平的通用计算还有很多棘手的问题,现在它们已经被摆到NVIDIA面前。NVIDIA沿着自己设定的方向,却用自己的产品打开了GPU领域的“潘多拉魔盒”,Fermi架构到底该如何看待,更是带给业界前所未有的思考。
2009年在加州圣荷西召开的NVIDIA发者大会上美国橡树岭国家实验室宣布一项新超级计算机计划,将用来研究能源与气候变迁,速度可望比目前最快的超级电脑更快十倍。其将采用的正是NVIDIA整合30亿个晶体管的GPU——“Fermi”架构GF100。
橡树岭的电脑与运算科学实验室副主任Jeff Nichols在声明中表示:Fermi GPU可促成以往不可能实现的“重大科学突破”。他说:“借由NVIDIA的技术支持,橡树岭能创造一个能提供亿亿次(exascale,10的18次方)运算的运算平台。”亿亿次运算是超越目前千兆次(petaflop)运算1,000倍的技术,达到每秒100万兆次运算。此后又有消息称NVIDIA将和微软合作,开发使用Tesla高性能计算卡的基于Windows HPC Server 2008平台的集群服务器。这些信号都标志着NVIDIA已经正式进入超级计算机市场。
Fermi的分支能力虽然得到增强,但它依然不是分支预测,而是分支论断(predication),这一步的提升在以前是不敢想象的。在Fermi中为这一功能的初步实现提供了一个独立单元,它和仲裁器、Atomic单元的地位一样重要。分支论断只能算是分支预测的雏形或前身,需要的硬件开销的也较小,但这还是给NVIDIA带来了很多难题。
更大的缓存更是遥不可及,无论是Shared memory还是cache,这些缓存空间的提升需要半导体工艺的强大支持,因为这部分缓存和CPU一样使用6T SRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。
缓存的可读写性带来了很多问题,它包括缓存一致性协议,缓存的命中率等问题,这些问题每年要消耗Intel和AMD等CPU制造公司很多研发力量,而Fermi的诞生,只能把NVIDIA也牵连进来。
面对前方无尽的障碍和难题,我们似乎有些悲观,其实大可不必这样,GPU发展到今天,已经突破了无数技术屏障,虽然你很难想象一个最初因图形处理而诞生的硬件,今天竟然成为大规模并行计算领域的明星,但事实就是这样。NVIDIA花费巨大精力设计出的Fermi架构不但为NVIDIA打开了通用计算领域更广阔的空间,带来了可观的利润,也打开了GPU设计领域的“潘多拉魔盒”,更多以前不可想象的功能也正在GPU芯片中不断实现。
在文章最后让我们一起回忆文章开始时那句经典的评论:“Fermi是一款图形处理同样出色的并行处理器。”不用怀疑,Fermi所代表的正是未来GPU的发展方向。
———————————————————————————
本文参考文献:
[1] NVIDIA GF100 Graphic Architecture Whitepaper GF100图形架构白皮书
[2] NVIDIA Fermi Architecture WhitepaperFermi架构计算白皮书
[3] 零距离接触NVIDIA GF100
[4] Fermi秘史 揭秘难产核心前生今世的故事
[5] 以处理器为目标 NVIDIA全新Fermi架构解析
[6] DX11先锋 ATI HD 5870震撼视觉超详解
[7] NVIDIA Fermi 体系架构技术预览
[8] BSN:Nvidia GF100 Fermi芯片成本分析
[9] 流处理器缘何差6倍A-N GPU架构解析
- 相关阅读:
- ·狂欢双.12 京东索泰游戏显卡大促销
//vga.zol.com.cn/556/5568061.html - ·游戏战狼 讯景R9 380黑狼版售1429元
//vga.zol.com.cn/556/5561073.html - ·TGA 2015获奖游戏名单:巫师3年度最佳
//vga.zol.com.cn/556/5560748.html - ·GTX 860M紧急修复驱动:修复游戏崩溃
//vga.zol.com.cn/555/5557348.html - ·只为高端玩家 热门旗舰级游戏显卡推荐
//vga.zol.com.cn/555/5559081.html