转大炮村的 N卡和A卡的区别2012完整版(一)。。。。。。。。。标题要长。。。。
本帖最后由 白夜之狐 于 2013-2-18 00:06 编辑N卡与A卡的区别(2012完整版)
N卡和A卡两家架构问题要深究就得写一本书了。下面就简单通俗的介绍一下,方便初学者理解。
在DX9以前的时代,两家的架构主要由像素单元、顶点单元、纹理单元、光栅单元组成,一个渲染流程的所有单元绑在一起组成一条渲染管线,管线越多,性能就越强。而3D游戏的画面以4D指令居多(像素有RGBA,顶点有XYZW),这些单元就被设计成了一次能处理4D指令的处理器,属于指令级并行架构,对于当时的游戏环境来说这种架构效率很高。但到了DX9后期甚至DX10时代,游戏中的1D、2D、3D指令开始频繁混合出现,像素与顶点的渲染比例也有了改变,原先的架构就变得效率低下了,比如一个单元一次能处理4D运算,当碰到1D运算时就只用到4/1的资源,剩下3/4的资源就闲置掉了,相当于效率降低了4倍。而有些游戏的像素渲染量明显多于顶点,那么这些数量比例固定的单元就效率低下了,比如像素单元吃力的时候,顶点可能比较空闲,非常浪费硬件资源。为了解决这个问题,NV和ATI就对各单元的数量比例进行了调整,但都治标不治本。这时候重新设计新的架构成为了必然。结果,从DX10时代起,两家的架构就起了翻天复地的变化。
当两家DX10产品面市后,人们惊奇的发现,竟然是两种不同的架构。
N卡的架构思路很简单,用强大的前端处理器把所有指令拆分成一个个1D指令,而下面所有运算单元都变成了1D单元(流处理器),这些流处理器都能当做像素和顶点单元来使用,这样不管碰到什么类型的指令都能“一拥而上”,完全解决了DX9时代固定单元的弊端。为了保证指令分派的高效率,这些流处理器都分成几大组管理,每一组都具备完整的前后端及缓存单元,每个流处理器都对应独立的控制单元,效率几乎达到100%的理想程度,是标准的线程级并行架构,也是追求高效率的理想架构。
N卡的架构看上去很完美,但缺点也很明显,要想增加运算单元,必需以组为单位进行扩充,这样连带的前后端控制单元、功能单元和缓存都会成正比增加,晶体管消耗严重,所以在相同晶体管数量的情况下,N卡能做的流处理器就相对少很多。在流处理器数量相对少的情况下,处理4D指令时又会显得性能不足(因为要耗费四个流处理器去处理一个指令),所以N卡的流处理器频率都会比核心频率高出一倍以上,以弥补数量上的缺陷,但高频率带来的翻倍流水线又再次消耗了大量晶体管,最终结果就是功耗巨大,制造难度极高。
总结,N卡架构执行效率(硬件资源利用率)极高,灵活性强,在实际应用中容易发挥峰值性能。但运算单元较难堆砌,理论运算能力也受到较大限制。低良品率和功耗问题也一直如影随形。
A卡方面,也是采用通用的1D流处理器做为执行单元,每5个流处理器为一组,每组一次最大可接收一条5D指令(而N卡接收的是1D指令),在前端上就把所有指令打包成一个个5D指令发下去(而N卡是拆分成一个个1D发下去),当接到5D指令后,下面的5个流处理器就可以并行执行,属于指令级并行架构,又被称为5D架构,这样的设计可以实现高指令吞吐。同时控制单元与运算单元可做到分离,流处理器的增加不会牵动其它单元,晶体管消耗较少,所以A卡的流处理器数量一般都能做到N卡的4-5倍,芯片面积反而较小,理论运算能力也远强于N卡,功耗也相对要低一些。
但是,A卡架构的缺点也很明显,虽然理论计算性能强大,但较少的控制单元限制了其指令调度效率,下面流处理器越多,前端压力就越大。一旦碰到混合指令或条件指令的时候,前端就很难实现完整的5D打包,往往变成3D、2D、1D的发下去了,造成每组流处理器只有3、2甚至1个在工作,几乎一半的单元浪费掉了,再加上每个5D包里面可能存在最糟糕的组合(比如有先后关系的指令被包到了一起),常常导致部分指令被踢出去再走一次打包运算的流程。程序要想针对这种架构优化,必需减少混合、条件指令的出现(需要耗费程序员的大量精力),或杜绝(这是不可能的)。所以在软件优化度上A卡也是处于劣势的,常常无法发挥应有性能。
总结,A卡架构优势在于可以方便的扩充运算单元,实现强大的理论运算能力,晶体管消耗较少,功耗容易控制。但流处理器扩充得越多,效率就越低下,对于复杂多变的任务种类适应性不强,如果没有软件上的支持,常常无法发挥应有性能。所以A卡除了需要游戏厂商的支持外,自己也要常常发布针对某款游戏优化的驱动补丁(造成A卡发布半年后,还可通过驱动提升性能的现象)。
小节:两家在DX10架构上走上了完全相反的设计路线,而且都走得很极端。NV选择的线程级并行路线在实际应用中表现出了良好的性能,但这类架构的弊端就是庞大的晶体管规模和制造难度,功耗也很难控制。而AMD对指令级并行架构的信心来自于DX9时代的辉煌,毕竟3D游戏中的4D指令还是占了较大比例,其庞大的运算单元有着很大发挥空间,但指令调度限制较大,效率低下的问日趋严重。如果两家都没有解决自身缺点的办法,那么终有一天会撞到南墙(果然,在DX11后就同时撞上了)
在物理加速技术方面,全球主流的是Havok技术,目前为INTEL所有,平台支持度高,各领域巨头(包括AMD)也都默认对其支持,可以说是最通用的技术,在游戏支持度上占了60%以上市场份额。但该技术偏重CPU处理(少部分可由A卡协处理),性能比较有限,可展现的效果规模较小。
而物理技术的另一股新势力就是AGEIA公司的PhysX技术,硬件上以独立的加速卡形式存在,性能专一且强劲,能够展现更复杂的物理效果,但该技术并不开放,需要购买加速卡才能实现,限制了其支持度。自08年NV收购AGEIA公司后,PhysX技术就变成N卡专属,在DX10以后的N卡中都集成了PhysX物理引擎,但封闭的策略还是没变,要想实现PhysX物理效果,用户必需拥有一块DX10以上级别的N卡,这对于游戏厂商来说是比较冒险的,如果“性能足够”的N卡硬件用户量不足,那么软件厂商就亏大了,加上这类只能由特定硬件实现的技术很难用在多人对战游戏上(因为游戏中所有玩家互动结果和视觉障碍都要绝对一至),所以采用PhysX技术的游戏数量至今也没占到主流,很多厂商宁可对N卡优化,也不支持PhysX技术。不过NV通过强势的营销策略,甚至有些时候是“非常规”的营销,为人所知,市场前景也是被看好的。
总结:在物理加速技术上NV属于剑走偏锋型,企图利用封闭的技术搞垄断排挤(与索尼的储存卡(记忆棒)有点相似),但要排挤主流的INTEL、AMD阵营是极其困难的,毕竟在硬件占有率上INTEL、AMD的CPU就占了97%以上市场,即使是显卡市场也是INTEL占了大头,这种垄断地位极难攀越。结局是否和索尼一样我们不得而知。目前来看,支持PhysX技术的游戏只相当于Havok的三成左右,数量不占优势,而很多初学者把支持物理加速技术和游戏优化的概念搞混了,以为针对N卡优化的游戏就采用PhysX技术,其实这两者没有什么关系,针对N卡优化的游戏虽然较多,但采用PhysX物理技术的游戏是比较少的。这方面两家算是不分胜负,不过在选购上N卡又多了个筹码。
高清解码方面,自蓝光战胜HD-DVD后,市场上高清片源开始增多,但高清影片播放时的解码任务对当时的双核CPU来说是非常吃力的,中端以下CPU全线投降,这时候NV和AMD适时的在DX10架构中加入了高清解码功能,分担几乎所有的CPU工作,让低端CPU也能流畅的播放高清电影。当时高清格式主要有三种,奇怪的是N卡只支持一种格式的完全解码,这就导致N卡玩家在播放别的格式高清影片时CPU还是非常吃力,甚至卡顿;而A卡则支持了双格式解码(剩下一种格式运算量不大,CPU能搞定),这样A卡用户即使在入门级的CPU下也可以流畅播放高清了,CPU还有大量余力干别的事。从此A卡适合看电影的说法就流传下来了。不过N卡到了DX11架构后也支持了双格式解码,解码能力终于可以向AMD看齐,不过这时候CPU已经发展了三四代,入门级CPU都可以应付高清播放,显卡的解码能力已经没那么亮眼了。
图像画质方面,两家理论上并没有区别,因为处理的都是数字信号,只要信号源相同,那么运算结果也都是相同的。最终输出的效果很大程度取决于模拟信号的转换和显示设备的差异(甚至一条数据线都能左右画面的效果),数模转换效果取决于显卡制造商及显示器制造商的用料和设计,同一款核心的显卡,可能因为模块用料的不同而不同,显示器也一样,即使同一款型号,也可能会有电气性能上的差别。而在核心的源头上,由于显卡的本职工作是真实还原色彩,而不是改变色彩,所以两家的设计结果只能是一至的。专业人员更多的是选择专业显示器和专业显卡,这才是保证效果方法。
而在游戏“画质”方面,这里的画质指的是特效的效果,比如光影、抗锯齿、贴图、动态模糊、模拟曝光、异性过滤等等,这些都是依靠相应单元运算得出,两家绝大部分效果都可做到一至,但有些单元设计不同,部分效果也就有些差别了,最明显的是抗锯齿和纹理效果,有些时候可以看到两家显卡在同级的特效下会有些细微的差别,比如降底特效的时候,一家可能还能看到些绿草皮,而另一家可能就剩光秃秃的黄土地了。这种差别可能会让部分玩家误认为是“画质”的差别,其实是与真正的画质(图像品质)无关的。有时候更新一下驱动版本,差别可能就没有了。绝大部分时候,两家都很难看出这些差别,初学者其实无需太在意这些。
在抗锯齿性能方面,通用的是MSAA抗锯齿技术,N卡凭着高效能在前两代一直占着优势,到了第三代,AMD的HD4000系列就把抗锯齿运算从流处理器改到了光删单元,从而大副提升了抗锯齿性能,超越了N卡。到了第五代后,N卡的GF500系列也改到了光删单元,从此两家各有胜负。此外两家也在研发自己的抗锯齿技术,以求游戏厂商能额外采用,NV的CSAA技术画面效果不错,支持度较大(虽然很耗资源),而AMD的CFAA技术则效果不佳(虽然效率很高),前期没有支持度,直到HD6000系列以后CFAA效果才得到改善。(不过为了公平对比,多数媒体在测试时只使用游戏默认支持的MSAA技术,所以两家自己的技术不会影响成绩)
多屏输出方面,是AMD的强项,后期A卡可以做到单卡六屏输出,双卡则支持到恐怖的12屏。加上架构和显存的特性,即使在多屏高分辨率下,性能衰减也比对手要小,是多屏发烧友及多屏游戏玩家的最爱
3D视觉技术方面,前期是N卡占优势,后期是A卡占优,由于A卡3D视觉技术是免费开放的,得到了大量软硬件厂商(眼镜套装、显示器以及游戏)的支持,选择性较高。就技术本身而言,两家原理相同,区别不大。
通用计算方面,虽然通用计算概念是由ATI在X1900XT时代首个提出来的,但ATI一直都不够重视,加上后期A卡DX10架构的软件开发难的问题,导致支持的软件数量少,一直没有起色(虽然其运算性能是无敌的)。而N卡则从GF200系列开始,高度重视通用计算,以打通游戏以外的应用路线,通过架构的针对性设计,以及推出方便的开发套件,让程序员无需学习图形API也能开发出适用的软件,并且支持C++语言,使支持者越来越多。从中国超级计算机天河一号早期采用A卡核心做为计算单元,后期改用N卡核心就可见一斑。
专业图形领域,两家都有相应的专业卡系列,N卡占了大部分专业卡市场份额,导致A卡可选产品较少。但在性能上很难分胜负,两家都有各种等级定位的产品。不过在游戏卡上,A卡曾暴出可以通过特定的驱动配合特定的型号,使几百元的游戏卡瞬间变成几千元的专业卡案例,当时在专业圈里可是大事件,各种改版驱动的求下载也一度火热,不过之后新版本驱动填补了漏洞及显卡的换代,这事也就不了了之了。但A卡适合做图的说法就传了下来,其实在不破解的情况下,两家游戏卡在专业图形上都没有什么性能可言,其性能高低之分在专业卡眼里连零头都不如,所以在游戏卡上谈专业图形,本身没有太大意义。
在驱动程序方面
A卡在ATI时代驱动程序一直受人诟病,ATI常常在驱动没有充分测试的情况下抢先推出新硬件,然后再慢慢完善驱动程序,初期常出现各种兼容性问题,造成A卡发布半年后性能与兼容性才能通过驱动程序恢复正常的现象。而当时的NV却是过于严谨和保守(至今也是这样),虽然驱动完善度很高,但严重拖慢了新品推出的脚步,所谓有利必有弊。
自07年AMD收购ATI后,A卡的驱动程序才终于恢复正常,让人放心了,不过之前ATI搞坏的驱动口碑还需要时间慢慢解决。虽然AMD解决了驱动问题,但新问题又出现了:A卡架构优化难。AMD只能在新游戏发布后慢慢推出针对性优化的驱动,这样A卡通过驱动“提升”性能的现象还是没变,导致首发评测时A卡的成绩常常低于预期,随着时间的推移,排名才发生改变。而N卡在这方面就好了很多,没有毛病可挑。
在双芯卡与多卡互联交火的驱动上,A卡与N卡倒是反了过来,A卡驱动在交火兼容性上完成度非常高,而N卡则常常出现问题,多卡互联的兼容性问题比较严重(多卡丢桢现象也比A卡要多),甚至影响到了双芯卡的发挥,至今也没有得到改善。只能希望未来两家都能取长补短了。
近年情况:
当NV和AMD两种统一渲染架构发展到第四代后(N卡是GF400,A卡是HD5000),极限终于来临,架构的弊端暴走了。N卡为了提升性能,流处理器扩充到512个,GTX480晶体管达到空前规模,功耗发热量已经控制不了,变成史上首个需要屏蔽部分单元(只剩下480个)才能保证良品率的首发高端;而A卡也好不到哪去,HD5870已经把运算单元撑到极限(1600个),计算效率比例降至低谷,无法再扩充。偏偏这时候芯片代工厂台积电却放鸽子取消了32纳米的计划,延后转跳28纳米,在新工艺还没出世的时候,两家的下一代型号只能继续吃40纳米(已经吃了三代了)。
新工艺的优势就是高晶体管密度,可以在芯片面积和功耗不变的情况下扩充单元规模,提升性能推出下一代产品,而现在还用老工艺,计算单元是没法再扩充了,该如何推出更高性能的第五代呢,NV和AMD都绞尽脑汁。
NV的办法就是优化电路设计,使40纳米应用更加成熟,终于开启了GTX480被屏蔽掉的一组SM(32个流处理器),推出相当于GTX480的成熟版和完整版:GTX580。虽然确实提升了一档性能,但这种吃老本的“提升”是治标不治本的,于是GTX560Ti及以下的型号都用了“新”的设计(SM包含的流处理器撑到了48个,用更少的分组管理更多的流处理器),相当于缩减了缓存和控制单元,牺牲通用运算性能和部分效率,从而换取晶体管消耗和功耗的大幅降低,市场反应良好。也就是说,这一代的N卡从旗舰以下的型号都是缩减通用计算性能的“新架构”只有GTX570以上还是延用老架构,新旧核心贯穿整代。从这里已经初现NV改革的方向。http://img8.zol.com.cn/bbs/upload/17306/17305282.jpg以上是逻辑架构图,不代表实际物理比例(图片来自中关村)
而AMD由于本身工艺就很纯熟,在制造工艺上没有改进的空间,也在架构上做文章:前端处理器变成了两个,相当于增加了控制单元,缩减了运算单元。HD6870以1120个流处理器就胜过了1440个流处理器的HD5850,更接近了1600个流处理器的HD5870,证明这种改进是成功的。不过HD6800系列定位低于上代HD5800系列有点让人奇怪,接下来推出的HD6900系列才让人恍然大悟,原来高端型号的数字提了一个台阶。HD6900系列除了具备双前端处理器,还史无前例的把原先5个流处理器一组改成4个一组(不能再叫5D架构了),降低了前端压力又提升了单元利用率。这样双重改进确实能有效提升效率,连次旗舰的HD6950(1408个流处理)都要强于上代旗舰HD5870(1600个),旗舰HD6970更是接近对手GTX570,稍强于对手GTX480。这一代的A卡从高端HD6800以上都采用了“新架构”,中端以下还是延用老架构(与N卡正好相反)。从这里也看出了AMD改革的方向。http://img8.zol.com.cn/bbs/upload/17306/17305283.jpg以上是逻辑架构图,不代表实际物理比例
这一代两家都进行了妥协,不再固执的走极端,虽然相对上一代性能提升不多(以前换代都是近翻倍的性能提升),但NV尝到了适当放弃效率和通用计算带来的好处,而AMD也尝到了提升效率的好处,两家开始向对方靠拢了。从某种意义上来说,这都是台积电逼出来的。
http://img8.zol.com.cn/bbs/upload/16976/16975687.jpg(各代核心面积对比)
最新进展:
2012年,第六代来了,台积电的28纳米也可以用了,通过第四代的撞南墙和第五代的变通,两家第六代会有什么更大的变化呢。
先说AMD的最新GCN架构(HD7000系列),多达两千流处理器之巨,但最明显的改变是果然大幅增加了控制单元和缓存的比例,宏观上采用类似N卡的线程级并行,底层上还是采用指令级并行,使晶体管数量达到空前规模(已经有点N卡的味道)。结果表现令人惊喜,效率大幅提升,运算性能更强,通用计算性能也大幅超越以前,彻底改掉了通用计算的老毛病。
不到半年,N卡的最新开谱勒架构(GF600系列)也横空出世,更是戏剧化,果然大幅减少了控制单元,缓存也缩减了,再大幅提升流处理器数量,这样效率虽然比以前降低了,但计算性能却是N卡空前最高的(这有点向A卡靠拢的意味,唯一不同的是NV还是线程级并行)。从实际表现来看,GF600相比HD7000有更强的性能,更低的功耗和更小的芯片面积,算是真正做到了最强。不过价格也不太亲民就是了。
综合来看,两家戏剧性的向对方靠拢,让人不禁遐想世界大同的未来。一直以来A卡都给人小芯片、低功耗的印象,现在角色换过来了,变成N卡小芯片低功耗了。虽然两者在向对方靠拢,但线程级和指令级并行两种架构的界限还是有的,造成了新架构中A卡首次在技术层面上落败,不知道一直扮演着弱者角色的AMD会在未来做出什么样的反击,这很让人期待。
http://img8.zol.com.cn/bbs/upload/16976/16975670_0800.jpg(各代核心面积对比)
结语
总的来说,A卡和N卡在游戏中的表现是各有优劣,在多数游戏测试中都是互有胜负,可以说是平分秋色。而“N卡玩游戏好,A卡看电影好”这种中国式谬论我们还是少听少说为好,否则会极大的限制你技术水平的长进。
N卡和A卡虽然架构有别,但为了与各类软硬件兼容,都是遵循一定的标准进行设计,所以在性能的实现上都是一样的。而单机游戏厂商每一款大作的推出,都是里程碑式的宣传效应,单机游戏厂商的支持倾向也成为了两家必争之地,所以我们常常会在单机游戏大作中轮番看到两家品牌标志。而这个现象则导致了相当数量的初学者进入了一个误区:谁家支持的游戏多,谁的显卡就好。其实事实并没有这么简单,每个卖游戏的厂商眼中永远只有玩家数量,不会傻到为了某一家而放弃另一家,所以即使宣称专为某家显卡优化的游戏,也会给另一家显卡留下相当程度的后路,所以在多数游戏测试中即使两家显卡互有胜负,其差距也不大。
而网络游戏方面,玩家数量就是游戏商的生命,巴不得老爷机的玩家都能玩自己的游戏,所以除了对硬件要求较低以外,对两家显卡的支持更不会有什么区别。
神皮顽
2012书
看看 还算中肯 这种技术贴还是要支持的 好吧 没看懂。。 最后那句网络游戏语说的深切极了。 网游。在这个坛子里面是不是认为玩网游的都是脑残?
我也不爱玩网游 我竟然看完了,学习了 好长!不过看完了,就是没看懂啊,唉,小白,你不懂爱!
页:
[1]