测试平台及测试项目简介 性能测试使用的硬件平台由Intel Core i7-3960X、X79 Chipset和4GB*4四通道DDR3-1600内存构成。细节及软件 环境设定见下表: 我们采用GPCBenchmark 1.1以及战地3进行本次测试的数据收集,各项数值越高越好。为保证测试组别具有尽可能相同的外部存储环境,我们决定将HD7950的显存频率调至与HD7970相同的5500MHz,HD7870与HD7850则运行在相同的默认公版显存频率上。在该环境下,HD7970/HD7950以及HD7870/HD7850将拥有完全相同的各自组别带宽,之间的差异将只局限于CU单元的规模。 shader灵活度测试:矩阵乘法 矩阵乘法是线性代数的基本构成之一,它是各种通用计算以及shader处理过程中非常常见的数学操作方式,矩阵乘法的过程可以将许多非常复杂的模型转换成相对简单的表现形式,因此被广泛应用在了光栅化(坐标变换)、光照(亮度直方操作)、阴影边缘平滑(针对像素块的切比雪夫不等式群)等几乎所有图形处理过程中。可以说只要进行图形处理过程,GPU就必定会进行大量的矩阵乘法操作。
矩阵乘法
矩阵乘法可以被解离成大量的存在一阶或者多阶弱关联度的行列式运算,并行化的处理这些行列式,同时为操作过程提供合理的缓冲空间来释放临时结果势必会极大地加快矩阵乘法操作的效率,进而加快整个图形过程的进度。因此,对于矩阵乘法效率的测试,不仅可以让我们获得构架并行度以及缓冲资源情况的信息,更能在趋势上反映GPU执行shader尤其是灵活shader的执行效率。所以,无论是之前已经进行过的HD7970/7950效能测试还是本次的GCN体系对比测试,我们都将矩阵乘法测试作为构架延展测试的第一个项目,通过它将Tahiti以及Pitcairn构架的ALU团簇部分剥离出来进行专门的性能测试。
Tahiti与Pitcairn构架矩阵乘法测试
矩阵乘法需要构架拥有良好的线程仲裁分配机制以及充足的缓冲体系,而这正是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灵活度测试:矩阵转置 矩阵转置同矩阵乘法一样,也广泛分布在包括坐标变换等过程在内的大量图形处理过程中。矩阵转置可以被理解成矩阵沿特定方向“翻转”之后产生的镜像,这导致了矩阵转置操作会涉及到大量数据,比如稀疏矩阵的对角线数据等的临时存储,因此矩阵转置操作对于体系的缓冲密度是相当敏感的。
矩阵转置操作
同矩阵乘法一样,伴随着频率的不断提升,HD7950的矩阵转置性能提升速度较之HD7970要高出许多,两者之间的性能差异在迅速的收窄甚至趋同。由于矩阵转置的操作过程较之矩阵乘法更加“规整”,能够产生瞬间高延迟的因素较少,因此矩阵转置测试所得的趋势也更加明显和直观。
矩阵转置测试
由于矩阵转置对缓冲体系的敏感,缓冲密度相同但总量更少的Pitcairn在这项测试中遇到了不小的问题,不足以应对测试需求的缓冲体系导致了大量的访存过程,这直接拖累HD7800的矩阵转置性能。这个过程在Tahiti中同样存在,但拥有巨大显存带宽的HD7900系列成功的以更好的显存性能应对了缓冲溢出的问题。sweet spot级的HD7800并不具备旗舰级的384bit显存位宽,因此只能接受150G显存带宽带来的测试结果。 shader吞吐能力测试:并行归约 为了全面的反应Tahiti构架的特性,同时证明矩阵乘法以及矩阵转置测试的结果与伴随频率抬升带来的吞吐增加并无直接关系,我们进一步收集了HD7950与HD7970在不同频率下的并行归约执行能力的数据。
图灵归约(黑箱化)过程
通俗的说,归约是一个以已知问题解法来直接处理未知问题的黑箱化数学方法。比如说我们不知道2的4次方应该怎样计算,但我们知道2X2以及4X4如何计算,那我们就可以把应用中所有的2的4次方操作转变成2X2或者4X4来进行处理。归约操作的本质,就是在已知问题和未知问题之间建立指向和联系,将特定问题转化成已知问题来进行处理,而并行归约操作则将这一过程并行化已达到加快处理速度的目的。
并行规约测试
并行归约操作考验的是构架的并行吞吐能力,只要线程资源充足,体系应该可以以最大化的方式来完成吞吐过程。从测试结果来看,Tahiti与Pitcairn构架在这项测试中取得了相同的趋势,彼此之间也基本上保持了与规模相符的成绩差异。 CS等效性能测试:亮度直方图 Compute Shader对于DirectX 11的重要性不言而喻,它拥有很多实用的应用方式,快速绘制场景的亮度直方图就是其中之一。无论DirectX还是Open CL,以通用计算方式来完成亮度直方图绘制都需要体系拥有非常优秀的ALU综合性能。这其中不仅有吞吐能力,更有单元复用率所带来的动作效率。因此,我们决定继续收集GPCBenchmark测试的亮度直方图性能,借以了解缓冲密度以及单元复用率的差异对HD7950以及HD7970的图形通用计算性能的影响。
亮度和颜色直方图对图像的表征和影响
原子操作能够让线程块凝固并不可再分,因此对吞吐和快速执行能够起到很好的“保护”作用,而缓冲密度又决定了体系在局域存储器内完成原子操作的效率,因此亮度直方图的局域存储器原子操作能够反映体系在吞吐和单元复用率两方面因素共同作用下的实际执行能力,进而检验体系是否具备良好的灵活shader以及Compute Shader的执行能力。
亮度直方图的局域存储器原子操作测试
在亮度直方图的局域存储器原子操作测试中,Tahiti与Pitcairn构架,尤其是HD7950与HD7870的成绩再次“纠缠”在了一起,双方直到900MHz以上的核心频率才算真正的分出了胜负,虽然HD7950凭借更好的缓冲密度和缓冲总量,不仅在高频下甩开了一直紧紧咬住自己的HD7870,甚至最终还战胜了最高级的旗舰HD7970,但联系到其比HD7800大得多的规模,我们实在不能称之为一场精彩的胜利。
|