DX11带来新“视”力
编辑视线
10月22日,微软将正式发布Windows 7操作系统。对于显卡爱好者或者游戏玩家来说,新系统固然令人向往,但随系统诞生的Direct 3D引擎更值得关注。为了抢占DirectX11(以下简称DX11)的制高点,AMD与NVIDIA均磨刀霍霍。不过,与DX10时代相比,两家图形巨头的态度截然不同,上次是NVIDIA的G80全面领航,而这次是AMD用Radeon HD 5800系列抢先“撞线”。面对DX11的召唤,两家厂商态度为何不同?DX11引擎会对显卡产业带来哪些影响?
DX11,为高效游戏而来
从4年前发布至今,DX10引擎已经统治了3D图形领域,它最大的成功是带来了画质的革新,特别是在游戏领域,许多绚丽无比的新特效令人惊艳。不过,好看也要付出代价,“滥用”各种特效导致GPU不堪重负,《孤岛危机》(Crysis)这个“变态”游戏就是最典型的代表。GPU的性能受到很多因素制约,一旦制造工艺跟不上,其运算能力很难取得突破。因此,必须通过不断提升架构运算效率来强化3D图形性能。
随后的DX10.1对DX10进行了修补,比如着色器和纹理的改进、抗锯齿的提高等。虽然更新内容不少,但相比DX10没有革命性的变化,大部分是提高GPU的资源利用率,将一些可选标准列为必需,其实不少项目的DX10显卡通过修改驱动就能实现。因此DX10.1没能得到游戏开发商足够的重视,并没有像当年的DX9.0C那样迅速成为主流。
其实,DX10.1只是微软的一个试验品,其目的很明确,那就是尽可能提高DX10的渲染效能,达到节约GPU资源的目的,DX11正是为此而来。尽管DX11不像DX10那样带来全新的特性,但它通过各种手段提升了GPU的渲染效率,其最重要的五个特性是Tessellation(镶嵌式细分曲面技术)、Multi-Threading(多线程处理)、DirectCompute(计算着色器)、ShaderModel 5.0(着色器模型5.0版)和Texture Compression(纹理压缩)。其中SM5.0是完全针对流处理器而设定的一个渲染指令集,它比SM4.1更加灵活、智能,效率也很高。
除了SM5.0之外,DX11还给我们带来了一个惊喜——Multi-Threading,即多线程处理技术。利用这项技术,游戏引擎可以将渲染的3D程序分为多个执行步骤,目前正在渲染的程序指令集与以前的渲染方式没任何区别,都是将数据读入到核心处理器进行累加计算,无论是多边形的顶点还是贴图以及堆积计算都不会发生任何变化,真正的改变是来自此后的计算步骤,在GPU进行运算的同时,纹理拾取、像素生成、常数缓冲等对不需要渲染引擎进行运算的其他步骤操作都可以多线程并行处理,然后再进行合并统一,由核心处理器完成混合运算,执行输出。编注:关于DX11的详细技术特点,请参阅本期D2版。
DX11“瞄上”GPU通用计算
提起GPU的通用计算,大家很容易想到NVIDIA的CUDA(统一设备架构)和AMD的Stream以及去年以苹果为代表提出的OpenCL(开放式计算语言)等技术标准。其实,除上述提及的厂商外,微软也“瞄上”了GPU强大的并行计算能力,并在DX11中提出了DirectCompute规范。
借助显示核心进行通用计算,肯定是未来的发展趋势,软、硬件厂商都希望在这个领域有所建树。不过,最先提出GPGPU(通用计算图形处理器)概念的是ATI,当年的Folding@Home和AVIVO就是证明,但ATI被AMD收购后GPGPU计划被搁浅。而NVIDIA后来居上,抢先将CUDA平台推向市场,并在这方面投入了很大的精力,希望CUDA能够成为通用计算的标准开发平台。目前已经有很多基于该平台开发的软件,比如有名的视频转码软件Badaboom、MediaCoder等。遗憾的是,CUDA属于一个“半开放式”平台,它只适用于NVIDIA自家的图形核心。
相比之下,AMD后来提出的Stream虽然是完全开放的,但由于资源有限,对程序员帮助不大,因此并未得到大量使用。在这种情况下,2008年由苹果公司牵头,联合Intel、AMD、NVIDIA、ARM、博通、爱立信、IBM等多家IT龙头企业,共同倡导OpenCL(开放式计算语言)标准。
其实,Intel、NVIDIA和AMD都支持OpenCL一点都不奇怪。首先,对于将在明年发布的Larrabee显卡,Intel对外宣传的一大卖点就是强大的计算能力,支持OpenCL有百利而无一害;其次,NVIDIA虽然在大力推广CUDA开发平台,但毕竟势单力薄,压力不小,OpenCL虽然与CUDA C语言有交集但并不冲突,是相辅相成的互补关系,NVIDIA自然不会反对;最后,AMD由于自家的Stream推广不利,支持OpenCL也是情理之中的事。
面对OpenCL咄咄逼人的气势,作为软件业老大的微软自然不会坐视不理,更何况GPU通用计算还是一块香喷喷的大蛋糕。不过,微软自然有自己的“小九九”。众所周知,经过这么多年的发展,DirectX凭借良好的兼容性、快速的更新换代策略和微软强大的影响力,打败了OpenGL,一统3D API(应用程序接口)“江湖”。因此,微软打算采用同样的策略来打击立足未稳的OpenCL,这个“杀手”就是DirectCompute。
如上所述,正如当年对待OpenGL和DirectX一样,NVIDIA和AMD都对OpenCL和DirectCompute提供了比较好的支持。因此,从本质上说,GPU通用计算之争不是CUDA和Stream相斗,而是OpenCL和DirectCompute之间的对决。
对待DX11,GPU巨头态度不一
前面我们说了,在DX10时代,NVIDIA用强悍的G80做开路先锋,一路高歌猛进,取得了明显的市场优势,而AMD由于失去先机,只能在DX 10.1领域寻求一些慰藉。不过,面对即将到来的DX11时代,这两家图形芯片巨头对新产品的态度对调了一下,AMD抢先一步在9月底发布了代号为Cypress的Radeon HD 5870、5850系列显卡,期待在新战场打个翻身仗。而NVIDIA的DX11产品GT300最快要到年底才会发布。
随着Radeon HD 5800系列的发布,AMD和NVIDIA在显卡市场上的新一轮战争正式打响了。在接下来的几个月时间里,双方都会陆续发布大量新品,不同的是,AMD会很快全线切入DX11,而NVIDIA方面因为GT300尚未准备就绪,中低端领域将以几款新的DX10.1显卡迎战。
第四季度将是新显卡发布的高峰期,首先是10月底代号为Juniper的Radeon HD 5770/5750面世,面向149美元~199美元的性能级主流市场。11月,新款旗舰型单卡双芯产品——Radeon HD 5870 X2和Radeon HD 5850 X2到来,价格最高可达500美元。另外,据说年底还会有一款Radeon HD 5870的高频版本Radeon HD 5890面市。
NVIDIA方面,将把40nm、DX10.1显卡从OEM领域带入零售市场。最低端型号为GeForce G210,内置16个流处理器,搭配64bit DDR2显存,价格不足40美元。而主流型号是GeForce GT220(核心代号GT216),流处理器增加到48个,显存也变成128bit DDR3,价格低于60美元。之后,NVIDIA还会增加一款性能级产品GeForce GT 240(核心代号GT21),拥有96个流处理器和128bit GDDR5显存,价格在100美元上下。
面对DX11的召唤,NVIDIA这次的节奏给人感觉有点慢,影响新产品抢先推出的具体原因虽然我们并不清楚,但有一点可以肯定,NVIDIA绝对不打无把握之仗。虽然起步晚于对手,但NVIDIA似乎对GT300抢回性能优势充满信心。据悉,GT300的核心架构设计将抛弃传统的SIMD指令集,而采用全新的MIMD指令集,这样的设计有望将性能在现有的GPU基础上提升数倍。
除此之外,GT300还将支持新一代的CUDA——CUDA3.0。在NVIDIA的体系中,CUDA是未来推动公司继续前进的重要力量,能够与DirectCompute完美结合,甚至充分利用GPU强大的并行运算能力,充分开发出更多专属CUDA应用,才是NVIDIA最大的愿望。




观察:DX11要想续写辉煌不容易
DX11时代要来了,和以往DirectX的任何一次升级一样,让我们充满了期待。不过,这一次也许和以往有些不一样。
与华丽的DX10引擎相比,DX11在特效方面略显“贫乏”,更注重实用性和显卡效能是DX11首要任务。除此之外,叫板OpenGL统一通用计算引擎,捆绑上下游软硬件厂商是微软真正的目的。不过在目前的格局下,微软只依靠一个引擎就获得胜利是一种奢望,毕竟都是通用开发的引擎,一方是多个巨头的联盟规范,另一个是3D引擎的龙头企业,一番较量在所难免,在3D领域一统江湖的微软,在通用计算领域是否能延续辉煌,就在未来几年内见分晓。