POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 2572|回复: 12
打印 上一主题 下一主题

GPU发展5年回顾,看英伟达(NVIDIA)的成功之道

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-6 11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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 6则是带来了全新的FP16 HDR渲染特性,在架构上实现了比较完整的程序流控制功能。
AMD方面,当时应该称作ATI,相对比较保守,基本上严格按照DirectX的规范来设计GPU。虽说GeForce FX在商业上相当失败,但是其架构基础给GeForce 6一代的成功奠定了很好的基础。
抛开这些因素,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,您得先换一块好显卡!
针对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
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架构取代。
人们对视觉的追求是永不止步的,随着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架构图
从以上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 支持带来的几何处理剧增问题。
由于要开拓 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部分作了改进。

2#
 楼主| 发表于 2011-5-6 11:50 | 只看该作者
点评:
随着Win7的发布,DX11时代也正式降临。除了市场上开始活跃的DX11游戏,我们也又一次将目光转向了这两家显卡芯片供应商的身上。而这次的情景似乎四年前我们曾经经历过,不同的是角色做了个转换。
AMD先发制人发布了HD5000系列产品,并且领先时间也长达半年之久,不过可惜的是,当时市场上支持DX11的游戏还很少。HD5000仅仅充当了一个拥有DX11头号的DX10显卡。Fermi的计算为导向的架构对于未来图形的发展奠定了很好的基础,可以满足诸如光线追踪、Voxel渲染这些未来图形技术的硬件架构基础。
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的大怀抱?拭目以待!
回复 支持 反对

使用道具 举报

3#
发表于 2011-5-6 12:22 | 只看该作者
未来10年Intel将败在NVIDIA手上,这不是随便说说的
其实Intel现在也已经很疲态,很被动,不像开创Pentium时代那么激进了
回复 支持 反对

使用道具 举报

蕉少 该用户已被删除
4#
发表于 2011-5-6 12:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5#
发表于 2011-5-6 13:03 | 只看该作者
这几天看墙头草的言论:nv马上就要倒闭了。
回复 支持 反对

使用道具 举报

头像被屏蔽
6#
发表于 2011-5-6 13:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

7#
发表于 2011-5-6 18:51 | 只看该作者
NV的成功第一是严格守护DX标准,这也是今天为什么N卡很多游戏兼容性好的原因
OPENGL不说了,也是SGI的标准,为什么N卡依据SGI标准写出的驱动兼容性和稳定性就好
而A卡是不是按照SGI标准写的不好说,同样由于NV当初没有专用API,所以硬件从打底子的时候就是跟MS的标准,而A卡应该是DX7左右才开始跟MS标准走的
而A卡DX8。1 个位数的游戏支持也让A卡这个跟高标准很没有面子
DX9C 也是让A卡很无态,
DX10。1 到目前DX11时代了,支持DX10。1的游戏还是个把
而N卡从智谋上是很强的,比A卡的智谋强不少,
N卡的人知道中国传统的攻守兼备,
而A卡是又不会进攻,更不会防守
回复 支持 反对

使用道具 举报

8#
发表于 2011-5-6 19:16 | 只看该作者
公说公有理 婆说婆有理。 文章很多ATi 创新性技术不提,曲面细分是ATi 提出来的也不提。在节能技术上不提。
Intel 明年就上22nm 的 3D晶体管技术了。还不激进?
回复 支持 反对

使用道具 举报

9#
发表于 2011-5-6 19:22 | 只看该作者
年年都在争.//年年都没个结果...何必呢..
回复 支持 反对

使用道具 举报

10#
发表于 2011-5-7 02:54 | 只看该作者
INTEL 不是说倒就能倒的。。。
现在INTEL 已经占据SSD市场半壁江山了。
如此丰厚的利润
弄到INTEL 这么晚还不推出手机CPU。
ARM +NV 可能 在手机+移动版块 创出新天地
但是这次 INTEL 高调支持安卓平板电脑  新的乱世再次来临啊。
谁笑到最后 就看谁更有远见了。
回复 支持 反对

使用道具 举报

11#
发表于 2011-5-7 10:47 | 只看该作者
NV的眼光一向很超前~~现在中低端N卡都不怎么给力了,可能跟它的战略重点转移有关系了~~话说GF108都是design in shanghai了,市场定位压根就有问题
回复 支持 反对

使用道具 举报

12#
发表于 2011-5-7 10:51 | 只看该作者
米国不是有反垄断法?这几个企业哪个像要倒的样子
回复 支持 反对

使用道具 举报

13#
发表于 2011-5-7 14:42 | 只看该作者
intel就别比了,压根不是一个级别的。

nv未来能够守住中高端gpu的利润。扩大arm手机平板的市占率。能让老米的实验室用上哪怕1台cuda的超级机。

就已经很好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-6 03:55

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表