Radeon HD 6970/6950图形技术解读

  • 来源:微型计算机
  • 关键字:Radeon HD 6970/6950,图形技术
  • 发布时间:2011-02-15 15:36
  从4D+1D到4D:深入理解AMD 4D架构

  Radeon HD 6970/6950最为重要的改变就是从传统的4D+1D架构转变为4D架构,那么这样转变后的好处在哪里?AMD为什么要作出这样的调整?竞争对手NVIDIA又采用的是什么架构呢?

  4D+1D架构的不足

  AMD显卡传统的4D+1D结构可以在每次计算中处理一个像素的所有色彩或者坐标信息,不过考虑到有时候还需要一些特殊计算,比如sin、cos等,AMD还特别设计了一个ALU单元,称之为ALU.trans。这个特殊的单元和传统的用于计算四个ALU组成了AMD的4D+1D架构。

  从理论上来看,4D+1D架构的效能是非常出色的。因为它一次计算就能处理一个像素所有的色彩或者坐标信息。但现实和理想总是有差距的,像素点并不是总需要计算位置或者色彩。一些像素实际上只需要改变色彩,坐标不变,或者只是运动一下,色彩信息没有变化,亦或者只是色彩中的某个数据需要计算,其他的不需要。总之,在实际计算中,并不是所有的信息都需要计算,这就造成了4D+1D架构中的部分单元的闲置。在最严重的情况下,4D+1D架构在遇到全部由1D组成的计算需求时,性能只Radeon HD 6970/6950图形技术解读有理论值的1/5。

  AMD工程师很早就在思考解决上述问题的办法,在R600以及后续的4D+1D计算中,AMD开始允许指令合并,也就是说几个不同的指令可以合并在一起进入流处理单元并进行计算。这样可以在部分场景下提升显卡的性能。比如说,两个2D指令接踵而来,传统计算是先计算一个2D,再计算另外一个2D,这样4D+1D架构的性能只有理论性能的40%,但一些新的设计可以允许这两个2D指令合并成一次计算,变成2D+2D,这样就能发挥80%的性能。与此类似的还有3D+1D、1D+1D+1D+1D+1D、1D+4D等特殊的复杂计算。

  虽然AMD利用了种种手段对4D+1D架构进行了优化,但改进的4D+1D架构的效率还是不够理想,在很多情况下部分晶体管都在打瞌睡。AMD的SIMD架构虽然效率不一定高,但好处是规模扩充相当容易,比如AMD的4D+1D流处理单元作为一个整体,只需要一个指令发射端就可以解决问题。Cypress拥有1600个流处理算数单元,320个指令发射端就可以了。但NVIDIA的MIMD 1D架构,每个ALU都需要发射端等辅助设计,晶体管开销巨大。再加上缓存、线程调度器、寄存器等周边设计,1D架构在芯片体积和规模上都有比较明显的劣势。这也是造成NVIDIA DircetX 11显卡功耗较高的一个主要原因。

  放弃4D+1D,转向4D

  从RV670开始,AMD一直奉行小核心策略,在一定程度上避开了工艺难度问题。但为了保证不错的性能,对晶体管效率就必须有很高要求。因此,AMD在研发了很长一段时间的SIMD架构后,掌握了大量显卡计算中的信息和数据,认为继续保持这样的4D+1D结构对晶体管利用率的提升已经没有太大帮助了。因此,AMD在新的Cayman中,将4D+1D改进为4D结构,抛弃了之前的1D。

  AMD放弃的1D,是一个体积比较大的、用于一些特殊计算的ALU.trans(NVIDIA称之为SFU)。在放弃这个单元后,AMD重新设计了Cayman剩余的4D,将这四个4D单元变为对等的四个ALU。不仅如此,这四个ALU通过“合纵连横”,接管了之前ALU.trans的计算任务,比如一些特殊计算,可能需要占用3个ALU,但考虑到4D+1D本身就不太高的效率,这样的取舍从理论上来说是可能提升晶体管利用率的。根据AMD给出的数据,在改变成4D结构后,整个单元的每平方毫米性能可以提升10%。

  不过效率的提升代价也相当明显。以定位相同的Radeon HD 5870为例,其具备1600个流处理算数逻辑单元(SPU),需要320个指令发射端(Radeon HD 5870是4D+1D架构,5D×320)。而Radeon HD 6970具备1536个流处理算数逻辑单元,SPU数量减少了,但指令发射端数量却增加到了384个(4D×384)。再加上周边一些辅助单元,整个晶体管规模就变得更为庞大。现在的Cayman晶体管数量达到了26.4亿,相比之前的Cypress的21.5亿提升了约23%,当然功耗也会随之提升。

  双头鹰:更强的双图形引擎

  对曲面细分技术的支持一直是AMD显卡的弱项,受到不少外界的批评。AMD认为,曲面细分只是DirectX11游戏的一个方面,对它的使用并非越高越好。在游戏中,过重的曲面细分系数并不会带来图形画质的明显提升,反而会由于过大的计算负荷导致显卡性能大跌。在之前的Cypress中,AMD设计了一个曲面细分单元。这样的设计只是达到了DirectX 11“拥有”曲面细分的基本需求。当然,在AMD推出第一代显卡时,DirectX 11游戏尚未发布,游戏要求也不高,因此AMD这样的设计也符合当时游戏的需求。在DirectX 11时代正式来临后,AMD就需要重新考虑显卡对DirectX 11的支持特别是对曲面细分的支持了。

  因此在Cayman中,我们看到了AMD全面加强了DirectX 11设计。首当其冲的就是最受关注的曲面细分性能。相比上代产品单曲面细分单元和NVIDIA的大量曲面细分设计而言,AMD经过衡量,确定了自己的曲面细分设计方法。AMD针对Cayman的曲面细分设计并不过于突出,而是有序加强。AMD将Cayman中负责曲面细分单元的图形引擎(Graphics Engine)由之前的Cypress的一个提升至2个,随之而来的则是负责曲面细分的几何单元、顶点单元以及曲面细分器数量也变成双份。

  除此之外,光栅器和多级Z缓冲设计也都变成双份。整个双图形引擎的设计,提高了Cayman在处理三角形时的能力。现在Cayman能够实现多三角形的并行处理,理论上可以得到相对Cypress高达3倍的曲面细分性能提升。另外,Cayman在其他方面也有一定改进。比如后端单元的能力被进一步加强,能够实现合并操作,在16bit、32bit计算时的性能上都至少提升了2倍,其中32bit浮点性能提升了最多4倍。后端单元的性能直接决定了显卡的抗锯齿性能,Cayman在抗锯齿性能上应该会更为优秀。

  在通用计算方面,Cayman最重要的变化就是双精度性能由之前单精度性能的1/5提升到现在的1/4,当然这种变化多数都是由架构4D+1D改进到4D带来的。另外一些在通用计算上的变化包括可以执行Shader合并读操作、改进了流控制、可以直接从LDS读取数据(之前需要先载入寄存器)、可以读写本地显存数据等。总之,这些改进提升了Cayman在通用计算上的表现,特别在一些特殊应用场合会有更为出色的表现。

  EQAA:更新的抗锯齿技术

  AMD最近在抗锯齿技术上的创新相当积极,在Barts系列上AMD推出了全新的MLAA技术。作为初次技术探索,AMD为我们展示了其在新技术研发上的实力。在新的Cayman显卡上,AMD又马不停蹄地带来了EQAA(Enhanced Quality Anti-Aliasing)技术。

  从技术本质本身来说,EQAA并非AMD首创,在NVIDIA的G80上,我们就看到了和EQAA基本相当的CSAA技术。这两项技术都来源于MSAA,但通过覆盖采样和色彩采样分开选择,通过更多的覆盖采样点,获得更好的画质。

  AMD的EQAA目前有2×EQAA、4×EQAA和8×EQAA三种模式,其中2×EQAA类似2×MSAA搭配2个额外的覆盖采样点(2×MSAA本身还包括2个覆盖采样点);4×EQAA则是4×MSAA搭配4个额外覆盖采样点(4×MSAA本身还包括4个覆盖采样点);8×EQAA是8×MSAA搭配额外8个覆盖采样点(8×MSAA本身还包括8个覆盖采样点)。相比NVIDIA的CSAA,AMD的EQAA增加了覆盖采样点的数量,比如8×CSAA只有8个覆盖采样点,和4×EQAA相同,但同级8xEQAA的覆盖采样点则多达16个,理论上EQAA的画质会稍微好一点。

  PowerTune:更智能的电源管理

  在节能省电的大潮下,能耗管理、电源管理技术成为众多高端产品的特殊符号。在显卡方面,AMD的PowerPlay技术能很好让显卡在2D状态下节约电能,但AMD还不满足,在Cayman上,又引入了更为节能且能够让用户手动进行控制的PowerTune技术。

  传统的PowerPlay设置了三种功耗状态:3D满载、3D轻载、2D待机,这三种功耗状态对应着高功耗、中等功耗和低功耗。在AMD看来,很多应用程序并不需要让显卡进行3D满载全负荷计算,但由于功耗设置的步进问题,在性能要求超过中等功耗后,显卡就工作在功耗最高的满载状态,这对节能来说是不利的。

  因此,AMD引入了PowerTune技术,PowerTune通过在中等功耗和满载功耗两档次之间引入更多的工作模式,让显卡在一些3D负荷较低的场景中自动降低频率。以Radeon HD 6950为例,核心频率波动频率范围是650MHz~780MHz,在3D应用中显卡频率会自动在此范围内切换,起到智能节能的作用。

  除此之外,PowerTune还能监控显卡的功耗情况,当显卡功耗超出设定上限后,PowerTune会自动降低显卡频率,将显卡功耗控制在限定值之内,保证显卡不会由于过热而烧毁。当然,为了让显卡可玩性更高,满足一些玩家和功耗敏感用户的需求,AMD在催化剂控制中心中还特别对PowerTune给出了上下限设置,其中上限为+20%,下限为-20%,默认为0。当用户调整这个数值时,显卡的核心频率会有波动幅度的变化。

  总的来说,PowerTune是一种相当先进的功耗控制方式,和NVIDIA在GeForce GTX 580/570上引入的功耗检测和控制系统类似,但它功能又更为全面一些。PowerTune通过对显卡核心各个部分的监控,在性能、频率和功耗之间作出最合适的取舍,可以智能调节动态功耗。我们认为,这种能耗控制的方法必将成为未来显卡的主流设计。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: