图形领域GPU标准之战逐鹿并行计算

来源:互联网 发布:改歌词软件下载 编辑:程序博客网 时间:2024/05/17 05:02

 图形领域GPU标准之战逐鹿并行计算

没有哪一个领域能像图形工业一样充满了机遇与挑战,过去nVIDIA与ATI激烈的竞争成为产业发展的动力,在AMD接手ATI后nVIDIA更换了对手,但竞争的实质并没有改变。通过市场竞争带动产业发展已经成为过去式,图形工业回到了正确的轨道上,即以应用需求来主导硬件的发展—今天,DirectX 10游戏带来更逼真的画面细节,游戏工业希望有朝一日能实现电影级渲染,这意味着GPU必须具有更强大的能力。而在GPU发展的过程中,硬件工业发现GPU不仅仅可以用来渲染3D场景,更可以利用超强的浮点计算性能来加速通用任务,例如流计算、气象模拟、科学计算等等需要高计算负荷的环境,这一个发现令硬件厂商喜出望外,因为它们可以让GPU进入一个全新的市场,并带来更多的利润增长点。事实上,整个IT产业都敏锐地捕捉到GPU通用计算将给PC带来革命性的变化,进而影响到CPU的发展,无论nVIDIA、AMD还是英特尔,都意识到计算一体化时代的到来,CPU与GPU在未来将是一对密不可分的伴侣,为此纷纷着手进行准备—英特尔发布了自己的Larrabee高端图形/通用计算计划,并意图实现通用计算指令系统的标准化,将GPU通用计算变成X86领域的翻版;AMD则建立了流计算平台,并开始实现CPU与GPU的整合;nVIDIA在近期也发布了Tesla通用计算品牌,并推出针对高性能计算市场的硬件产品,以期抢先占领制高点。

在通用计算概念发展得如火如荼的时候,GPU领域的竞争也进入到白热化,nVIDIA以GeForce 8系列获得领先,AMD则拿出Radeon HD 2000应对,但业界都意识到GPU发展也逐渐走入死胡同:nVIDIA与AMD的竞争更多类似于晶体管堆砌游戏,新一代GPU的晶体管集成度已高达7亿,功耗超过200瓦,并且没有停歇的迹象。在这一场竞争中,AMD的R600不敌对手,但这也导致AMD停下来思考未来GPU的发展方向,并确立了多芯片、分布式结构的设计理念,这也成为下一代R700的基本出发点。

 

图形领域GPU标准之战逐鹿并行计算

Larrabee处理器设计架构,首代产品包括32个顺序处理核心,同时并将衍生24核的低端版本,2010年将升级到32纳米工艺和48核。

 

 

 

英特尔进入高端图形市场完全是迫于无奈,首先是nVIDIA SLI平台的授权让英特尔第一次尝到了被卡住咽喉的滋味,接着是AMD意外并购ATI,让英特尔不仅失去了战略合作者,而且将面对一个同时拥有高端CPU和图形业务的AMD。英特尔在很短的时间内就作出决策,它没有选择与nVIDIA合作,而是决定独立开发高端图形技术,很快一批来自原3Dfx、ATI的核心开发人员被吸纳到英特尔,光线追踪技术天才Daniel Pohl也被英特尔收归旗下,英特尔迅速建立起技术实力强大的图形开发团队,并开始参与到代号为“Larrabee”的通用处理器的开发。不过,英特尔CTO帕特·基辛格(Patrick P. Gelsinger)却表示,Larrabee是第一代Many Core架构处理器,图形团队并非该项目的主导,事实上,Larrabee一直是由英特尔的CPU开发部门负责推进,图形团队则辅助开发。但基辛格没有透露更多的信息,不过位于以色列的开发团队必须继续维护酷睿微架构,再行开发Larrabee的可能性很小,普遍认为Larrabee是出自英特尔在俄勒冈的CPU开发团队之手,Pentium 4架构便是俄勒冈团队的杰作。

从这里我们可以看出,将Larrabee当作一款单纯的GPU产品完全是一种误解,在英特尔的规划中,Larrabee是以高并行计算处理器的面貌出现,它自身也隶属于英特尔“Tera-Scale”万亿次计算计划。在指令体系上,Larrabee最大的特点就是与IA架构(X86)处理器的互换性,它使用经过调整的X86指令,现行X86计算程序可以直接被Larrabee运算执行,这实际上是说Larrabee与X86 CPU处于对等的地位。两者的不同主要在于,Larrabee专注于高并行度的计算任务,高可扩展架构使之可以满足气象预报、3D图形、地理分析、金融分析、医学影像等要求高并行性的特殊任务—这类任务的共通点就是计算量超大,且要求高并行度,常规的CPU在处理这些任务时效率不佳。AMD与nVIDIA先后推出基于GPU的流计算平台,但它们都要求程序对相应的GPU作特别的编程,这往往会给用户带来不必要的困扰。与之不同,Larrabee具有X86指令互换性,原有的程序代码不需要任何更改即可在Larrabee平台中高效执行,这也是Larrabee最主要的优点之一。从这个方面我们也可以看出Larrabee与常规GPU的根本性差异,它是比常规的CPU更具专用性,但通用计算能力又强于传统意义上的GPU,可以说介于二者之间。

 

图形领域GPU标准之战逐鹿并行计算

nVIDIA Tesla新品牌,专攻高并行性计算市场。

nVIDIA在近期宣布了自己的Tesla通用计算品牌,开始大举进入高并行性计算领域,并成为该领域的领先者。Tesla平台基于nVIDIA的GeForce 8800图形处理器,不过因GeForce 8800采用统一渲染架构,具有极高的灵活性,且nVIDIA在设计中让每个流处理器都具备独立的输入输出能力,使之可胜任高并行性计算任务。nVIDIA表示,Tesla将致力于为科学家和工程师构建“个人超级计算”,它主要针对地球科学、分子生物学和医药诊断学等领域,这些领域的研究每天都在改变数十亿人的命运。但在研究进程中,这些领域的科学家、研究人员和企业都面临着越来越严峻的挑战,那就是随着研究的深入,所需要收集处理的数据就越来越庞大,对计算性能的要求就越来越高。在过去,科学家们都依赖于万亿次浮点性能的RISC超级计算机,但这些超级计算机普遍价格昂贵且资源有限,令研究工作受到了制约。nVIDIA的Tesla产品线将致力于改变这种状况—每个Tesla GPU都拥有128个并行处理器(即GeForce 8800的流处理器),可进行高达每秒518GFLOPS浮点的并行计算,两个Tesla GPU构成的系统即可达到万亿次浮点性能,不仅价格低廉而且容易获取,让科学家摆脱对传统超级计算机的依赖。

图形领域GPU标准之战逐鹿并行计算

nVIDIA Tesla C870高并行计算加速卡,集成1.5GB GDDR3内存,支持PCI Express 2.0规范的X16接口。

nVIDIA一共推出三个Tesla产品系列,它们分别为Tesla GPU高并行计算处理器(代号C870)、Tesla桌边型超级计算机(代号D870)和Tesla计算服务器(代号S870):

Tesla C870 GPU高并行计算处理器即为GeForce 8800 GPU、拥有128个并行处理内核,不过它是以加速卡的形态出现。简单点说我们可以将它看作GeForce 8800显卡的变种,两者都采用PCI Express X16图形接口,板上集成若干容量的内存芯片,但与GeForce 8800显卡不同的是,Tesla加速卡支持带宽更高的PCI Express 2.0规范,上下行传输带宽达到16GBps,而它所配备的GDDR3内存容量也达到1.5GB,比显卡要多出不少,原因在于Tesla所针对的高并行性计算需要用到非常庞大的数据,所以必须配备大容量内存。

图形领域GPU标准之战逐鹿并行计算

nVIDIA Tesla D870桌边型超级计算机,包含两块Tesla C870加速卡。

Tesla D870桌边型超级计算机是一套可升级的计算系统,该系统内包含两个Tesla C870 GPU,浮点性能达到每秒万亿次,同时搭载3GB容量的内存(每个GPU 1.5GB专用内存);Tesla桌边型计算机没有集成通用CPU,因此必须通过低功耗的PCI Express 2.0标准X8或X16适配卡连线与PC或工作站的主机连接,构建多桌边体系。nVIDIA表示,该技术可以将一台常规的PC或工作站升级为拥有超强性能的个人超级计算机—由于构建成本低廉,能够为各研究机构和科学家添购,而不必再排队等候RISC超级计算机资源。另外,Tesla D870桌边型超级计算机工作噪音只有40db,适合放在办公环境使用。

Tesla S870高性能计算服务器拥有最强的性能,它包括四个Tesla C870 GPU,总计拥有超过2万亿次的浮点性能,内存总量达到6GB。Tesla S870服务器采用标准的19英寸、1U机架安装机箱,同样通过PCI Express 2.0的X8或X16适配卡连线与主机连接,不过在构建方式上nVIDIA提供了两套方案,标准配置采用1个PCI Express接口驱动4个GPU,另外用户可选2个PCI Express接口各驱动2个GPU的候选配置,它其实相当于两套Tesla D870桌边型系统的组合。

图形领域GPU标准之战逐鹿并行计算

nVIDIA Tesla S870高性能计算服务器,包含4块C870加速卡。

不过,科学家们要利用Tesla GPU的超级性能来进行科学计算并不容易,主要关键在于Tesla并非通用的处理器,应用软件必须专门为它编程。其实早在发布Tesla之前,nVIDIA就推出了面向通用计算的CUDA开发平台,CUDA是一套完整的软件开发解决方案,它包括Tesla GPU采用的C语言编译器、纠错器/制模器、专用驱动和标准API库。借助CUDA,科学家可以采用标准C语言来创建多线程程序,实现大量数据的并行处理,使GPU可以迅速解决复杂的计算难题。目前,nVIDIA已经推出Linux(32位和64位版本)和Windows XP(32位)的CUDA开发环境,其中通过认证的Linux包括Red Hat Enterprise Linux 3、4和5以及SUSE 10.1、10.2和10.3等商业发行版。

图形领域GPU标准之战逐鹿并行计算

主机上的PCI Express 2.0外部接口,Tesla D870和S870都通过专用的线缆与主机相连。

作为目前唯一可以买到、且技术成熟的GPU高并行性计算平台,Tesla和CUDA解决方案在许多学术和应用开发团队里都获得成功应用,许多大学采用Tesla和CUDA来建立并行计算的新课程,同时还有数以千计的软件开发者、科学家利用CUDA来从事分子仿真、地震分析、医疗设备设计等广泛的高性能计算任务。伊利诺斯州立大学Urbana-Champaign校区高级研究程序员John Stone对此表示,“我们研究的许多分子结构很大,过去是利用常规的X86工作站来处理运行它们的物理仿真计算,但这需要花费数周的时间;如遇到更复杂的计算任务,就必须将任务搬到集群服务器中进行处理。GPU加速技术使这些程序的处理效率提高了100倍,这样,我们可以将高复杂度的任务转移到桌面计算机中进行,这意味着更高的效率和更低的成本,显然nVIDIA Tesla通过更灵活的计算解决方案为此领域带来巨大进步。”而Headwave公司(总部位于休斯顿、专门从事地理可视化研究)的系统整合副总裁Steve Briggs则对Tesla平台给予高度期待,“过去,地理和地震分析必须花费大量的时间,如果没有GPU技术近期的进步,不可能出现类似在墨西哥湾的Jack Field 27000英尺下勘测到大型储油田的重大发现。今天nVIDIA的新品发布将使此类、甚至更为惊人的发现成为可能。”同样,Acceleware公司(电磁仿真研究)首席技术官Ryan Schneider表示,“使用nVIDIA的GPU计算平台可以令电磁仿真处理时间比之前快出25倍以上,该技术目前已应用到复杂的医药产品分析优化中,而这在两年前不曾有人设想过,nVIDIA和Acceleware的解决方案为计算电磁学开辟了新的领域。”

  Tesla应用实例 官方网站加速性能(相对于X86工作站)地震数据库www.headwave.com提升66-100倍移动电话天线仿真www.acceleware.com提升45倍分子动力学(VMD)www.uiuc.edu提升240倍MRI处理www.uiuc.edu提升40-170倍神经元仿真www.evolvedmachines.com提升100倍大气云层仿真www.clemson.edu提升50倍

nVIDIA Tesla产品家族的推出,标志着高性能计算领域前所未有的技术突破,科学家们不必再为计算任务处理费时或者超级计算机资源有限而烦恼,通过Tesla与PC的组合,即可在办公环境中构建属于自己的桌面超级计算机,并为科学研究节省大量的时间。不仅如此,Tesla同样可以用于服务器集群中,让集群系统的计算能力获得飞跃,赋予它们处理更复杂计算问题的能力。事实上,nVIDIA Tesla今天所达到的成就为英特尔Larrabee项目所梦寐以求,英特尔期望通过标准化的X86指令扩展为高并行性计算建立标准,而现在nVIDIA的CUDA已经先入为主。很明显,nVIDIA未来不可能放弃CUDA,向英特尔的指令集妥协,英特尔则决意走自己的道路,双方在高并行性领域的竞争可以预见。由于英特尔掌握完整的CPU计算平台,可以拿出一整套完善的解决方案,对于软件工业的影响力更是nVIDIA远远不及,只要英特尔在硬件上能够接近nVIDIA的水平,那么nVIDIA将很难保持自己的领先地位。唯一的应对之策就是nVIDIA能够与AMD携手,实现高并行计算的指令标准化,但这一点显然困难重重。

 

AMD在2006年就推出了基于R580 GPU(即为Radeon X1900)的流处理加速卡,R580虽然没有采用统一渲染架构,但之前的ATI在设计时已经为此作好了准备。AMD流处理加速卡与nVIDIA Tesla类似,两者都搭载了高于显卡的大容量内存,只是AMD的产品属于上一代架构。伴随着R600 GPU的推出,AMD流处理加速卡也将进入一个新阶段:R600拥有多达320个并行处理内核,浮点性能达到每秒470GFLOPS,比nVIDIA G80略低一些,但它同样可归属于顶尖产品之列,预计不需太长时间,AMD便会推出基于R600的新一代流处理加速卡。

nVIDIA为Tesla推出了完整的CUDA软件开发平台,帮助开发者快速开发出相应的计算程序。相比之下,AMD只为客户提供CTM瘦硬件接口,允许开发者直接访问GPU的原生指令集和存储器,以便发挥出GPU的流计算能力。问题在于,CTM仍然属于硬件接口之列,开发者必须深入了解硬件才能够开发出相应的计算程序,这项工作显然过于复杂了。因此尽管AMD流处理器推出在先,也获得包括GraphStream公司、PANTA Systems和Rackable Systems公司在内的支持,但并没有获得多少科研机构的采用,主要原因就在于为AMD流处理器平台编程的难度较高,而nVIDIA Tesla显然是更理想的选择。

AMD流处理计划的另一个障碍就是GPU硬件的限制。R600被认为是一个失败的案例,它集成了高达7亿枚晶体管,能耗超过230瓦,而计算性能却明显不如nVIDIA的 G80,后者只用了6.9亿晶体管和140瓦的功耗。AMD意识到R600架构难以与对手匹敌,为此将希望放在下一代R700上面,根据AMD的构想,R700将是GPU史上最富革命性的产品—R700摆脱了现行GPU单芯片的做法,走向多芯片体系,R700基本结构相对简单,性能相当于主流GPU产品,具有低功耗、制造良品率高等优点,同时R700具有高效的多芯片协作能力,即通过多芯片的组合,AMD可以衍生出高端、主流和低端产品。这种设计方案的优点在于快速过渡和低成本,我们知道,现行的GPU开发模式都是首先开发最高性能的版本,然后以此为基础依次衍生出主流和低端型号,但两者往往有长达半年的时间差,而且不同型号的GPU芯片无法共享生产资源,很容易因良品率低问题导致高成本。R700将扭转这一不利局面,AMD只需要设计并制造出R700一种GPU芯片,就可以同时推出高端(例如可集成8枚GPU)、主流(可集成4枚、2枚GPU)和低端(1枚GPU)等完善的产品线,保证在时间上的领先。如果对手的产品性能强悍,那么AMD只要通过调整芯片数量就能够再度获得领先,这种极富弹性的架构可以确保AMD在图形领域保持自己的竞争力。同时借助R700的力量,AMD可以构建起一套完善的协处理器加速平台,与英特尔和nVIDIA分庭抗礼。

然而,即便R700计划能够获得成功,AMD在高并行性计算领域也有自己的问题:英特尔通过X86指令扩展意图建立自己的标准,nVIDIA则已提供完善的CUDA软件平台并获得用户的支持,AMD只是拿出简单的CTM瘦硬件接口,光是软件开发的复杂度就令人望而生畏。可以预见,伴随着高并行计算领域竞争的白热化,AMD如果无法及时赶上就会有被抛弃的危险,毕竟标准之争高于一切。

 

英特尔Larrabee、nVIDIA Tesla与AMD流处理器标志着一个新时代的开始,GPU的潜能获得最大限度的发掘。计算工业现在发现,GPU除了渲染3D图形之外,还将作为超级计算机的一份子,这种角色变换显然令GPU厂商们喜出望外,而传统RISC服务器/工作站厂商的地位则受到威胁。对于英特尔来说,Larrabee无疑是辅助安腾平台的利器—英特尔花费大量的精力在安腾身上,希望它能够进入超级计算机市场,但在过去的数年间,安腾的发展都令人失望,IBM、SUN等传统RISC服务器厂商的地位几乎不可撼动。Larrabee平台的出现有望有力扭转这一局势,英特尔希望通过指令集的标准化而成为新领域的领导者,重复它在X86领域的辉煌。不仅如此,PC领域也将因此受到影响—既然GPU更能胜任浮点计算任务,那么为何不将CPU的浮点功能弱化或者剥离?通过CPU与GPU的协作来获得高性能?这也验证了“分久必合、合久必分”的大势,浮点功能的分离可以令CPU更专注于任务处理,不仅可以因此获得更强大的任务处理能力、更高的每瓦性能,同时也有助于成本的降低。在对Larrabee的分析中,我们就很清楚阐明了英特尔的未来路线:传统的巨内核设计将被放弃,英特尔将转入微内核设计体系,这对于微处理器工业又将是一次思想上的革命。