图形领域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,可以说介于二者之间。
|

|
|
微内核设计具有更高的晶体管效率和能源效率 |
在硬件设计上,Larrabee采用的是“Many Core”体系的超多核设计。根据规划,将于2009年推出的第一代Larrabee处理器包含32个内核,并将衍生出24内核的低端版本,不过后者只是将那些达不到要求的Larrabee关闭8个内核而来,本质上它们仍来自于相同的生产线。Larrabee采用微内核设计,内核逻辑采用顺序执行结构(In Order),可同时执行4个线程,这一点与CPU里的乱序执行(Out Order)有根本性不同。顺序执行架构让Larrabee适合用于执行纯粹的计算任务,但它无法处理事务性的工作,也就是偏重于某一方面的效能。由于顺序执行在硬件上较为简单,每个内核只使用到较少的晶体管,同时核心频率可以达到较高的水准。英特尔透露,Larrabee将工作在1.7-2.5GHz频率上,每个核心的双精度峰值为14-40GFLOPS,每个核心每周期能完成8-16DP Flop(SSE2+),这样32核的Larrabee就可获得超过1TFLOPS的计算性能,也就是每秒万亿次浮点计算。在3D图形方面,Larrebee支持JPEG纹理、物理加速、反锯齿、增强AI、光线追踪等特性,光线追踪特性更是它的一大卖点,这项技术可以极大程度增加3D图形的视觉真实度,但对CPU的运算能力提出苛刻要求,但拥有万亿次浮点性能的Larrabee可以很好胜任实时光线追踪渲染。事实上,Larrabee的结构与最初索尼PS3的设计非常相似,索尼最初并未考虑以nVIDIA为合作对象,而是计划采用Cell处理器的一种变体来渲染3D图形,即利用大量的浮点协处理器来渲染3D图形。这一理念过于前卫而没有获得推行,但我们在Larrabee中看到了它的翻版。
与显卡类似,Larrabee也将拥有自己的内存系统,英特尔采用类似于AMD R600的环形内存总线,因此可以做到512bit位宽,Larrabee将搭载1GB-2GB容量的高速显存,总带宽将达到128GBps,规格与Radeon HD 2900XT、GeForce 8800 Ultra这类旗舰系统相当。不过这只是暂定的计划,毕竟现在到2009年还有许多变数,Larrabee富有弹性的架构让它完全可以搭载更卓越的内存系统,这对于3D渲染任务来说至关重要。
据分析,2009年出炉的第一代Larrabee产品将采用45纳米工艺,搭配大容量缓存,它的功耗约为150瓦。作为一款拥有万亿次浮点计算的处理器产品,Larrabee的功耗低得令人惊讶,它也将英特尔“每瓦性能”的理念推向极致。事实上,Larrabee已经预示着英特尔处理器开发思想的再度转变。我们知道,过去Pentium 4架构奉行频率至上的原则,最终在功耗面前败下阵来,微处理器工业转向多核心发展体系。但多核处理器的晶体管集成度高速增长,制造成本和芯片功耗也不断提升,而每瓦性能的升幅变得缓慢。按照这样的趋势发展下去,多核处理器很快便会遭遇当年Pentium 4遇到的麻烦,芯片功耗变得难以接受,而性能提升变得缓慢。英特尔认为“微内核”设计可以解决问题—现行微处理器工业都隶属于“巨内核”体系,巨内核的特点是核心设计复杂,要求动用数量庞大的晶体管,但优点在于单个核心就可以承担所有的任务,性能也颇为出色。而“微内核”则不同,它的核心设计都非常简单,往往只处理特定的任务,所需的晶体管和能耗当然也少得多,计算性能当然也不会太高。不过,设计者可以将大量的微内核集成在一起,实现高并行性计算,这种做法无论在能源效率还是晶体管效率指标上都优于现行的“巨内核”设计。英特尔举出一个研究例子,若要实现32GFLOPS/4GHz规格的处理器,巨内核架构需要21平方毫米大小的芯片(假设45纳米工艺)才能做到,平均每平方毫米芯片可提供1.5GFLOPS性能,每瓦特能耗的性能则是1.4GFLOPS。而如果采用微内核思想来达到相同的32GFLOPS/4GHz,那么芯片尺寸只要区区6平方毫米,平均每平方毫米芯片的性能为6.4GFLOPS,每瓦特性能为5.9GFLOPS。换句话说,无论是能源效率还是晶体管利用效率,微内核设计都远高于传统的巨内核产品,这也是Larrabee能在普通规格条件下拥有超高性能的秘密所在。
|

|
|
英特尔处理器的发展路线:从巨内核体系的单核到现在的酷睿双核,未来将转向微内核架构的超多核体系。 |
Larrabee的微内核设计将标志着英特尔继酷睿之后的又一次伟大转变,酷睿架构所隶属的巨内核体系当然还会发展,不过很有可能被进一步精简化,例如将浮点计算功能剔除,只留下整数计算的部分,使之精简为事务型处理器,浮点计算任务则由微内核体系的产品来负责。在英特尔的Many Core计划中,我们看到的是两者的混合:少数巨内核设计的核心“指挥着”数量庞大的微内核单元,两者既可以分开也可以整合,至少作为第一代Many Core思想的Larrabee就是作为独立产品而存在。
关于Larrabee的另一个焦点问题就是指令集。英特尔在开发Larrabee时有多多次争论,开发人员也几经改变,最终确立Larrabee将在X86指令基础上进行扩展,进而建立一套标准化指令体系,这个过程类似于当年英特尔开发X86。也正是因为这一点,Larrabee被认为是与GPU完全不同的另一种处理器。这项特性赋予Larrabee无以伦比的便利性—我们知道,在CPU领域,程序员所使用的指令架构都非常稳定,不会因为CPU更新换代,或者改用其他厂商的CPU就遇到程序无法执行的状况,原因就在于软硬件工业都遵循共同的X86指令架构。而GPU领域则大大不同,不仅不同厂商拥有不同的指令架构,甚至相同厂商不同代次的GPU产品指令架构都不同,例如GeForce 7隶属于DirectX 9指令架构(API),GeForce 8则为DirectX 10,两者无法相互兼容。如果将GPU用于通用加速,那么nVIDIA与AMD所用的指令架构又不相同,要求软件开发者分别为之编程,其中繁琐之处显而易见。Larrabee平台完全不存在这个问题,英特尔在X86基础上作了扩展,建立了Larrabee的指令集,同时将其完全开放,软件开发者只要针对这一指令集编程,就不必担心未来的兼容性问题,相当于英特尔为高并行计算领域建立了另一套“X86”。从这一点也可以看出,Larrabee是一种介于CPU与GPU之间的产品,它分别汲取了两者的优点,并创造性地达到一个高峰,虽然现在谈论Larrabee能取得多大的成就还为时过早,但我们认为这是一场真正意义上的革命,它不仅仅标志着英特尔进入高端图形市场,意味着英特尔转向“微内核”体系,更预示着经营十数年的图形工业将面临一场严峻的挑战。至于英特尔本身,它并不喜欢人们将Larrabee称作GPU,而优先强调Larrabee在高并行计算领域的卓越能力,或许进入高端计算市场是英特尔当前的首要期望。
[an error occurred while processing this directive]
新品欣赏