7大改进 NVIDIA第2代CUDA架构Fermi分析
在2009 NVIDIA GPU技术大会上,NVIDIA发布了新一代的GPU并行计算架构Fermi,这也是继去年NVIDIA发布GT200 GPU时提出“图形渲染+并行计算”的概念,并在这两年时间里不断赋予并推动GPU在并行运算方面的应用后,再次强调“架构”,并正式命名Fermi。
在NVIDIA官方说法看来,Fermi是继G80架构(G9x,GT200都属于G80第一代并行计算GPU架构,但当年没有命名)后,对GPU作出重大改进的一次革命性产品。对于GPU并行计算而言,Fermi是第一个完美的适合并行运算的处理器。接下来,我们来看一下Fermi的几个重要的革新内容。
第一,Fermi支持包括C++在内的 C, Fortran, Java, Python, OpenCL and DirectCompute.多种语言或API接口的开发。
Fermi架构示意图
第二,为了更好的用于GPU高性能计算,显存控制器支持ECC显存,这对于高性能运算来说是非常重要的。
新的缓存与显存架构
第三,NVIDIA并行数据缓存(Parallel DataCache),在以往尤其是GT200上对于每组流处理器都提供了共享缓存,这也是NVIDIA GPU在并行计算上绝对领先对手的一个硬件上的优势。而此次Fermi架构更加加强了这一环。为流处理器增加了L1和L2的Cache,听上去这有点像CPU做法,的确Cache的增加带来了晶体管数增加,但意义非常重大。
第四,512个CUDA架构的双精度浮点运算单元,对于GeForce用户可以等效认为是512个流处理器。
现场Fermi特点PPT
第五,NVIDIA GigaThread Engine ,这个内核引擎带来了很多不同。其中支持16核为一组的任务并发运算,而以往GPU并行运算只支持数据并行运算。
双精度运算演示
第六,8倍于现在Tesla1060的双精度浮点运算能力。在GT200发布时,近1T的浮点运算能力让大家兴奋,而我们知道全球HPC排行中一般按照Linpack的双精度运算能力为标准。GT200时GPU的双精度运算能力是单精度的1/10-1/8。此次Fermi架构的演示产品可以都达到8倍于Tesla 1060的水平。双精度的支持也对很多HPC领域是非常必要的。
更多的高性能运算需求
第七,Nexus开发组件的推出。Nexus是整合于Microsoft Visual Studio中的一个开发组件,包括 Nexus调试器, Nexus分析器,Nexus图形检查器。它是业界首个集成GPU/CPU环境的开发组件。
Nexus在Visual Studio下的三大组件
总结
到底什么是Fermi?这对于从GeForce开始关注NVIDIA的大多数用户来说似乎不好理解。不过通过我们以上几点总结可以看出NVIDIA自G80发布后的一些新思路。首先毫无疑问的是,NVIDIA此次发布Fermi后将率先用于Tesla并行计算产品上,但这并不影响Fermi随后用于GeForce产品中,当然Cache和显存控制器方面有什么差别目前并不知道。
光线追踪搭建的3D实时环境
第二,无论从软件还是硬件角度来看,Fermi的改变非常明显,经过了G80到GT200四年多市场的考验,Fermi成为了第一个真正意义上的完美的并行处理器。与G80刚发布时不同,此时NVIDIA的Fermi有从软件到硬件以及无数开发者、数万件以上开发成品、千万片支持CUDA GPU等各方面条件的支撑(2008年才有CUDA 2.0,这才迎来了CUDA迅速的发展,G80发布时显然条件比Fermi差远了)。
第三,Fermi在缓存设计上是重大改变之一,而在双精度运算能力方面也达到了很高的水平。对于传统的图形渲染来说,似乎这并没有特别直接的联系。而我们知道,接下来的3D世界应该向两个方向发展:物理引擎和光线追踪。这其实都是并行运算,这也意味着Fermi或者使用Fermi的GeForce已经为未来应用打好基础。GPU的未来,甚至是未来的3D世界已经向并行运算转变。
所以,NVIDIA选择以并行运算处理器的身份发布 #p#page_title#e#Fermi并不影响GeForce方面的应用,根据NVIDIA消息Fermi会首先使用在Tesla上,而预计在圣诞节前Fermi架构的GeForce肯定会上市