● ATI黄金架构诞生,
Folding@home项目抛出橄榄枝DirectX 9.0c无可争议是我们经历过的所有图形API中最长寿和多产的一款,更长的指令支持与动态流控制,使得基于DirectX 9.0c的游戏具备前一代游戏无法比拟的真实感和幻想般的画质,甚至也为很多影视作品和其他图形领域提供了可以实现梦想的平台,GPU走进更多玩家的视野,也正是因为GeForce 6、GeForce7系列以及Radeon X1000等一系列经典显卡,和《极品飞车:变速》和《使命召唤4:现代战争》等经典游戏的出现。
而后期的大量DirectX 9.0c游戏已经对Shader单元运算能力提出难以达到的要求,GPU必须适应游戏画面渲染发展趋势才能生存。根据ATI的研究,在2001年刚刚出现具备像素着色器的显示卡时,当时游戏的像素着色器程序中算术指令和纹理指令数量的比例在1:1左右,打这以后,算术指令的数量呈显著增加之势。
算术指令与贴图指令数量对比
在2005年像素着色器程序中,平均每5条算术指令才会出现一条贴图指令,而这样的算术指令数量急剧增长趋势仍将继续保持下去。
我们对于一条像素流水线定义是“Pixel Shader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATI将其称为Render Back End)。从功能上简单的说,Pixel Shader完成像素处理,TMU负责纹理渲染,而ROP则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个Pixel Shader运算,输出1个纹理和1个像素。但是目前的情况是TMU纹理填充单元和ROP单元并没有成为GPU设计的瓶颈,反倒是更长更复杂的着色器程序指令让多个像素渲染管线感受到前所未有的压力。
据此研究结果,ATI在代号R520的Radeon X1800核心上市之后果断推出了酝酿已久的增强型改进产品R580——Radeon X1900。在R580面世之后人们才知道,这颗核心早在RADEON X1800发布的时候就完成流片、取样等一系列的后期研发,几乎是进入生产阶段了。它相对于R520最大的改进之处就在于提供了三倍于前者的像素着色器算术计算能力,实现这一目标的方式是采用了3个Pixel Shader对1个贴图单元的方式。最后的开销仅仅是在晶体管数量只增加20%的情况下提供了相对R520 200%的Pixel Shader性能增长。
Radeon X1900系列最终做到了3个Pixel Shader对1个贴图单元,将Pixel Shader单元数量从X1800的16个推升到48个。这一改动使得GPU运算能力空前强大,其高端产品RADEON X1900XTX的FP32精度像素运算能力达到374.4GFLOPS,如果再加上顶点着色器的话,RADEON X1900XTX的FP32计算能力总共会是426.4 GFLOPS——R580因此得名“3:1黄金架构”。大幅提升的运算能力除了提高了对像素着色器运算需求饥渴的游戏之外,也引起了另一方的注意,那就是斯坦福大学。
2006年由斯坦福大学化学系的潘德小组(Pande Group)主持的全球最大的分布式计算项目——Folding@home,逐步将眼光转向GPGPU领域。该项目可精确地模拟蛋白质折叠和错误折叠的过程,以便能更好地了解多种疾病的起因和发展,任何一台个人电脑都可以下载客户端参与。
ATI在2006年8月惊人地宣布即将联手斯坦福大学在其Folding@Home项目中提供对ATI Radeon X1900的支持。在显卡加入Folding@Home项目后,科研进展速度被成倍提升,人们第一次感受到了GPU的运算威力。
2006年10月2日,Folding@home项目公开发行供Windows系统使用的GPU测试版本,测试期间收到由450颗ATI X1900 GPU提供的31 TFLOPS运算性能,每颗显核平均运算运力为一颗传统CPU的70多倍。此后GPU客户端成为Folding@home项目中最耀眼的明星,GPU使用和CPU近乎相同的功耗,却提供了平均10倍于CPU的运算能力。GPU的Shader单元在经过了长期的演化之后,终于在GPGPU领域释放了其强大动力。
该项目同时引来了全世界大量GPU高端玩家的参与,这是第一个可以让民用级别显卡开展大规模通用计算的尝试,也是目前最火爆的分布式计算项目。该项目在中国发展缓慢,主要是因为真正能理解GPU的玩家数量还是很少,甚至高端发烧友都对它一知半解。而事实上比较运算量可以得出,一款普通的9600GSO显卡的运算能力,已经远远超越一颗高端的4核心CPU。
中国分布式计算总站作为一个公益性团体,一直在致力于各个分布式计算项目的推广,特别是属于生命科学类别的Folding@home项目。该项目中国团队代码为3213,有兴趣或者想提升技术的玩家,可以尝试参与该项目,为自己的GPU通用计算能力找到一个“发泄”的空间。