论坛   IT娱乐新视界   上错花轿嫁对郎 crossfire超高效率揭秘
返回列表
查看: 1156|回复: 8
收起左侧

上错花轿嫁对郎 crossfire超高效率揭秘

[复制链接]

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

发表于 2011-4-30 22:32:00 | 显示全部楼层 |阅读模式
前言:时隔一周之后,ZOL显卡探索与发现节目又与你见面了。在本次节目中,我们将面对一个看似超自然的现象,那就是crossfire超过200%的性能提升幅度。任何数学常识都会告诉我们,在日常生活的常规场合中,单纯的1+1是不可能大于2的,那为什么2块显卡通过交火之后却可以获得达到甚至超过单块显卡2倍的性能呢?本期ZOL显卡探索与发现节目再次为你拨开层层迷雾,展现现象背后的真实。

  ● 1个不够?那我们就来1+1吧
  其实很多时候我们都有这样的感觉——你买一块千元左右的显卡,性能往往无法满足要求,而如果要获得50%,甚至只有30%的性能提升,购买旗舰的代价不仅高昂,而且还可能会带动周边需求比如电源等的同步抬升。又或者你是一位极致性能发烧友,已经购置了一块旗舰级显卡,但超频已经无法满足你对极致性能的追求,进一步超频又因为频率极限及设备等的限制而无法实现。你除了望卡兴叹之外,还能做些什么呢?

多卡互联方案可以有效提升性能
  这种时候,多卡互联方案往往就成了很多人首选的解决方案了。以中端显卡为例,2块千元级显卡通过互联之后能够轻松获得接近旗舰级单卡的性能,而2000元左右的花费不过是sweet spot级显卡的代价而已。而对于选择追求极致性能的发烧友来说,4way方案是唯一能够带给自己极速快感的途径。因此,尽管多卡互联方案现在还没有完全发展到毫无兼容性以及其他问题的地步,但它依旧是追求性价比以及追求极致性能的用户的一个非常不错的选择。
当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:34:18 | 显示全部楼层
● 没有超自然,只有未发现的真相  在传统的观念中,多卡互联的最高效率理论上仅能达到单卡性能的200%,毕竟你不可能突破数学的束缚和限制,创造出1+1大于2这种式子。而实际应用中由于各种限制因素,包括优化等的制约,一般不可能超过180%。



SLI提升性能幅度测试
  在进行Cayman及Barts构架显卡测试的过程中,我们会发现一个现象——很多情况下Cayman及Barts显卡的crossfire效率惊人的高,经常可以能够达到190%,甚至在不少场合还超过了200%。

crossfire效率可以接近200%的6970
  1+1大于2,这种现象无论从哪个角度来看都不属于正常的范畴。难道AMD掌握了超自然技术,可以突破物理和数学定律的限制和束缚?

除非是高维分形空间中,否则1+1不可能大于2
  请相信我,这世界上不存在任何超自然的东西,一切不可理解的现象背后都蕴含着一个真实,等待着人们去挖掘。Cayman及Barts超高的多卡互联性能提升率背后的真相也是如此,下面就让我们抽丝剥茧,一层一层的解开谜团背后的真相吧。

当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:35:49 | 显示全部楼层
● 第一层茧:多卡互联操作方式  我们要面对的第一层茧,是多卡互联的操纵方式。
  多卡互联方案,包括SLI和crossfire在内,常规使用的渲染途径一般有AFR和SFR两种。AFR全称Alternate Frame Rendering,即交错帧渲染,该渲染方式通过将不同帧的画面分别交给不同的GPU进行操作来完成画面的输出,每个GPU都将渲染完整的一帧画面。而SFR全称Split-Frame Rendering,该操作方式中驱动会根据负载将画面尽可能平均的分成两个或者多个部分,然后将分割好的画面内的像素任务交由不同的GPU分别完成。


不同多卡互联的任务分割模式

SFR与AFR结合渲染的模式
  此外,ATI还曾经引入过Super Tiling(瓦片)式交错渲染,这种方式属于对SFR的一种改进和深入,通过将画面进一步细分成更加细小的矩形区域来达到更加贴近平均分配像素任务的目的。但这种方式过于复杂而且兼容性不佳,因此鲜有采用。

Super Tiling(瓦片)式交错渲染

AFR模式采用错帧渲染
  不难发现,如果游戏采用AFR模式进行多卡互联渲染,由于前后帧画面的复杂度很可能大不相同,各GPU之间的负载很难达到平衡,这不仅影响多卡互联的效率,而且很多时候还可能会影响min fps表现并最终降低游戏体验。因此在经历了多年发展之后,目前的SLI及crossfire多采用SFR方式来进行渲染。
当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:37:27 | 显示全部楼层
● 第二层茧:任务的分派和发放  我们在以前的文章中曾经多次面对过画面渲染的问题。简单地说,画面就是一个像素线程的集合,一切效果的实现全部依赖于这些线程或者说任务的正确完成。而SFR对画面进行切割的本质,就是对线程或者说任务强度的拆解和分派。



SFR模式更加高效
  SFR模式将画面分割成多个部分,也就将构成画面的像素任务分割成了多个部分,这种拆分任务的做法有效地减轻了单个GPU的任务负载,对于每一个GPU来说,过去需要独立面对一整张画面中所有像素任务的劳动强度显然要比这繁重得多。因此,如何更加合理有效的将任务均匀的拆分给多个GPU,就成了SFR模式优化的关键。经过多年的发展,无论AMD还是NVIDIA,其SFR模式的画面拆分过程都已经日趋完善。通过对画面像素的统计和合理预判,SFR模式现在已经充分的发挥了平均分配并降低单卡渲染压力的作用。

SFR模式渲染的3dmark06
  但是,随着特效的不断进步,像素的效果越来越复杂,画面中经常会出现需要多次处理,或者存在分支关系的像素群,这类像素的出现极大的干扰了SFR对画面中像素负载的判断过程。如果单纯的依靠传统的以像素数量来分割画面并分派任务的方式,将极有可能会导致GPU负载失衡的问题。而对画面中每一个像素都进行任务复杂度的判断并加以合理分割显然会浪费不小的周期,这个开销对于幁数和流畅度来说是一个无法回避的沉重负担。所以很明显,单纯靠对SFR的优化过程是无法得到哪怕只是贴近理论值的结果的。

SFR模式的画面分割日趋复杂
  既然单纯优化不行,那我们就只有继续往下深入,看看画面在经过SFR拆分之后都发生了什么吧。
当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:38:37 | 显示全部楼层
● 第三层茧:食人魔和双头食人魔
  像素在进入GPU之后会被排成线程队列,由GPU的线程分派和发放机制统一进行管理,线程管理机制会在适当的时候让像素进入流水线并完成渲染。由此可见,优质高效的线程管理机制,对于整个体系的像素线程执行能力有着极大的影响。
  我们不妨来看一看Barts以及Cayman构架的细节,了解一下线程管理发放机制在构架中的地位。


Barts构架

Cayman构架
  Barts以及Cayman构架的线程管理发放机制名为Ultra Threaded Dispetch Processor,简称UTDP,整个构架体系使用2套UTDP对线程进行管理,UTDP衔接着Geometry(几何引擎)与整个体系的ALU CORE,Barts及Cayman内部的全部ALU均直接被UTDP控制。

UTDP内部结构
  UTDP负责整个体系中全部线程的接收,发放,回收,合并以及管理操作。以Cayman构架为例,当任务被拆解成像素之后,UTDP会分析从Command Processor传送过来的根据像素任务队列生成的Thread,当Thread达到Adjacent-Instruction Dependencies(指令依赖性)要求之后,UTDP就会将打包的Thread送到对应的ALU团簇中进行处理,处理完毕之后再对结果进行回收,然后将其发送到光栅化的其他环节中去。

当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:40:31 | 显示全部楼层
● 抢占式多线程管理  我们画面中的每一个像素在程序中都会对应一个线程,以2560X1600分辨率为例,假设一帧画面中平均每一个像素会被处理一次,那么这一帧画面也就对应了4096000个线程。像素的处理繁简不一,有些可能只需要简单的加减1甚至0,而有些则可能需要完成复杂的如大数位浮点MUL之类的运算和操作。如果要达到流畅画面所需要的每秒60帧,整个GPU在1秒钟之内所要面对的线程数将轻松超过2亿个,如果再算上其他操作所需要占有的线程,则线程总数将更加庞大。这种情况下,如何管理好线程队列就成了保证整个GPU效率的关键。


复杂画面的像素线程更多
  常见的多线程管理有协作式多线程,单级抢占式多线程以及多级队列式多线程等。由于Barts、Cayman甚至整个AMD图形构架均采用VLIW形式的SIMD吞吐结构,整个VLIW CORE一直都是一个整体,因此只能采用更加有利于吞吐的单级抢占式多线程管理。

抢占式多线程管理
  单级抢占式多线程管理与其他线程管理模式最大的不同,在于任务队列的形式。在这种管理模式下,所有线程会被排成一个统一的队列,队列中的每一个任务都会被赋予一个优先级,优先级意味着被执行的优先度,更高的优先级会让该线程打乱队列位置,优先被送入执行单元。当队列形成之后,线程调度机制会阶段性的对线程队列完成吞吐,然后将吞吐进来的线程按照优先级进行排序,并以此为依据将线程送入执行单元中。

线程块的抢占式管理
  具体到Barts和Cayman,在进行任务管理时又有自己独特的特色,那就是任务管理机制UTDP的抢占式工作以及wavefront的最小线程块单位。双UTDP在进行任务管理时也服从抢占规则,当某个UTDP完成既定现成的吞吐和分配之后,他会直接从任务队列中吞吐其他的线程,两个UTDP交替完成吞吐和分配,原则上可以更好的在时间和空间上弥合吞吐和操作造成的周期损失,达到更高效的吞吐和管理效率。而线程队列的基本单位也不是单个thread,AMD自R600以来的所有构架对于线程的管理均基于GPR结构,体系处理的最细粒度是64个thread构成的线程块,AMD称之为wavefront。UTDP会对wavefront进行吞吐,并将其送去对应的VLIW CORE部分。

UTDP对线程的吞吐和发放
  我们不妨把UTDP对像素线程的管理想象成入学分班,这个类似小学生排队的场景大体上就是这样的——新生开学入学,所有新生(一帧画面中所有的像素线程)排成了一路纵队,然后从头到尾依次报数(像素队列排序)并等待分班,教务处的两个主任(UTDP)站在队列最前面,每人每次都会放一波学生(若干wavefront)过来看看,长得漂亮的或者过去获过奖的乖孩子(高优先级)被分去教师最好的班级(空闲处理器资源),调皮捣蛋的坏孩子(低优先级)则被分去了较差的班级(非空闲处理器资源),两位教务主任一刻不停地忙碌着,谁有空谁就去接下一波学生。

当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:42:27 | 显示全部楼层
● 问题的关键:到底是多少加多少?  明白了Barts以及Cayman的抢占式多线程工作环节,我们就等于剥开了真相外面最后的一层茧,接下来,我们将直接面对事情的本质,为什么Barts和Cayman的crossfire效率能够超过单卡的100%。
  答案其实就在眼前——因为Barts和Cayman构架的单卡在单独面对任务时所表现出来的性能,根本就不是单卡应有性能的100%。我们所面对的问题其实根本不是1+1为什么大于1X2,而是1+1大于多少X2。


Barts及cayman构架显卡
  无论4D+1D VLIW的Barts还是4D VLIW的Cayman,其设计思路均传承自AMD的R600构架,Barts和Cayman的设计基础是建立在强调吞吐量以及粗犷操作的模式之上的,这种思路不仅反映到了VLIW CORE的设计细节上,更深深的影响了任务仲裁机制也就是UTDP的设计理念。UTDP的设计在面对传统的大面积4D shader吞吐时可以表现出高效的管理能力,但当所要处理的shader过于灵活的时候,UTDP以及单级抢占式多线程管理的弊端就显现出来了。

SSAO是典型的灵活shader应用
  首先,UTDP所要管理的运算资源过多。Cayman构架拥有1408/1536个ALU,Barts构架也拥有800/960/1120个ALU,如此庞大的运算资源仅使用2个运行在800~900MHz上的UTDP进行单级管理,复杂多变的灵活线程进入ALU的时机以及整个VLIW CORE的线程密度很难达到一个比较理想的状态。

Cayman构架细部
  其次,两个UTDP的虽然可以进行交错抢占式线程块吞吐,但任务队列只有一个,无论Cayman还是Barts构架同一周期都只允许一个UTDP单元进行线程块吞吐。如果此时两个UTDP都处在空闲或者满载状态,交错抢占式吞吐对效率的提升不仅无法被发挥出来,这种延迟还将随着线程队列的延长而累积起来,这将进一步影响后续的VLIW CORE得到的线程密度。

Cayman的双几何及UTDP引擎
  最后,如果多个线程导致VLIW CORE的寄存器和缓存资源出现溢出,执行单元将会把这些线程发还UTDP进行线程块合并,在《谁是微软忠实随从 A/N统一架构历史回顾》及《忠实微软是否有用 A/N统一构架细节分析》中我们不难发现,对于Barts以及Cayman构架这种访问及操作路径和缓存资源均极端不足的构架来说,寄存器溢出基本上就意味着无后手可用,只能将线程发还给UTDP进行wavefront合并。与此同时,如果某线程未通过Adjacent-Instruction Dependencies检查,这些线程也将被押后最少64个周期并再次寻找依赖性达到要求的位置重新打包。这些重复和多次打包的要求对于本已负担沉重的UTDP无疑是雪上加霜的。

RV870简单且匮乏的操作路径及手段
  在这些客观因素的影响下,Barts以及Cayman的单卡在面对任务时,是很难跑出全部性能的,大量的单元会因为线程密度不足带来的延迟而处在闲置状态。 要解决这种问题其实倒也不难,只要降低UTDP的负担,让其能够更加平顺的吞吐和控制合适长度的线程队列,或者管理更少的ALU资源就行了。伴随着单位线程管理强度的下降,Barts和Cayman构架可以获得更高的性能提升幅度。
  crossfire的操作,刚好对应了这种需求。

crossfire连接结构
  我们前面的文章已经提到过,crossfire通过对画面的分割,实际上完成了对像素线程队列的分割,被分配到每个GPU中的像素线程队列仅有正常单卡处理时的一半左右,原先由2个UTDP处理的任务总量现在被平摊到了4个甚至更多的UTDP单元中共同完成,这极大地缩短了UTDP所要面对的线程队列长度,大幅削减的线程负担让UTDP可以更加从容的完成吞吐,并且有更多的周期来处理合并线程等其他琐事。更加合理高效的线程管理在时间和空间上提升了整个VLIW CORE的运算密度,这使得每一颗GPU都拥有了比单独处理任务时更高的性能表现。

corssfire对画面的拆分
  这就是一切的真相,我们并不否认驱动优化的意义,但实际上crossfire的出现确实是“无意间”改善了Barts及Cayman构架先天设计的缺陷,只有在crossfire的状态下的Barts和Cayman才能够发挥出应有的性能水平。这个时候的1+1,才能得到正确的结果。所谓超过100%加速比的现象,不是火星科技,也不是极致优化所带来的锐意精进的结果,它只不过是由于单卡面对任务时性能无法得到发挥所导致起点过低而产生的错觉罢了。
当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:44:13 | 显示全部楼层
● 实践出真知  为了进一步证明前文中的观点,我们设计了一组实验,用来观察不同UTDP资源等级对不同任务复杂度的耐受能力,同时进一步验证crossfire相对于单卡超过100%性能提升的现象是否属实。
  测试使用的硬件平台由Intel Core i7-975 Extreme Edition、ASUS P6T Deluxe主板2GB*3三通道DDR3-1600内存构成。细节及软件 环境设定见下表:

测 试 平 台 硬 件
中央处理器Intel Core i7-975 Extreme Edition
(4核 / 超线程 / 133MHz*25 / 8MB共享缓存
散热器Thermalright Ultra-120 eXtreme
(单个120mm*25mm风扇 / 1600RPM)
内存模组Apacer PC3-12800 猎豹套装 2GB*3
(SPD:1600 8-8-8-24-2T)
主板ASUS P6T Deluxe
Intel X58 + ICH10R Chipset)
显示卡
AMD 产 品
Radeon HD 6870
(Barts / 1024MB / 核心:900 MHz / Shader:900 Mhz / 显存:4200 Mhz)
Radeon HD 6970
(Cayman/2048MB/核心:880 MHz/Shader:880 MHz/显存:5500 MHz)
Radeon HD 6950
(Cayman/2048MB/核心:800 MHz/Shader:800 MHz/显存:5000 MHz)
硬盘Seagate 1T
1TB/ 7200RPM / 32M缓存 / 80GB NTFS系统分区)
电源供应器AcBel R8 ATX-700CA-AB8FB
(ATX12V 2.0 / 700W)
显示器DELL UltraSharp 3008WFP
(30英寸LCD / 2560*1600分辨率)


Apacer猎豹6GB DDR3-1600套装

AcBel R8 ATX-700CA-AB8FB

Thermalright Ultra-120 eXtreme
  我们的硬件评测使用的内存模组由宇瞻(Apacer)中国区总代理佳明国际提供,电源供应器、CPU散热器由华硕(ASUS)玩家国度官方店、利民(Thermalright)的北京总代理,COOLIFE玩家国度俱乐部提供。
  
测试系统的软件环境
  为保证系统平台具有最佳的稳定性,此次硬件评测中所使用的操作系统均为Microsoft Windows 7 正版授权产品。使用Windows 7正版软件能够获得最好的兼容性以及系统升级更新服务。
  用户在体验或购买安装Windows 7的操作系统时请认准所装系统是否已经获得正版授权许可!未经授权的非正版软件将无法获得包括更新等功能在内的Windows 7服务。

操 作 系 统 及 驱 动
操作系统
Microsoft Windows 7 Ultimate RTM
(中文版 / 版本号7600)
主板芯片组
驱动
Intel Chipset
Device Software for Win7
(WHQL / 版本号 9.1.1.1125)
显卡驱动
AMD Catalyst
(Beta / 版本号 11.4)
桌面环境
2560*1600_32bit 60Hz

  我们使用DirectX 11游戏《战地 叛逆连队2》来完成我们的测试,实验过程测试分辨率为2560X1600及1280X800,各分辨率下特效统一设为最高,开启4XAA及16XAF,通过fraps截取游戏开场字幕结束之后300秒渲染画面,取平均帧数作为测试结果。测试结果如下:
  通过战地测试我们可以看出,HD6970 crossfire达到了单卡性能的193.8%,HD6950 crossfire达到了单卡性能的199.8%,而HD6870 crossfire则达到了单卡性能的205.8%。与此同时,在分辨率降低至1280X800之后,HD6970单卡获得了205.4%的性能提升,HD6950单卡获得了 213.5%的性能提升,而HD6870则获得了237.956%的性能提升。
当一扇幸福之门关闭时,另一扇就会打开。

3万

回帖

225

好友

9万

经验

超级版主

Vampire

威望
506

摄影爱好者论坛顶梁柱传说只有读到博士后的人才可拥有这枚勋章

 楼主| 发表于 2011-4-30 22:45:23 | 显示全部楼层
● 弄拙成巧也是巧  我们先前的观点概括起来有两个,一是crossfire的性能虽然确实可以接近甚至超越单卡性能的200%,但这种性能的提升并非来源于未知科技或者AMD对驱动的极致优化,造成这种现象的根本原因是多卡互联解决方案的特性,也就是降低单卡线程负载的特点刚好弥合了Barts及Cayman构架先天设计缺陷所导致的不足。二是经过分析我们不难发现,UTDP资源一定的前提下,其所管理的ALU越少,性能延展现象将越明显。这两个观点是具备相互引证特性的。
  我们在试验中加入同画质低分辨率设置的目的,在于通过降低分辨率来创造另一种直接将线程强度整体减半的环境,用以证明性能提升幅度或者说性能延展性与线程强度对UTDP的影响是否直接挂钩。尽管直接降低分辨率可能会导致材质需求的变化,但由于Barts及Cayman构架的TMU及后端资源十分充足,甚至到了过剩的地步,因此可以将这种干扰在非定量的前提下减小到最小,这使得该实验具备了足以定性的精确度。


cayman构架恐怖的纹理和后端资源
  通过测试结果我们不难发现,通过crossfire分割画面降低UTDP的线程负担之后,测试的Cayman及Barts构架显卡均取得了单卡性能200%甚至超越200%的结果,而降低分辨率的测试取得了与之完全相同的效果。另外,通过分析crossfire以及降低分辨率对性能的延展程度,我们发现在UTDP资源相同的前提下,ALU最少的HD6870获得了最好的性能延展,而ALU最多的HD6970性能延展率也最低。这足以证明线程资源不足的先天缺陷才是导致crossfire效率极高的重要原因。
  从结果来看,尽管我们证明了Barts及Cayman构架具有一定的先天缺陷,而crossfire仅仅是“碰巧”弥补了这方面缺陷所带来的不足,但同时我们也通过测试成绩看到了颇高的crossfire效率以及不错的最终性能。实际上尽管crossfire对Barts及Cayman构架缺陷的弥补属于无心插柳,但最终他还是达到了大幅提升系统图形性能表现的目的,并因此取得了非常不错的最终使用性能。

cayman构架成卡
  不管出于什么原因,是弄拙成巧也好,是人品爆棚也罢,上错花轿嫁对郎这件事最关键的地方在于嫁对郎这一结局,所以只要故事能够以圆满和美好的形式被最终表现出来,它的起因和过程并不起决定作用。Barts和Cayman构架虽然具有这样或者那样的先天不足和缺陷,但其crossfire所变现出来的性能以及市场的选择均证明他并不属于失败的产品,通过本期ZOL显卡探索与发现节目的展示,我想屏幕前的诸位应该清楚如何选择自己需要的产品了。
  好了,本期探索与发现节目到这里就结束了,感谢各位阅读至此的朋友们,让我们下期ZOL显卡探索与发现节目再见吧。
当一扇幸福之门关闭时,另一扇就会打开。
您需要登录后才可以回帖 登录 | 立即注册

收藏:1 | 帖子:5190

有图有真相