漫谈显卡架构发展之异同.docx
- 文档编号:6391092
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:28
- 大小:1.72MB
漫谈显卡架构发展之异同.docx
《漫谈显卡架构发展之异同.docx》由会员分享,可在线阅读,更多相关《漫谈显卡架构发展之异同.docx(28页珍藏版)》请在冰豆网上搜索。
漫谈显卡架构发展之异同
漫谈显卡架构发展之异同
莎士比亚说一千个读者眼中就有一千个哈姆雷特,这句话要是放在IT领域,别说一千家公司设计的产品不同,就是随便找两家公司一看,他们的架构设计也会迥然不同,即使他们设计的都是同一标准的东西。
曾经的显卡市场无比热闹,NVIDIA、ATI、S3、Trident、Matrox,以及大名鼎鼎的3dfx都曾是显卡芯片市场上的大腕,当时图形API标准尚未统一,不少厂商都在力推自己的显卡和API标准,可谓是百花齐放,不过最终的结果是S3、Trident、3dfx都被收购,Matrox偏安专业市场,微软的DirectX一统3DAPI,目前只剩下AMD和NVIDIA双雄有能力围绕DX标准上演一幕幕的轮回之战。
目前的显卡市场基本只有AMD和NVIDIA两强争霸
06年DX10规范的出台成为显卡架构设计的一个分界点,它解决了以往困扰开发者的难题,比如修改了API核心使得特效切换时消耗降低,引入新机制降低CPU依赖性,简化了批量绘制模型时的DX指令,最主要的是统一了顶点顶点渲染(VertexShader)和像素渲染(PixelShader),这些渲染归为统一渲染(UnifedShader),这些渲染器被称为流处理器(StreamProcessor)。
统一渲染架构解决了顶点和像素渲染负载不均衡的矛盾
DX10是近两年来游戏、显卡发展的基础,不过微软并没有强制定义流处理器的设计,这给了AMD和NVIDIA很大的自由空间,他们可以自己决定如何实现这一功能,本文的故事也由此开始了。
从2006年DX10以及DX10显卡问世开始,AMD和NVIDIA在显卡架构设计上就走上不同的路,虽然二者遵循的标准是一样的,但是不同的发展思路依然影响着最终产品的竞争力,对此NVIDIA拿出的是创新架构的G80,而AMD推出的则是小幅改良的R600,现在让我们把目光回到5年前,看看G80和R600是如何影响两家公司的设计思路的。
◆5年前的起点,G80与R600引燃战火
2006年底发布的G80打响了DX10第一枪,8800Ultra显卡成为新的性能之王,当时的形势可以用一览众山小来形容,这与G80架构众多革命性的新技术、新设计是分不开的,G80的流处理器(NVIDIA后来改称CUDA核心)设计也奠定了NVIDIA未来一系列GPU产品的基础。
G80的架构设计拥有许多创新之处
由于DX10规范中对shader的处理有了颠覆性变化,传统3D架构已经不能适应新要求,NVIDIA在G80架构设计上抛弃了传统的SIMD(单指令多数据),改用MIMD(多指令多数据),统一渲染单元也采用超标量(superscalar)设计,这样一来无论要处理的图形数据是1D标量还是3D矢量,CUDA核心都会100%运转,不会出现因核心闲置带来的性能损失问题。
完整的G80核心可以分为8组SM(StreamingMultiprocesser),每组SM单元内包含16个流处理器,8个纹理过滤单元和4个纹理寻址单元以及L1缓存,总计拥有128个流处理器单元、64个纹理单元和24个ROP光栅单元,规格参数在当时无出其右,所以GeForce8800显卡的性能王座保持了很久。
2006年的时候适逢ATI被AMD收购,ATI的产品发布计划多少也会受点影响。
在G80统治DX10时代半年多之后,AMD也发布了代号R600架构的HD2000系列显卡。
AMD的R600架构示意图
如果说G80架构是“出新”,那么R600架构称得上是“推陈”,虽然它也遵循了DX10规范的统一渲染要求,但是具体设计上依然是传统的SIMD指令、4D矢量运算体系,只是为了实现DX10的要求,将原来的纯4D矢量做了一些扩展,这也就是大家熟知的4D+1D架构。
R600架构用4D+1D的折中方式实现了统一渲染
为了实现统一渲染的要求,R600架构增加了一个超标量单元,再加上原来的4D矢量单元组成了4D+1D的杂交方式。
这样做法的好处是架构设计难度小,因此可以大幅增加流处理器单元的数量,但是它也有明显的不足,架构设计保守,遇到纯标量运算效率就会骤降至原来的1/5,需要极好的分支预测算法与之配合。
R600核心的HD2900XT显卡拥有320个流处理器单元,运算单元数量比G80还要多,但是性能并不如G80显卡,HD2900系列显卡的命运似乎是注定的悲剧,出师未捷啊。
G80和R600分别是NVIDIA和AMD在DX10时代的首次尝试,它们同时也是这五年来显卡架构的基础,结果也迥然不同。
G80摆脱了传统束缚,大胆使用了MIMD、SuperScalar超标量等设计,最终显卡性能一骑绝尘,而R600还在延续传统,只是增加了一个超标量单元以支持统一渲染,设计难度因此降低,但是这种架构的效率也随之降低,最终的产品出来后也是性能不济,只能让G80显卡继续逍遥。
◆RV670/RV770小步升级,GT200定义通用计算
HD2000系列显卡失利之后,AMD很快推出了R600架构的改进型显卡HD3000系列,架构代号为RV670,去掉了华而不实的512bit环形总线,增加了UVD解码引擎,视频功能有所增强,但它最主要的是变化升级了制造工艺,首次进入55nm时代。
RV670架构未变,最主要的变化是工艺制程升级到55nm
RV670依然是320个流处理器,内部架构上依然是4D+1D的形式,与R600没有变化,它去掉了HD2000系列上使用的512bit环形总线,并为显卡增加了UVD解码单元以提高视频性能,从某种意义上说RV670才是R600架构的正式版,之前的HD2000显卡只能算是beta测试版。
RV670发布大约半年后,AMD又一次升级了产品线,推出了RV770架构的HD4800系列显卡,制造工艺还是55nm,但流处理器单元数量从320个大幅提高到800个,是原来的2.5倍。
RV770架构示意图
凭借工艺上的优势,RV770核心内填入了800个SP单元,排列方式也从RV670的竖向变成横向,每行有80个SP单元,4个纹理单元,规格和性能都比HD3000/2000有了长足进步,即使这样HD4800系列显卡的性能也只是和一年半以前的G80显卡打平,并没有占得什么便宜。
这一年多的时间里NVIDIA并没有发布新架构的显卡,一是因为G80及其升级架构G92的性能并不弱,NVIDIA的竞争压力不大,第二则是NVIDIA的下一代显卡架构GT200设计更为复杂,需要的时间和精力也更多。
在HD4800显卡发布后没多久,基于GT200架构的GTX280/260显卡就上市了。
GT200架构又一次实现了飞跃
G80发布之后,NVIDIA一直在尝试使用GPU做通用计算,并为之发展了名为CUDA的GPU通用计算项目,因此GT200架构除了在图形计渲染能力上再上一个新台阶外,其通用计算能力也是重中之重。
GT200下辖10组TPC单元(图形运算时为TextureProcessingCluster贴图处理簇,并行计算时为ThreadProcessingCluste线程处理簇),每组TPC单元又包含3组SM(Streamingmultiprocessor流处理器簇),每组SM拥有8组TF纹理过滤单元,共享L1缓存,而每组SM单元由8个CUDA核组成。
一组TPC单元包含3组SM单元,共享L1缓存从8KB增加到16KB
一组SM单元,本地缓存从G80的32KB提高到64KB
另外,SM单元开始支持FP64双精度浮点运算,这一功能虽然对游戏渲染没有什么帮助,但是对并行计算意义重大,这也是AMD的RV770架构所没有的功能。
RV770和GT200是AMD和NVIDIA在DX10时代的终极产品,RV770凭借先进的工艺使得流处理器从上代的320个大幅提高到800个,但是内部结构上并没有变化,依然延续着4D+1D的R600老路,这也造成了AMD三代显卡都没能绞杀G80的局面。
反观GT200,在G80基础上又一次全面升级,重新设计TPC单元以及SM单元,不仅使得GTX280的性能比9800GTX提升50%以上,而且在通用计算性能上再上一个台阶。
◆流处理器数量翻番,HD5800/6800继续5D架构
AMD在DX10时代一直落后于NVIDIA,虽然发布了三代架构产品,但是显卡的性能始终没能压制住NVIDIA,不过在DX11时代这二者却实现了逆转,AMD不仅抢先推出了支持DX11规范的HD5800系列显卡,而且3D性能也开始咸鱼翻身。
代号Cypress的HD5800系列架构图
虽然AMD把HD5800显卡的Cypress核心架构称为"TeraScale2"架构,但是Cypress还是沿用了上一代统一渲染架构,只是在GraphicsEngine(图形引擎)部分做了大量改良。
Cypress架构可以分为左右两部分,每部分拥有10个SIMD阵列,每阵列拥有16组流处理器单元,总计有1600个流处理器。
代号BartssXT的HD6800系列架构图
去年10月份的时候AMD又对产品线进行了一次升级,推出了HD6800系列显卡,架构代号为Barts,其中HD6870拥有14组SIMD阵列,HD6850拥有12组SIMD阵列,虽然与上代核心代号不同,但是Barts其实就是Cypress的缩减版,内部架构上并没有变化,依然是4D+1D的老传统。
HD5800和HD6800依然是4D+1D结构
HD5800和HD6800显卡使用了台积电的40nm工艺,发热和功耗控制的比较好,因此同样的晶圆核心里可容纳的流处理器数量也会更多,但是内部架构上AMD依然在吃R600的老本,SIMD和4D+1D体系并没有改变。
◆恐怖的30亿,Fermi架构新革命
NVIDIA的G80在DX10时代大放光彩,不仅性能领先而且推出时间也领先对手半年多,市场上占据了先机。
不过在DX11时候,NVIDIA的显卡发布却落后于AMD,造成这一局面的主要原因就是NVIDIA的Fermi架构的规格太强悍了,设计难度非常大,以至于发布时间一再拖延。
NVIDIA给Fermi的定义是:
新一代CUDA计算与图形架构,它采纳了用户在使用G80和GT200架构时给出的建议,针对双精度运算、ECC内存容错能力、Cache体系结构、上下文切换和原子读写操作等方面进行了全新的设计,通过新的架构设计不仅仅增加了计算能力,并且支持更好的可编程能力和计算效果。
Fermi的图形架构
在GF100中,抛弃了过去的TPC(TextureProcessingCluster)概念,开始引入GPC(GraphicsProcessingCluster)这一名词。
GF100的基本结构由一些可伸缩的GPC单元、SM(StreamingMultiprocessor)单元和内存控制器构成。
一个完整的Fermi架构拥有4个GPC、16组SM和6条64bit显存控制器,总计有512个CUDA核心,每个CUDACore是一个统一的处理器核心,可以执行顶点、像素、几何和计算Kernel处理任务。
另外统一的L2缓存架构能为存、取和纹理操作服务。
Fermi架构中的每组SM单元组成
GF100拥有48个ROP单元,应用于像素混合、抗锯齿和原子内存操作等。
这些ROP单元每8个一组分为6组,每组与一个64-bit的内存控制器绑定并由之服务。
内存控制器、L2缓存和ROP之间的关系是无限亲密的——牵一发而动全局。
Fermi架构的主要更新如下:
◎第三代StreamingMultiprocessor(SM)
•每个SM包含32个CUDACore,是GT200的4倍
•8倍于GT200的双精度浮点性能
•DualWarp调度策略,一个周期内启动两个warp进行计算
•每个SM有64KB的RAM,可灵活配置SharedMemory和L1缓存
◎第二代PTXISA架构(PTX2.0)
•统一寻址空间,完整的支持C++特性
•针对OpenCL和DirectCompute进行优化设计
•完整支持IEEE754-200832bit/64bit精度
•通过Predication(断言)来提高条件性能
◎改进的内存操作子系统
•可配置的L1和统一的L2并行数据高速缓存
•首个提供ECC内存支持的GPU
•原子内存操作性能极大增强
◎第三代千兆线程引擎(GigaThread3.0)
•10倍于上一代的上下文切换能力
•并发Kernel(核心程序)执行机制
GF100是首款采用Fermi架构的GPU,旗下的产品包括GeForceGTX480和GTX470,它们能够实现所有的DirectX11硬件特性,包括Tessellation和DirectCompute等,除了上面提到的领先的并行计算能力外,在游戏图形性能方面也很大改善:
◎卓越的游戏性能
◎超一流的图像质量
◎电影级的几何真实效果
◎革命性的游戏计算架构
Fermi的并行计算能力暂且不提,我们更关注的是它的游戏性能。
NVIDIA宣称Fermi拥有更好的DX11性能,无论是曲面细分还是DirectCompute等DX11特性都要比GT200以及AMD的显卡有数倍的提升。
DX11带来诸多如曲面细分这样的新技术
以DX11中的曲面细分技术为例,它可以简化设计人员的建模工作,由显卡自动生成大量多边形以提高模型精度。
DX11中曲面细分是有专用的PolyMorphEngine引擎来完成的。
Fermi架构中,每组SM单元中都有一个可扩展的PolyMorphEngine引擎,它能实现较高的三角形速率,每个PolyMorphEngine均拥有专属的顶点获取单元以及Tessellator,很好的提升了几何性能。
与之呼应的是四个并行的RasterEngine,它们能在每个时钟周期内设置最多四个三角形,并且在三角形获取,曲面细分以及光栅操作方面具备很强的性能。
Fermi针对DX11技术的关键特性做了加强
在曲面细分性能中Fermi是要领先AMD的显卡的
◆HD6900微调4D,GTX500给力升级
HD6800系列虽然是新品,但在架构方面并没有改变,让人有些失望,于是去年底AMD推出了核心代号Cayman的RadeonHD6900系列显卡,带来了自R600架构以来的第一次重大改变—指令结构从原来的VLIW5变成VLIW4,也就是从原来的5D变成4D,AMD显卡的图形处理效率上有了提升。
Cayman架构终于有了一次真正意义上的改变
为R600为基础的AMD传统GPU架构中一个流处理器单元是由4个1D矢量、1个1D标量和相应的分支预测单元组成,这种架构设计虽然简单,但是随着流处理器单元数量的成倍增长已经先出疲态,因为现在的游戏计算中单纯的矢量运算越来越少,VLIW5处理器的利用率不高,空有力气而无用武之地。
VLIW4架构改善了AMDGPU的利用率问题
VLIW4处理器中的ALU单元减为4个,数量虽然少了,但是每个ALU单元的功能依然保持VLIW5的水准,这种设计减少了指令调度和寄存器管理,提升了逻辑电路的利用率。
不过HD6900的革新依然只是架构微调,5D到4D的转换还是达不到1D纯标量的利用效率。
AMD微调HD6900架构的同时,NVIDIA也对Fermi架构做了一番改进。
AMD改进架构的原因是性能不济,NVIDIA改进Fermi的原因则恰恰相反,性能不足虑,但是功耗和发热控制不够好,于是就有了代号GF11x的Fermi二代架构,改进后的成果就是目前渐入佳境的GTX500系列显卡。
变革最早发生在GTX460显卡上,在此之前NVIDIA一直尝试着沿用传统的屏蔽核心和ROP单元的方式推出中低端显卡,但是效果并不理想,屏蔽的单元依然有电力消耗,最终NVIDIA重做了Fermi核心,在GTX460上使用了半代升级的GF104架构。
GF104架构是Fermi架构优化重组的结果
Fermi架构的组成由CUDACore—SM单元—GPC单元逐级组成,GF104架构的顺序也是如此,但是每组SM单元从原来的32个CUDA核心变为48个,纹理过滤单元同比增加,但是多边形引擎、ROP单元和显存控制器共享增多,这样以来GPC和SM单元数就可以减少,相应地核心面积以及发热都会减少,也有利益提高产品的良率。
首次使用这种半代架构的GTX460一炮而红,一改GTX480/470不受人待见的境遇转而成为1000-1500元之间最有竞争力的显卡之一,迫使AMDHD6850不断降价,而NVIDIA推出的768MBGTX460更是1000价位的重磅杀手,用过的都说好。
GTX460到目前为止也是最受欢迎的N卡之一
◆发力在显卡之外,外围应用大不同
通用计算让显卡增值
时至今日,显卡的性能对付主流数游戏已经绰绰有余,而且在游戏之外,显卡强大的浮点运算能力往往得不到有效利用。
为了解决这个问题,不少厂商都在开发显卡通用计算,以期借助显卡的浮点运算上能力实现加速应用。
有关显卡通用计算的研究已经有好多年了,但是直到支持DX10规范的G80架构问世后才真正有所突破。
NVIDIA基于G80/GT200/Fermi架构开发的CUDA应用已经在高性能计算领域得到应用
随着统一渲染架构的诞生,GPU本身的计算方式由基于矢量计算转为了基于标量的并行计算。
当摆脱了架构和计算方式所带来的限制之后,GPU所能处理的问题由图形领域扩展到了通用计算领域。
而在开发领域,需要有一种灵活的开发方式,能够让用户直接使用GPU的计算能力,NVIDIA开发了CUDA应用环境。
GT200的浮点运算能力达到了当时的4核CPU的10倍
CUDA的出现使得显卡不再是单一的游戏卡,使得显卡的浮点运算能力得以释放,它非常适合大规模并行计算的领域,比如科学计算、物理模拟、石油勘探等,利用GPU建造大型计算机早就不是空谈,世界最快的计算机天河一号A上就是CPU和GPU异构运算,大量使用了NVIDIA的Fermi核心的TeslaC2050专业卡,运算能力为2.56Pflops,峰值运算更高达4.7Pflops。
天河一号A上大量使用了Fermi核心的TeslaC2050显卡
这种很浮云级的应用跟普通大众无关,不过日常应用中CUDA依然大有用处,比如视频转码、3D建模加速,这些软件主要有Badaboom、Mediacoder、MediaEspresso、TMPGEnc、3DMax、Maya、Bullit等。
以Badaboom为代表的众多视频转码软件都支持CUDA加速
物理加速成为新热点
物理加速是个老生常谈的问题了,虽然目前游戏的画质越来越高,静态画面甚至可以达到真假难辨的程度,但是一旦涉及到运动,包括爆炸、物体碰撞、植被随风而动这样的场景总是让人感觉不自然,这是由于游戏缺少真实的物理效果,运动规则不合逻辑,看起来总是感觉怪怪的。
物理加速引擎其实也有不少,但是在PhysX之前很少大规模用到游戏里,只在专业场合才有应用,因为当时的物理加速大都是基于CPU运算,这会给CPU造成极大负担甚至导致游戏无法进行,限制了物理加速的普及。
PhysX技术最早是Aegia公司研发的,当时还有专门的物理卡,后来它被NVIDIA收购,后者利用CUDA环境将PhysX变成一种基于显卡的软加速,在GeForce显卡上就可以享受到更真实的物理效果,而且不会占用CPU资源。
在NVIDIA的大力推动下,物理加速的概念深入人心,开发商也开始大量使用PhysX作为物理加速引擎,目前支持这一技术的游戏和应用已经有超过150多款,其中不乏《教父2》、《Metro2033》、《蝙蝠侠》这样的大作。
使用PhysX物理加速的游戏日渐增多
3D立体显示
3DVision使得用户没有3D显示器也可以享受立体游戏和影音
《阿凡达》电影促进了3D的兴起,这一两年来支持3D的游戏、电影层出不穷,但是如何才能享受3D却成了影响3D普及的关键,选择专业的3D设备和眼镜对大多数人来说根本就不可能,为此NVIDIA推出了3DVision技术,能让消费者不需花费太多也能享受3D游戏和影音。
3DVision使得用户没有3D显示器也可以享受立体游戏和影音
3DVision不需要专用的3D显示器,只是对显示器的刷新率有要求,不能低于120Hz,不然画面会闪烁。
从这几点上也可以看出
AMD与NVIDIA在产品应用层次上的差异,在这方面AMD依然处于弱势,旗下虽然也有Stream通用计算,但是AMD又不能让GPU强过自己的CPU,投鼠忌器。
物理加速上也是如此,在NVIDIA大张旗鼓地推动PhysX时,AMD并没有什么动静,A卡用户并没有从AMD哪里得到什么附加值。
◆未来走向及总结
DX10引领显卡的顶点渲染和像素渲染走向统一渲染,但是在如何实现统一渲染上厂商却有着自己的想法,这两种截然不同的风格不仅影响了他们过去的产品设计,而且在未来发展上也是同床异梦,走向明显不同。
AMD拥有自己的CPU业务,继续朝着Fusion融聚的方向一步步前进,随着APU产品的大批量上市,AMD已经在CPU融合GPU上尝到甜头。
对NVIDIA来说,它没有CPU产品,X86市场进入门槛太高,限制也多,所以它选择了ARM,目前主攻移动处理器,Tegra2双核处理器已经得到了三星、LG、摩托罗拉等大厂的追捧,目前已有多款手机上市销售,年底甚至还会推出Tegra四核处理器。
Tegra移动处理器成为NVIDIA新的发力点
桌面产品上,AMD和NVIDIA都在准备下一代GPU,AMD将在下月的台北电脑展上揭示下一代显卡“南方群岛”的一些秘密,虽然首批南岛显卡只会是制程升级,没有架构改变,但是从HD6900上的转变来看,未来南岛的架构革命不可避免,4D+1D架构已经不能适应未来的游戏需求了。
NVIDIA的野心更大,已经预告了两代GPU产品线,今年底将会发布(可能不会上市)Kepler开普勒GPU,使用28nm工艺制造,双精度浮点运算能力提升4倍,而且会支持虚拟内存、Non-BlockingI/O等类似CPU的功能。
2013年到了Maxwell麦克斯韦尔那一代,每瓦性能将会比当前的Fermi提高10倍,而且GPU上还将集成一个ARM内核的CPU。
未来的GPU战争中双方走的路线更是不同
AMD与NVIDIA所处的位置不同导致了两家公司风格迥异,AMD属于保守派,R600架构是新三年,旧三年,缝缝补补又三年,一直没有实质性革新,虽然最早支持DX11规范,但是在DX11的关键特性曲面细分上明显落后于NVIDIA的设计,而NVIDIA则是相反,喜欢大步快进,每一代产品都称得上一次革命,自G80开始抛弃了SIMD而采用MIMD指令体系,完全的1D超标量虽然设计复杂,但是对于提高显卡性能十分必要,之后的GT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 漫谈 显卡 架构 发展 异同