|
http://hardware.mydrivers.com/2/192/192331.htm
从GPU发展看英伟达(NVIDIA)的成功之道
第一部分 遥想当年
第二部分 DX10:各有特色
DX10主要特性简析
G80架构解读
R600架构解读
第三部分 DX11:研发vs调整
DX11主要特性简析
Fermi架构解读
Barts架构解读
第四部分 应用/技术:开拓vs跟从
PhysX
3D Vision
总结
前言
在IT界,你来我往的硝烟战火从未停止,回顾这十五六年显卡发展,从最初的大大小小的GPU公司到一直坚持到如今的两大芯片制造商:NVIDIA和AMD!一路风风雨雨,你夺我抢,这其中的恩怨情仇也许可以说上一天一夜……
GPU是NVIDIA最重要的业务,拼杀在GPU这个领域中近二十载,大小战役数十场,一方面凭借着强大的研发与生产能力为消费者提供更好的产品,另一方面积极努力将GPU的优势发挥到极致,手机、平板、笔记本、台式机、汽车等,都能看到NVIDIA的面孔。
AMD的历史较为复杂,2006年,AMD正式收购ATI,之后AMD便拥有了CPU与GPU两大业务组。收购ATI之后的AMD他们更愿意组合GPU和CPU的优势互相促进产品的销量,对于融合有预见但并不想让GPU抢占CPU的功能。
引子,遥想当**
在GPU发展的历程中,在完全可编程的GPU推出前,各家的GPU基本上就是满足API或者Direct 3D的规格需求,在架构上可以回旋的余地不大。随着GeForce 3的出现,GPU进入了一个可编程的新时代。GPU可编程给各家的架构设计带来了更大的发挥空间,在架构上比较激进的NVIDIA针对预测的未来图形的发展方向作了很多尝试。比如说,NVIDIA GeForce FX GPU的规格就超过了同期DirectX 9.0的规格,在可编程型方面更近一步,支持长着色程序和一些程序流控制功能;而GeForce 4则是带来了全新的FP16 HDR渲染特性,在架构上实现了比较完整的程序流控制功能。
AMD方面,当时应该称作ATI,相对比较保守,基本上严格按照DirectX的规范来设计GPU。虽说GeForce FX在商业上相当失败,但是其架构基础给GeForce 4一代的成功奠定了很好的基础。
抛开这些因素,NVIDIA和AMD的架构在这段时期内并没有本质的区别,基本上都是Vertex shader, setup/光栅化,vertex shader以及ROP/内存控制器这些单元组成,shader的结构也大同小异,都是向量处理器形式的。这种趋同的架构设计趋势直到G80/R600这一代GPU的出现才出现了重大的变化。
序幕,朝代变迁 DirectX 10出世
在介绍变迁之前,先说说API,API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,简单地说,针对图形的API就是连接计算机应用与硬件之间的桥梁。目前主要API有DirectX和OpenGL等。
DirectX:它们旨在使基于 Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、3D 动画和丰富音频)的应用程序的理想平台。 是目前最主流也是采用最多的的图形API。
随着2006年,微软发布了革命性的全新操作系统——Windows Vista,DirectX 10成了中关村装机商口头最常见的“忽悠”术语,因为装机商都知道,要用Vista,您得先换一块好显卡!
在DirectX 10时代,之前Direct X系列API的注入高CPU负载等的缺陷得到了大大改善,这个改善主要通过以下三个通道得以实现:
修改API核心,使得绘制体和切换材质特效时的消耗降低;
引入新的机制,降低图形运算操作对CPU的依赖性,使更多的运算在GPU中完成;
使大量的物体可以通过调用单条DirectX 绘制命令进行批量绘制。
DirectX 10的降临带走了CPU的高负载而给游戏图形效果带来的苦难。通过提前的数据验证、纹理阵列、绘制断言、数据流输出、状态对象、常量缓冲机制,帮助游戏的效果和效率上升到一个新高度。除了非常重要的这一点外,DX10还支持Shader Model 4.0,带来以下几点革新:
加入全新Geometry shader
统一的Shader架构
百倍于DirectX 9的可用资源
更多的纹理
更多的渲染目标(Render Target)
新的HDR颜色格式
在shader model 4中,Vertex Shadery和Pixel Shader有着统一的指令集、同样的临时/常量寄存器个数。它们将平等的共享GPU中的所有可用资源。在游戏程序中不用再考虑每种shader自身的限制了。简单点说,DX10中微软用统一渲染器(Unfied Shader)取代了Vertex Shadery和Pixel Shader的功能,计算指令不再有顶点、像素或者几何之分,处理过程得以简化。所以AMD和NVIDIA也因此各自设计了适合自己的统一渲染器,架构随之发生了很大的变化。
针对DX10和Vista,NVIDIA和AMD都重新设计了一组属于自己的统一渲染架构。也是因为这一代,NVIDIA和AMD都选择了一个属于自己的方向……
DX10:G80先发制人
2006年10月底11月初,NVIDIA迎接DirectX 10的到来发布全新一代架构G80, 首次采用统一渲染架构(Unified Shader Architecture),是DX10时代具有革命意义的产品!
G80之前,显示芯片厂商在设计GPU时,根据常见游戏的情况将顶点管线相对放得少一些,多放一些像素渲染管线。在DX10时代,传统“管线”形式的显示芯片开始呈现出力不从心的状态,想在这种架构下提高性能,只能去提高频率,或是增加渲染管线的数目,可是以这种方法实现性能的提升却是非常痛苦的。而G80的设计是通过很多功能相同的流处理器来动态分配给各种操作,以达到每个处理单元都参与运算,从而提高效率的目的。
G80架构图
通过以上架构图我们可以发现,没有了Vertex Shader和PixelShader的结构,取而代之的是8组并行的单元,每个单元中有16个流处理器和8个纹理单元。而为了应对处理3D图形数据时做的大量运算,G80在现实核心集成了128个浮点运算处理器。
每阵列结构
另外,G80还开启了GPU计算的新时代。有关显卡的通用计算NVIDIA并不是首创,ATI在Folding@Home项目上都比NVIDIA起步要早,但在DX10统一渲染器出现之前显卡通用计算技术的发展一直处于较低水平,流处理器的出现使其有了充当CPU的可能,而在支持环境上,CUDA的出现解决了软件开发环境的问题。过去GPGPU方式使用GPU做通用计算,是使用图形API来将计算模拟为图形操作,因此在效率和便利性上都有严重的问题,而且GPGPU流式计算方法也不利于充分发挥GPU的能力。
G80在计算架构上第一次实现了统一的shader架构,增加了片内的存储空间,程序员可以把G80 GPU当成一个真正的通用处理器对待。另外,G80的每个SP都采用了标量架构,因此在通用计算上效率远胜于传统的矢量结构运算单元,配合NVIDIA CUDA C,真正实现了在GPU上运行C这样的高级语言,实现了GPU计算的全新开始。
DX10:R600全新架构 后来者未能居上
在G80系列产品在市场上活跃长达半年之久后,AMD忙着收购ATI,采用统一渲染架构的R600才正式发布,而此时的高端市场已经完全由NVIDIA占据。AMD这半年来的缺席保证了NVIDIA丰厚的利润。
AMD的统一渲染器设计还是在原来的SIMD架构上改良而来,Superscalar超标量架构由1个4D矢量一个1D标量运算核心组成,进行传统的4D矢量运算时效率最高,而遇到1D标量运算时运算效率降至四分之一,所以需要更多数量的流处理器来弥补这个劣势。这也是为什么现在大家看到AMD的流处理器总是多于NVIDIA那么多的原因。下面我们就来看看一直延续至今的R600架构。
R600架构图
R600架构中配备了320个流处理器单元,具备4个Quad Processor(四方阵列处理器,简称QP),每个QP内包含了16个着色器(shader)处理单元,每个着色器内包含了5路超标量(superscalar)的运算单元(ALU)。采用了台积电的80纳米高速版(80HS),集成了大约7亿枚晶体管,一枚管芯内集成了3D处理、2D加速、视频加速、显示输出、内存控制、HDCP、5.1音频通道等单元。
R600 SIMD
虽然在DX10初期,R600的出现并没有将收购后的ATI打一个漂亮仗,但是不得不说的这个架构在当时来说,还是有可圈可点的地方:
1、Hardware Tessellation,也就是目前DX11中火热的硬件曲面细分技术,AMD在HD 2000显卡中引入了这一技术,不过当时的硬件环境远不成熟,Hardware Tessellation不具有实用性,只在HD 2000显卡上昙花一现,到了HD 3000系列就去掉了。
2、1024-bit环形总线技术,2900XT本身就拥有512bit显存位宽,已经是当时位宽最大的,G80最大位宽也不过384-bit。AMD在此基础上又引入了Ring bus环形总线,可以等效1024-bit位宽,如果使用高速的GDDR4显存,那么显存带宽可以轻易突破130GB/s(这一数值在今天的高端显卡上也不容易达到),普通的GDDR3显存带宽也有100GB/s以上的带宽。不过ring bus的总线特征可以带来较高的频率,但是总线结构的设备独占特征决定了在出现访问冲突的时候效率不如传统的cross bar结构,这也许是AMD最终放弃这一架构的一个原因。可惜的是当时的生产工艺还是80nm,512-bit的显存位宽要占据相当大的晶体管规模,AMD的环形总线技术也没有普及开来,到HD 3000系列上甚至精简为256-bit,但是搭配高速GDDR3显存来弥补。
R600作为AMD推出的第一代统一渲染架构在虽然有亮点,但是在市场上并没有引起玩家的共鸣,且性能上相对NVIDIA的G80并没有胜算,所以在很长一段时间内AMD都处于劣势。在后来的R700等产品上,AMD仍然只是在R600的架构上作了一些小小的改动,一直到DX11时代,AMD依然延续了R600开创的4D+1D超标量结构,通过新工艺大幅提高sp单元数量来获得性能提升。而NVIDIA却是选择走了另外一条路,当然这是后话了。
点评:
NVIDIA:不可否认,G80的先发制人给NVIDIA在市场上带来巨大的成功,而CUDA的出现降低了GPU开发的门槛,借助GPU强大的浮点运算能力,开发者可以用标准的C语言编程实现CPU也无法企及的大规模并行计算,深得很多开发者的亲睐。
AMD:为了迎接DX10的降临,AMD也重新设计其架构。也许由于G80风头太劲,且性能上相对G80并没有胜算,使收购后的ATI显得有些萎靡,很快就被改进版的RV670架构取代。
**:DX11降临
人们对视觉的追求是永不止步的,随着Win7的到来,DX11也随之踏进。与DX10不同的是,微软这次将中心集中在如何提升算法和效率上面,而不是一味得加入新特效或者提高模型复杂度。通过各种手段提升GPU渲染效率之后GPU有了富裕的运算资源,游戏开发商可以去使用更多的特效冲击我们的视觉神经。
DX11关键性5点:
Tessellation:镶嵌式细分曲面技术
Multi-Threading:多线程处理
DirectCompute 11:计算着色器
ShaderModel 5.0:着色器模型5.0版
Texture Compression:纹理压缩
其中Tessellation和DirectCompute 11可以算是DX11带来的最重要的两大革命性技术,Tessellation可以大幅提升游戏画质、而DirectCompute 11则可以大大提高游戏效率,本次我们主要再为大家温习一下Tessellation。
无曲面细分,不DX11
DX8/9/10时代,大部分的重点都是侧重在画面渲染这一块,没有侧重在三角形几何图形的处理上面。在过去的这些年中,画面渲染进步了100倍,但是三角形几何图形的处理却仅仅进步了3倍。之前我们看到,R600上其实有对Tessellation的优化,不过到了DX11,微软推出这样一个API。
利用 Tessellation 技术实现逼真、浓密的头发渲染
在以前,我们通过一个前端电路控制模块来汇集,获取和对三角形光栅化。在那个几何运算并不复杂的时代,像这种固定的流水线操作可以达到几何运算性能,并不会因为并行核心的增删而改变。随着几何运算的复杂性逐步增加,DX11引入了Tessellation,NVIDIA认为成熟的GT200架构已经无法适应大规模的Tessellation计算,所以GF100全新架构的诞生也就势在必行。而并行化的Raster Engine和PolyMorph Engine就是并行处理架构上的关键模块。可扩展的PolyMorph Engine能实现较高的三角形速率,每个PolyMorph Engine均拥有专属的顶点获取单元以及Tessellator,很好的提升了几何性能。与之呼应的是四个并行的Raster Engine,它们能在每个时钟周期内设置最多四个三角形,并且在三角形获取,曲面细分以及光栅操作方面具备很强的性能。
NVIDIA:Fermi驾临 为高性能而生
Fermi 是 GPU 架构的代号,而实际的 GPU 代号则是 GF100,即基于 Fermi 架构的最高端图形产品,G 在这里指图形,100 是指产品级别。GF100 GPU 具备 512 CUDA Core,是上一代 GPU GT200 的两倍以上,拥有针对 8x MSAA 加强设计的 ROP,而纹理过滤单元数量则有所削减。在画面品质方面,Fermi 引入了新的 CSAA 模式,支持 24 个 coverage 取样,最高支持 32 倍 CSAA,并且加入了 Alpha-to-Coverage 的支持,对 DX10 游戏游戏来说这是不错的好消息。
Fermi
在解读DirectX 11 中我们又提到,Tessellation 是DX11重大革命技术,在启用之后,游戏的几何体细节度将会显著增强,随之而来带来的问题是几何处理性能的需求大幅度提高。Fermi此时为其有做哪些改变呢?下面,我们就让我们再次解读Fermi架构!
Fermi架构图
从以上Fermi架构图中可以看出,一个GPC由四组SM阵列组成,每一组SM阵列具备32个流处理器、一个PolyMorph Engine多形体引擎、16个Store单元、四个SFU单元和纹理单元、两个Warp调度器和指令发送器、能配置为48KB Shared Memory+16KB L1缓存或者16KB Shared Memory+48KB L1缓存的共享内存/L1缓存。在AMD统一渲染架构的GPU中,类似SM等级的部件是SIMD Core,例如RV870拥有20个SIMD Core。
在浮点运算方面,G80、GT200的单精度运算都是采用IEEE 754-1985标准的浮点算法,而GF100在单精度浮点指令上提供了对次常数以及IEEE754-2008标准的所有模式的支持。
GPC
GF100被NVIDIA定义为新一代CUDA计算图形架构,并且舍弃了TPC(Texture Processing Cluster)概念,引入全新的GPC(Graphic Processing Cluster)图形处理器集群概念。GF100中的GPC由4个SM单元和1个Raster Engine引擎所组成,将顶点、几何、光栅、纹理以及像素处理资源进行有机整合。NVIDIA 在 GF100 中引入了 GPC 的设计,将 GPU 的处理单元划分为除了 ROP、内存控制器外若干相对独立的完整模块,这其实就是一个多核设计。
每个 GPC 具备一个完整的光栅引擎用来处理三角形的 setup、光栅化和 z-cull 处理,GF100 有 4 个 GPC,和同样规模的旧式架构相比,GF100 的三角形 setup 吞吐率提高了三倍,很好地满足了 DirectX 11 中新增 tessellation 支持带来的几何处理剧增问题。
Raster Engine和Polymorph Engine
GF100 的 GPC 内拥有 4 个 SM,每个 SM 有一个 PolyMorph Engine,每个 PolyMorph Engine 具备专门的硬件用于处理顶点拾取、Tessellation、Viewport Transform、Attribute Setup、Stream Output。
Polymorph Engine运算过程
Raster Engine运算过程
每个Polymorph Engine都拥有专属的顶点获取单元以及tessellator,很大得提高了几何性能。另外,四个并行的Raster Engine与之遥相呼应,他们在每个时钟周期内设置最多四个三角形。
纹理单元
在GF100中,每个SM配备了4个纹理单元,与上一代GT200以及竞争对手Crypress相比,不但没有提升反而下降了。NVIDIA认为,单纯的添加纹理单元的数量并不能有效提升GPU的纹理贴图能力。所以,在我们看到的GF100中,NVIDIA通过将纹理单元移植到SM中的设计来提升纹理单元的使用效率和时钟频率。
Shared Memory和L1/L2 cache
Fermi 架构的一个重要特点就是引入了可读写的 L1 cache 和 L2 cache 设计,这个设计不仅在 GPU Computing 的时候能发挥作用,在执行游戏图形的也能有所作为,例如在图形模式的时候 L1 cache 会被配置为每个 SM 具备 16KB L1 cache 作为寄存器溢出缓存,对于使用大量寄存器的游戏图形应用能发挥一定的作用。
Fermi 的可读写统一 L2 cache 被用来取代以往专门的 L2 纹理 cache、ROP cache 以及各类片上 FIFO 缓存,cache 的利用率更高,并且在整个渲染过程中都能提供减少访问主内存的动作。
ROP单元
NVIDIA对ROP单元也进行了全新设计。GF100包含了6个ROP分区,一个分区包含了8个ROP单元,共计48个ROP单元。而GT200具备8个ROP分区,并与8个64-bit的显存控制器绑定,一个ROP分区包含了四个ROP单元。
由于要开拓 GPU Computing 市场,Fermi 引入了许多以前的 GPU 从未有过的技术,例如片上存储器 ECC,可读写 L2/L1 cache;为了加强 DirectX 11 的性能表现,引入了多 GPC 设计,这其实就是多核版 GPU 架构,即 GPU 上有多个相对独立的 GPC,能同时并行处理多个三角形,这在之前的 GPU 上是无法实现的。不难看出来,DX11的降临Fermi的应运而生,与G80相较变化非常之大。那DX11上的AMD呢?
AMD: Barts为DX11改进
RV870借助成熟的图形架构,在DX11初期的表现还算不错。加上之前的DX11游戏不是很多,而大量运用Tessllation运算的游戏也不多,因此RV870的Tessllation性能并没有得到充分的检验。而现在,大量运用Tessllation运算的DX11游戏越来越多,显然之前的架构已经有落伍趋势。以下是HD6000系列产品Barts的架构解析:
乍一看,Barts似乎与Cypress,甚至之前的R600、R670与RV770没有本质区别,仍然是用大量晶体管堆积而成的高规格GPU。比起Cypress的2.15亿,由于SIMD的缩减,Barts的数量仅为1.7亿。相信功耗上也有相对优秀的表现。
Barts 和 Cypress 的架构除了 SIMD core 的数量存在差别外,在绝大多数方面都是类似的,例如都有两个 Unified Shader Engine,每个 Unified Shader Engine (USE)都有自己的指令 cache、kernel cache。
与Cypress相比,这次在流处理器数量上进行了缩减,大家可以看到SIMD由原先的一边10组缩减到现在一边7组,所以在流处理器、纹理单元和光栅单元数量也同样有缩减。而超线程分配处理器方面,则由原先的1个增至现在的两个,很好的提高了工作效率。
Barts简单得基于R600添加了用于几何计算的运算单元Tessllator(镶嵌器)+Vertex Assembler(顶点装配器)+Geometry Assembler(几何装配器)+Rasterizer x 2+Hierarchical -Z x 2。分别设计了两个Rasterizer(光栅器)和Hierachial-Z(多级Z缓冲模块)以适应Tessllation的运算需求在增加指令集的同时快速支持DX11。靠堆砌而成,与GF100的全新设计在性能上的差距也是有一些,特别是在DX11部分。不过,让我们失望的是HD6000系列显卡在以上所述的Graphics Engine部分却没有特别得改变。
从R600到最新的架构只是在原先的基础上稍作调整,并没有因为市场需求定制完全符合市场需求的架构。仅仅因为制程的改进而不断塞流处理器。因为NVIDIA对DX11特性的解读得到了良好的市场反应,HD6000时代随大流在Tessellation部分作了改进。
点评:
随着Win7的发布,DX11时代也正式降临。除了市场上开始活跃的DX11游戏,我们也又一次将目光转向了这两家显卡芯片供应商的身上。而这次的情景似乎四年前我们曾经经历过,不同的是角色做了个转换。
AMD先发制人发布了HD5000系列产品,并且领先时间也长达半年之久,不过可惜的是,当时市场上支持DX11的游戏还很少。HD5000仅仅充当了一个拥有DX11头号的DX10显卡。Fermi的计算为导向的架构对于未来图形的发展奠定了很好的基础,可以满足诸如光线追踪、Voxel渲染这些未来图形技术的硬件架构基础。
题外话:架构以外的“蛋糕”
让虚拟的世界越来越真实——PhysX与3D Vision
游戏发展到最后无非是想玩家获得更真实的视觉体验。初中时代的《星际争霸》,到初步拥有3D效果的《极品飞车》,再到以阴影著称的《DOOMIII》,再到将HDR效果发挥淋漓尽致的《Fracry》,越来越震撼的视觉效果在冲击着我们……
在2006年Ageia发布物理PhysX加速卡时,曾经猜想3D加速成就了3DFX,物理加速会不会成就了Ageia,不过这种猜想在残酷的商业竞争中并没有实现,Ageia最终也没有逃过被收购的命运,不过让我们感到庆幸的是PhysX加速引擎被NVIDIA保留下来就在CUDA架构中发扬光大。
在物理加速概念出现以前,我们也可以在游戏画面中看到诸如瀑布撞击岩石后形成水花、衣服随风摆动等等物理加速标榜的画面,这又是为什么?答案就是你所看到的水花、衣摆都是实现录制好可以实现的游戏画面,而并非根据真实的环境碰撞、摩擦等因素计算得出。比如没有物理加速,你观看瀑布的水花都是一个形状,不会与岩石产生互动变化,衣摆也无法根据风向与物体接触后而产生形状改变,无法与外界产生互动。再比如游戏中人物死亡都是一种倒地方法,如果死在墙边身体就要有一部分倒在墙壁里面等等。
也就是说,在没有物理加速前,游戏中我们所见的所谓“物理效果”其实都是死的,按照之前游戏AI录制好的方式运动,不会周围的事物产生任何的影响,而物理特效要解决的正是这一问题,因为没有希望游戏的画面看起来虽然真实,但是玩起来却非常的假,实时的互动就是物理加速的精髓所在。
而今,已经有《镜之边缘》、《剑侠3》、《蝙蝠侠2》、《黑手党》等游戏采用PhysX技术,在这方面,AMD没有选择做一个跟随者,而是不断用各种理由反对此。小编觉得从某方面看,在保证游戏运行流畅的同时追求更真实的视觉效果才是正确的发展道路。而PhysX的加入可以带给你更多!
09年,NVIDIA正式发布3D立体幻境,在技术上实现了在PC和电视上观看立体画面的功能,为在平台上观看立体节目扫清了障碍,并且在一段时间后形成了完整的3D生态圈。在一段时间的准备之后,配套硬件(支持立体显示的显示器和3D眼镜)、内容(游戏、图像和影片)以及驱动程序也都趋于成熟,而随着一部名为《阿凡达》的电影上映,我们也真正迎来了3D时代!许多知名的电影都有了立体的版本,包括《爱丽丝梦游仙境》、《诸神之战》等等。
NVIDIA对3D市场的敏感使他在这个热潮中占据了极大的优势,其在很长段时间内是将唯一的 3D PC平台。应用方面,目前超过400多款游戏支持3D,并且有更多的游戏开发商正在投入到3D游戏开发中,如目前比较热的网游《龙之谷》、《剑侠3》、《天下2》等。
硬件方面,在采用3D立体幻境PC平台上的所有装备都经过严格的兼容性测试。 不仅如此,在3D热潮中许多其他厂商都作出了积极的回应,包括电视机生产厂商,投影机生产厂商,显示器生产厂商等等。
3D是一个趋势,这是不容置疑的问题。也许,AMD这样认为的真正原因是因为他们还没有准备好,在HD6000发布的时候,AMD首次宣布他们也开始进军3D市场,不过直到2011年4月才看到半成型的产品出来,很是令人失望。在3D大潮中,AMD又一次落下一截。而AMD可以拿出来的Eyefinity其实在早期的Quadro里面就有所体现,而NVIDIA认为此项技术需要在合适的市场需求下推出比较好。
除此之外,NVIDIA在其他应用方面也CUDA应用方面也作出了很大的努力,在转码、视频后处理、图像增强、图像拼接等方面,CUDA加速的作用非常明显,选择使用NVIDIA显卡会比其他平台时间减少将近一半,对于经常进行视频转换的玩家来说是不错的选择。
笔记本方面Optimus是一种全自动的集显/独显切换技术,无需手动更改设置值,用户可体验更长的电池续航时间。
另一方面,AMD除了多屏显示以及今年初拿出的3D显示技术之外别无其他,着实让人失望。
文章总结
到这边,关于这五年AMD和NVIDIA在GPU发展上所出的差不多算理清了,当然还未具体到产品。如果再加上那一段,估计还得说上一年半载……
DX10后统一渲染架构的出现为GPU通用计算开启了一扇新的大门。在此情况之下,AMD选择了在原有架构基础上“缝缝补补”;而NVIDIA则是两次革命性的架构改变。
如果说改进方面的话,AMD有的只是通过大幅提升流处理器单元的数量来弥补可能的性能劣势,我们可以看到这样一组数字变化:RV700的流处理器从RV670的320个基础上提高到800个,Cypress架构又再次翻番达到惊人的1600个。
NVIDIA方面,每个流处理器不再区分标量或矢量,全部按1D标量计算,因此显卡的计算效率很高,通用性较好。不断改变、不断创新,根据自己对未来的展望寻找一条适合的路。
整体而言,NVIDIA不愧为视觉计算行业中的领军企业,每次在新产品的开发以及新技术的应用时,都能以惊艳的亮相霸占消费者眼球。从生产工艺上说,NVIDIA每次在进行产品革新时,都会率先采用当时业内最新的生产工艺,一方面提升产品性能,另外一方面也降低生产成本,给消费者提供实用、好用的好产品;从产品研发说,NVIDIA对于GPU行业的贡献是其他任何企业所无法匹敌的,无论从产品架构、功能还是全新的技术,一直都是NVIDIA引领整个GPU行业的发展方向与轨迹;从对整个行业视野说,NVIDIA保持着领先的视野,将GPU的功能扩展到生活中的各个角落。
然而,两大厂商业务争夺还不仅限于民用级显卡,在专业显卡领域同,NVIDIA 的Quadro从性能上不仅领先AMD,所占市场份额更高达90%,个人觉得主要原因是应用开发这方面做得足够成功,NVIDIA为Quadro配套开发了一整套的软件和硬件解决方案,软件方面从基本的场景开发、多卡加速到特定应用程序加速和光线追踪等,硬件则为不同规模的应用具备了完整的硬件解决方案,从单卡到多卡协作,直到大规模集群图像渲染,另外针对专业视频等领域也有相应的专门产品。对于所有的专业用户来说,他们所需要的各种解决方案NVIDIA都可以提供,对于企业级用户来说这是一个巨大的优势。而在这方面,AMD仅仅把FireGL作为一个显卡,而不是一个解决方案。
目前如日中天的移动处理器方面,两家也有大不同的举动。NVIDIA很早就介入了移动处理器的开发,从最初的GeForce到现在的Tegra,由于应用的缺乏,在商业上一直算不上成功。不过NVIDIA并未,一直坚持移动处理器的研发以及创新。随着Android的崛起,NVIDIA的移动处理器终于在目前获得了比较大饿成功,并且前景可观。而AMD的移动处理器部门却在当初不景气的情况下卖掉这个项目。这次彻彻底底输在了起跑线上。
其实,不管是GeForce,还是Quadro,还是Tegra都证明NVIDIA不仅仅具有创新精神,还有足够宽的视野和顽强的战斗力,AMD则墨守陈规,抱残守缺,选择了做一个跟从者。
本文用大篇幅回顾了DX10以来AMD与NVIDIA这5年来在GPU设计上的一些理念,在经历G80/GT200两代产品的有益尝试之后,Fermi架构可以说是专为高性能计算而生,ECC纠错支持、PTX2.0指令、高速并行线程处理、完整的C++支持都是针对HPC(高性能计算机)需求而设计。而AMD从R600到Barts都只是在不断塞流处理器,也许真的是因为拥有市占率很少的CPU业务使得AMD有如此堕落的表现吧。^_^
从NVIDIA提供的未来产品发展图也可以看出来,今年下半年将要与大家见面的kapler与2013年会与大家见面的Maxwell,可以看出NVIDIA的发展方向,在ARM的大怀抱中短期占领智能手机及平板市场,而未来随着ARM架构的不断改进,NVIDIA凭借其在GPU方面的实力必将攻占桌面CPU领域,精简指令集的优势大家已经有目共睹,相信不远的将来X86不再寂寞!而AMD的对于移动领域的进攻就全部押宝在APU上了?还是同样投入ARM的大怀抱?拭目以待!
|
|