搜索新闻

GPU炼金试验室 揭秘HD7800强劲性能之谜

来源:中关村在线 更新日期:2012-04-15 作者:顾杰

有了Pitcairn,你还会选择Tahiti么

     作为AMD在经历了5年坎坷摸索之后的作品,以第三代DirectX 11旗舰构架登场的Tahiti承载了AMD工程师大量的汗水和期许。初登场时的Tahiti以惊艳构架改进,几乎荡平了由Evengreen甚至R600所积累的诸多诟病,并博得了应有的掌声和喝彩,虽然依旧有绝对性能不足等瑕疵,但它依旧让我们感受到了AMD追求卓越图形构架设计以及探索的决心。

    因为Tahiti所展现出来的决心和意志,我们变的宽容起来。我们可以忍受它看上去并不十分强大的绝对性能上限,我们接受了HD7970那令人印象深刻的噪音和并不算小的功耗,我们以为自己获得或者即将获得的是一个足够尽力但还有一段不短的路需要走的GCN系列构架。万事开头难嘛,纠正一系列长期积累的问题是一个困难而持久的过程,GCN构架对过去问题的修正不可能一蹴而就,但它毕竟迈出了坚实的第一步,因此,我们应该给予它充足的时间。

    但好景不长,就在Tahiti构架出现2个月之后,与之同期开始研发并同样源自GCN(Graphic Core Next)体系,拥有近似逻辑结构和不同资源搭配比例的Pitcairn出现在了人们的视野中。在与这个同族小兄弟的对比中,Tahiti的图形性能及其规模性能延伸率表现似乎并不尽如人意,Tahiti构架的次级旗舰HD7950在大多数场合都无法与基于Pitcairn的HD7870拉开与规模相符的差距,无论单元效率还是每瓦特效率,HD7800都表现的十分强大,甚至直接对HD7950这样一个更高级别的存在造成了明显的冲击。Tahiti诸多改进带来的闪光,正在随着Pitcairn的到来而逐渐变得暗淡。

    Pitcairn的实际表现更是在想我们确凿无疑的说明这一个可怕的事实——GCN构架的性能和效率,明显不应该被延伸到Tahiti这样一个较低的程度。事实上GCN构架本身就存在相当优秀的逻辑结构设计,而这种逻辑结构设计却并没有在Tahiti身上得到体现。换句话说,Tahiti本身在改进诸多过去错误的同时,本身又带来了新的问题,而Pitcairn的表现则告诉我们这些问题本来是可以避免的……

    难道这就是AMD工程师要表达给我们的“灵魂的力量”么?不仅我,相信屏幕前的诸位同样不会相信也无法接受这一点。那么,究竟Tahiti与Pitcairn在深层构架性能层面有着怎样的异同?Tahiti遗失了哪些Pitcairn乃至整个GCN构架应该具备的特质呢?在今天的GPU炼金实验室中,我们将会以直接面向底层的测试方式以及分析,来为你还原真正的HD7900以及HD7800,并为你解答心中的困惑。

   

与设计师的灵魂的再次对话

    ● 与设计师的灵魂的再次对话 

    我们曾经提到过,每一款GPU芯片都是辛勤汗水的结晶,它们凝聚着设计者灵魂的力量。透过GPU芯片的特性以及表现的全面了解,我们可以从不同角度体会到设计师在设计芯片时的想法以及希望表达的意图。

    要想掌握Tahiti以及Pitcairn在逻辑结构上的差异所带来的影响,我们必须避开图形过程其他步骤所带来的各种干扰,收集到“纯净”的Tahiti以及Pitcairn构架的底层性能,只有这样才能直达AMD工程师的内心深处。

    图形处理的本质其实就是GPU各单元对各种数学过程进行执行的集合,常规的图形化测试方法之所以无法避开各种干扰,是因为它们大多拘泥于“图形化”的形式当中,无论测试过程还是结果都包含在了一个完整的图形化处理和输出过程中。比如说要测试材质填充率,我们必须经历完整的几何处理、光栅化、像素处理、材质填充以及输出过程,这让常规图形测试的几何关联达到了对结果来说无法忽略的地步。所以,只要绕开这层几何关联,直接测试构架底层单元执行对应数学过程的能力,就可以避开其他单元以及图形化本身对测试的干扰了。

    GPCBenchmark是一款基于Open CL的GPU通用性能测试软件,它不仅使用最为通用的函数库及API接口进行编写,并未对任何构架进行针对性的优化,所有测试更基于从图形过程以及通用计算过程中抽离出来的数学过程,能够进行我们所期望获得的,能够绕开几何关联和图形化过程的特定底层硬件纯执行能力测试。通过该款软件,我们不仅可以直接读取许多底层构架信息,更能获得构架最真实的特性。

    有了合适的测试手段,我们便可以通过“纯净”的构架底层性能来面对和对比构架内部甚至不同构架之间的诸多有用信息,比如吞吐能力、shader应对能力或者材质处理能力等等,并由此定性的推定出构架的单元复用率以及效率状况,进而对性能表现进行更深层次的解读。

    我们曾经多次提到过,DirectX 11时代对于构架效率的对比,实际上就是对构架单元复用率的对比,因此今天我们关于Tahiti以及Pitcairn构架效率的测试,同样也要围绕着与复用率相关的测试步骤,包括矩阵乘法、矩阵转置、并行规约、亮度直方图局域存储器原子操作以及二维卷积。最终,我们同样也会通过战地3游戏来完成我们对构架数学应对能力,也就是背后的单元复用率测试的检验。

   

测试平台及测试项目简介

    ● 测试平台及测试项目简介

    性能测试使用的硬件平台由Intel Core i7-3960X、X79 Chipset和4GB*4四通道DDR3-1600内存构成。细节及软件 环境设定见下表:

测 试 平 台 硬 件


中央处理器
Intel Core i7-3960X
(6核 / 12线程 / 100MHz*33 /
15MB L3 Cache )

散热器
Intel RTS2011LC
(原厂水冷散热器 / 选配件 )

内存模组
Samsung 黑武士 DDR3-1600 4GB
(SPD:9-9-9-24-1T)

主板
ASUS Rampage IV Extreme
(Intel X79 Chipset)

硬盘
Hitachi 1T
(1TB / 7200RPM / 16M缓存 /
50GB NTFS系统

电源供应器
NERMAX 白金冰核 1500W
(CSCI Platinum 80Plus / 1500W)

显示器
DELL UltraSharp 3008WFP
(30英寸LCD / 2560*1600分辨率)

    为保证系统平台具有最佳的稳定性,此次硬件评测中所使用的操作系统均为Microsoft Windows 7 正版授权产品。使用Windows 7正版软件能够获得最好的兼容性以及系统升级更新服务。

    用户在体验或购买安装Windows 7的操作系统时请认准所装系统是否已经获得正版授权许可!未经授权的非正版软件将无法获得包括更新等功能在内的Windows 7服务。

操 作 系 统 及 驱 动

操作系统
Microsoft Windows 7
Ultimate RTM SP1
(64bit / 版本号7601)

主板芯片组驱动
Intel Chipset Device Software
for Win7
(WHQL / 版本号 9.2.3.1022)

AMD 显卡驱动
AMD Catalsyt
(Beta / 版本号 8.95.5 RC)

桌面环境

2560*1600_32bit 60Hz

    我们采用GPCBenchmark 1.1以及战地3进行本次测试的数据收集,各项数值越高越好。为保证测试组别具有尽可能相同的外部存储环境,我们决定将HD7950的显存频率调至与HD7970相同的5500MHz,HD7870与HD7850则运行在相同的默认公版显存频率上。在该环境下,HD7970/HD7950以及HD7870/HD7850将拥有完全相同的各自组别带宽,之间的差异将只局限于CU单元的规模。

   

shader灵活度测试:矩阵乘法

    ● shader灵活度测试:矩阵乘法

    矩阵乘法是线性代数的基本构成之一,它是各种通用计算以及shader处理过程中非常常见的数学操作方式,矩阵乘法的过程可以将许多非常复杂的模型转换成相对简单的表现形式,因此被广泛应用在了光栅化(坐标变换)、光照(亮度直方操作)、阴影边缘平滑(针对像素块的切比雪夫不等式群)等几乎所有图形处理过程中。可以说只要进行图形处理过程,GPU就必定会进行大量的矩阵乘法操作。

    矩阵乘法可以被解离成大量的存在一阶或者多阶弱关联度的行列式运算,并行化的处理这些行列式,同时为操作过程提供合理的缓冲空间来释放临时结果势必会极大地加快矩阵乘法操作的效率,进而加快整个图形过程的进度。因此,对于矩阵乘法效率的测试,不仅可以让我们获得构架并行度以及缓冲资源情况的信息,更能在趋势上反映GPU执行shader尤其是灵活shader的执行效率。所以,无论是之前已经进行过的HD7970/7950效能测试还是本次的GCN体系对比测试,我们都将矩阵乘法测试作为构架延展测试的第一个项目,通过它将Tahiti以及Pitcairn构架的ALU团簇部分剥离出来进行专门的性能测试。

    矩阵乘法需要构架拥有良好的线程仲裁分配机制以及充足的缓冲体系,而这正是Tahiti构架与Pitcairn,甚至是Tahiti构架内部最核心的差异。Tahiti与Pitcairn同样拥有2组并行的ACE引擎,同样的2组ACE引擎在HD7970上需要应对32组CU共计2048个Vector ALU的需求,HD7950的运算单元规模比HD7970缩减了12.5%,所以同样的2组ACE引擎在一级线程队列仲裁及管理压力方面也要低于HD7970。HD7870及HD7850的ACE引擎与HD7900并无区别,但同样的2组ACE引擎在Pitcairn中只需要管理20/16组CU,合计1280/1024个Vector ALU。不难看出,HD7800的CU可以轻松的获得比HD7900更加充盈的线程块供给,这对于提升单元复用率有着极大的贡献。

    测试结果支撑了我们的分析,尽管Pitcairn的运算规模只有Tahiti的62.5%,但HD7800却取得了超越HD7900的矩阵乘法性能,同时并完全没有表现出HD7900资源匮乏从而重度依赖驱动优化所导致的矩阵操作性能起伏问题。而在Tahiti构架内部,HD7950亦表现出了优于HD7970的性能增长趋势。

   

shader灵活度测试:矩阵转置

    ● shader灵活度测试:矩阵转置

    矩阵转置同矩阵乘法一样,也广泛分布在包括坐标变换等过程在内的大量图形处理过程中。矩阵转置可以被理解成矩阵沿特定方向“翻转”之后产生的镜像,这导致了矩阵转置操作会涉及到大量数据,比如稀疏矩阵的对角线数据等的临时存储,因此矩阵转置操作对于体系的缓冲密度是相当敏感的。

    同矩阵乘法一样,伴随着频率的不断提升,HD7950的矩阵转置性能提升速度较之HD7970要高出许多,两者之间的性能差异在迅速的收窄甚至趋同。由于矩阵转置的操作过程较之矩阵乘法更加“规整”,能够产生瞬间高延迟的因素较少,因此矩阵转置测试所得的趋势也更加明显和直观。

    由于矩阵转置对缓冲体系的敏感,缓冲密度相同但总量更少的Pitcairn在这项测试中遇到了不小的问题,不足以应对测试需求的缓冲体系导致了大量的访存过程,这直接拖累HD7800的矩阵转置性能。这个过程在Tahiti中同样存在,但拥有巨大显存带宽的HD7900系列成功的以更好的显存性能应对了缓冲溢出的问题。sweet spot级的HD7800并不具备旗舰级的384bit显存位宽,因此只能接受150G显存带宽带来的测试结果。

   

shader吞吐能力测试:并行归约

    ● shader吞吐能力测试:并行归约

    为了全面的反应Tahiti构架的特性,同时证明矩阵乘法以及矩阵转置测试的结果与伴随频率抬升带来的吞吐增加并无直接关系,我们进一步收集了HD7950与HD7970在不同频率下的并行归约执行能力的数据。

    通俗的说,归约是一个以已知问题解法来直接处理未知问题的黑箱化数学方法。比如说我们不知道2的4次方应该怎样计算,但我们知道2X2以及4X4如何计算,那我们就可以把应用中所有的2的4次方操作转变成2X2或者4X4来进行处理。归约操作的本质,就是在已知问题和未知问题之间建立指向和联系,将特定问题转化成已知问题来进行处理,而并行归约操作则将这一过程并行化已达到加快处理速度的目的。

    并行归约操作考验的是构架的并行吞吐能力,只要线程资源充足,体系应该可以以最大化的方式来完成吞吐过程。从测试结果来看,Tahiti与Pitcairn构架在这项测试中取得了相同的趋势,彼此之间也基本上保持了与规模相符的成绩差异。

   

CS等效性能测试:亮度直方图

    ● CS等效性能测试:亮度直方图

    Compute Shader对于DirectX 11的重要性不言而喻,它拥有很多实用的应用方式,快速绘制场景的亮度直方图就是其中之一。无论DirectX还是Open CL,以通用计算方式来完成亮度直方图绘制都需要体系拥有非常优秀的ALU综合性能。这其中不仅有吞吐能力,更有单元复用率所带来的动作效率。因此,我们决定继续收集GPCBenchmark测试的亮度直方图性能,借以了解缓冲密度以及单元复用率的差异对HD7950以及HD7970的图形通用计算性能的影响。

    原子操作能够让线程块凝固并不可再分,因此对吞吐和快速执行能够起到很好的“保护”作用,而缓冲密度又决定了体系在局域存储器内完成原子操作的效率,因此亮度直方图的局域存储器原子操作能够反映体系在吞吐和单元复用率两方面因素共同作用下的实际执行能力,进而检验体系是否具备良好的灵活shader以及Compute Shader的执行能力。

    在亮度直方图的局域存储器原子操作测试中,Tahiti与Pitcairn构架,尤其是HD7950与HD7870的成绩再次“纠缠”在了一起,双方直到900MHz以上的核心频率才算真正的分出了胜负,虽然HD7950凭借更好的缓冲密度和缓冲总量,不仅在高频下甩开了一直紧紧咬住自己的HD7870,甚至最终还战胜了最高级的旗舰HD7970,但联系到其比HD7800大得多的规模,我们实在不能称之为一场精彩的胜利。

   

Texture性能测试:二维卷积

    ● Texture性能测试:二维卷积

    由于Tahiti和Pitcairn拥有相同的几何端、光栅化单元和输出端,CU单元的围观逻辑结构也完全相同,因此CU的总规模就成了两者最主要的区别。我们已经通过测试了解了Tahiti构架CU中ALU团簇部分因线程和缓冲等效密度密度不同而产生的性能差异。接下来我们将要展开的测试,将围绕着CU中的另一个重要组成部分——Texture Array展开。

    我们在之前的文章中提到过,在传统手段中想要单纯测试体系的TMU性能是相当困难的事情。幸运的是,TMU对材质的诸多操作过程,包括抽离材质的颜色信息,将之转化成灰度数据,再将其与顶点数值进行对照并辅以相关的操作等等,本质上就是对像素数据数组的一系列操作。因此GPCBenchmark对于二维卷积性能的测试,可以让我们将TMU性能转化成单纯的TMU动作能力以及与相关缓冲互动能力的测试。

    卷积过程的应用领域极为广泛,其在统计学、概率论、声学研究、以及电子信号处理领域都有广泛的涉及,任何一个存在于世界上受物理学支配的线性系统均包含卷积过程。用TMU单元对卷积过程进行运算,可以考验TMU处理数据类型完全相同的材质过程时的性能,同时还能避开来自几何、光栅化以及输出过程的诸多干扰。

    由于Tahiti构架的Texture cache资源相当丰富,再加上Texture Array的动作方式远比ALU面对shader时要来的规整和平滑,所以HD7900的二维卷积性能相当出色。作为sweet spot登场,Texture Array只有Tahiti一半的Pitcairn虽然因为总量不足而落败,但却凭借更加充盈的线程分配资源获得了更为“平滑”的性能延伸曲线。

   

单元复用率表象:战地3游戏测试

    ● 单元复用率表象:战地3游戏测试

    我们对于构架的底层延展测试,其本质目的其实还是要向大家展现一款GPU对图形过程的执行能力。图形能力是建立在一系列底层单元性能的基础之上的,因此对于底层构架的测试,将有助于我们理解现有的图形测试的结果,并对该款构架即将到来的产品进行一定的预测。

    我们选择DirectX 11游戏战地3作为图形表现的测试对象。基于寒霜2引擎的战地3拥有大量先进的DirectX 11特效,它并没有采用传统游戏以及跨平台游戏以高精度材质来提升画质的方法,而是利用灵活复杂的各种shader,尤其是Compute Shader来快速表达更加真实的光照效果以及环境,借以达到直接提升环境真实度的目的。

    战地3的测试结果向我们说明了许多问题。以HD7950和HD7870为例,前者的运算资源和材质资源比后者大40%,同时拥有大出数十G的显存带宽和更好的缓冲总量,但其低落的线程密度和并不足够的缓冲密度都极大地限制了它的单元复用率,进而制约了其性能的延伸能力。从测试可以看出,只有当频率提升到一定地步之后,Tahiti构架才会透过频率换来的线程密度和缓冲带宽的增长获得更好的单元复用率,进而取得更好的图形性能延伸性。

   

产品级的对决又会怎样呢?

    ● Tahiti,Wicked Game

    与之前我们所进行的HD7970/7950底层构架眼神测试相比,本篇测试无论从测试内容还是结果的解读方面来讲都是有过之而无不及的。我们花费大力气进行测试和数据收集,并将测试结果抽离出来加以解读,其目的无非是想让大家了解什么才是真正的Tahiti构架。我们在开篇就已经说过,只有剥离测试中的其他干扰要素,直达构架底层某个部件的真实性能,我们才能真正了解和理解一款图形构架。现在,我们收集到了足够的数据,但究竟应该怎样看待这些数据呢?

    底层的性能测试,其最终目的还是在于反应并解释实际产品的种种表现。因此通过对默认核心频率下HD7950与HD7870的各项测试数据进行收集,我们成功的获得了产品级的底层构架性能对比情况。从对比状况来看,HD7950以及背后的Tahiti构架被HD7870以及Pitcairn所压迫不仅不冤,而且情况相当不容乐观。

    在于单元复用率/shader灵活度相关的3项测试,包括矩阵乘法、矩阵转置以及亮度直方图的局域存储器原子操作测试中,HD7950除了以我们为对比HD7970而调节的264G显存带宽所换来的访存优势完成了矩阵转置的超越之外,另外两项测试均败给了默认频率的HD7870,尤其是对应Compute Shader性能的亮度直方图测试结果相当值得关注。而可以等效规整Shader吞吐能力的并行规约测试中,默认核心频率的HD7950依旧败给了HD7870。可以说与shader相关的所有测试,HD7950基本上都输给了比他小3成的HD7870。

    以产品而言,在这样的底层测试结果下竟然还能取得10%的游戏性能领先,我们除了感慨巨大的材质差异消弭了shader部分的领先之外,就只有替Tahiti构架捏上一把汗了。

   

HD7900,一场危险的游戏

    ● Tahiti is a Wicked Game

    Pitcairn向我们展现了一个几乎完美的GCN体系构架,同时也将Tahiti的问题一并摆在了我们的面前。相比于Tahiti,同样基于GCN体系且拥有双ACE的Pitcairn拥有高出许多的等效线程密度,单元复用率以及由此带来的相当不错的shader性能。它以小得多的规模和功耗,实现了远远超过Tahiti的性能密度和延展性。如果不是总规模限制带来的材质资源不足,HD7800的绝对性能甚至应该可以完全追上甚至超越HD7970,因此能够拥有现在这样向上压迫HD7950的表现,自然也就不足为奇了。

    那么,我们的问题就来了——既然Pitcairn无论运算还是图形效率都明显要好于Tahiti,AMD为什么不以Pitcairn为基础维持比例对其进行放大,而是弄出了Tahiti这样一个存在效率问题,无论等效线程密度还是等效缓冲密度都不出众的旗舰级构架呢?今天这样的测试结果我们可以收集到,AMD性能实验室同样也可以收集到而且应该做的更好,我们甚至敢断言它们在构架凝固之前的模拟阶段就应该已经获得了与我们测试类似的结果,但它们却为何没有对Tahiti构架提出任何有效的预警或者干预呢?

    对HPC市场的渴望,D线,胜利工程,这三者以及更多其它问题的共同作用,导致了今天我们所见到的Tahiti的状态。

    基于GPGPU应用的HPC市场一直是AMD可望而不可及的,无论R600、R700、Evengreen还是Cayman,它们身上都有太多不适合HPC应用的构架级问题。因此在Tahiti研制之初,AMD便致力于修补来自通用计算性能和效率层面的诸多既往设计缺陷。但这种认知依旧没有脱离AMD对原教旨GPGPU理解的失当。AMD对HPC市场较为敏感的双精度参数的盲从,将Tahiti拖入了晶体管消耗的漩涡之中。在D线的压力下,AMD手上能够支配的芯片面积以及晶体管数量并不富裕,这部分晶体管还要被拿来满足更倾向于宣传的DP吞吐数据,这直接导致了Tahiti构架没有了可以用来扩充缓冲资源以及ACE等线程密度和并行度相关的资本,进而造就了如今HD7900尤其是HD7970那无法令人满意的单元复用率和绝对性能。

    具体来说,如果维持双ACE以及目前的缓冲密度不变,Tahiti完全可以以1536个Vector ALU的规模来换取更好的线程和缓冲密度,但这并不利于平衡吞吐尤其是DP吞吐与频率/良率之间的关系,D线的横亘又让AMD失去了在维持2048 Vector ALU以及1/4 DP性能目标的前提下实现四ACE并行以及使用更大容量缓冲的可能。所以,Tahiti只得在构架上选择优先达成吞吐目标,进而也就只得接受较低的线程密度以及并不令人满意的单元复用率了。

    在此基础上,AMD性能实验室并未对其所面对的各种搭配失当的问题作出必要的预警和干预,由于罗瑞德主推的胜利工程,包括Godfrey Cheng(All In Wonder显卡之父,AMD性能实验室主管)在内的诸多高管以及员工的离职影响了AMD性能实验室的运作,这使得了AMD的构架决策团队失去了重要的参考依据。于是,我们所见到的Tahiti也就成了今天的样子,充满了改进以及对未来的美好憧憬,但却带来了更多全新的麻烦和错误……

    Wicked Game可以被翻译成带有“暧昧”意味的危险游戏,用这个词来形容Tahiti以及目前正在热切宣传本质上其实并不出众通用计算能力的AMD,应该是比较恰当的。Tahiti的图形性能以及运算性能都没有想象中那样优秀,无论对于HPC市场还是民用显示市场来说,其并不算高的单元复用率以及效率都让AMD目前的宣传和运作有了成为双刃剑的可能。

    对于底层构架乃至公司运作过程的剖析看似与常规用户非常遥远,但正是这种剖析为我们提供了更多寻找优秀的或者更加适合我们的显卡产品的依据。以目前的情况来看,HD7800显然对大多数人来说都是更值得选择的产品。Pitcairn提供的优秀基础令其拥有了GCN体系中最佳的性能密度和效率,它的性价比、性能规模比以及性能功耗比均远高于HD7900系列,其默认绝对性能更是可以对HD7950造成极大的压迫。不管这种压迫因何而起,从产品的角度出发来看,HD7800都是一款更优秀的显卡。我们期待AMD能够尽快将HD7800的售价调整到适宜它的位置,这不仅对消费者更加有利,同时也可以带来更好的芯片出货量,是一个双赢的优秀选择。

广告联系:010-82755684 | 010-82755685 手机版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影时代网 版权所有 关于投影时代 | 联系我们 | 欢迎来稿 | 网站地图
返回首页 网友评论 返回顶部 建议反馈
快速评论
验证码: 看不清?点一下
发表评论