MCPLive > 杂志文章 > 没有想不到 趣味分析和预测GPU的发展

没有想不到 趣味分析和预测GPU的发展

2012-01-05coolmusic《微型计算机》2011年12月上

分析结果,验证成绩

图3中的回归曲线的斜率表示通过换算,能从理论的单精度计算能力来推测显卡的实际性能,利用这些信息以及显卡本身已知的单精度浮点性能,笔者可以大概推测出其它类似架构的GPU性能。根据图3,NVIDIA显卡的单精度浮点性能和3DMark Vantage GPU成绩的换算系数大概是14.14,AMD的大约是6.31,这也是两条回归曲线的实际斜率数值。斜率意义重大,如果这个模型是准确的话,只要将显卡的单精度浮点性能除以斜率,就大概知道显卡的3DMark Vantage GPU测试成绩。

为了评估这两条预测曲线的精度, 笔者将模型与几个用于桌面GPU实际的性能进行比较。不过在原始数据中,有关桌面GPU的信息很少,因此导致在选择显卡并进行对比时, 受到了比较大的局限。不过终还是找到了7个可以用于比较的数据, 其中五个数据来自NVIDIA,另外两个数据来自AMD。从表1来看,图3的回归曲线的精确度还是很高的。尤其是在NVIDIA的GPU上,绝大多数的NVIDIA GPU产品的误差范围都在3%以内,大误差出现在GeForce GTX 460,达到了+7%,意味着其性能表现比预计的更好。但是在AMD产品中,回归曲线出现了一定的预测误差,例如Radeon HD 5850的误差在-6%左右,而Radeon HD 4850则达到了-15%左右。由于模型比较简单,这样的结果还是可以接受的。

表1:性能统计

显卡名称 单精度浮 点能力 预测性能 实际性能
GeForce GTX 580 1581 22351 23179 -3.57%
GeForce GTX 570 1405 19867 20620 -3.64%
GeForce GTX 470 1089 15390 15189 1.32%
GeForce GTX 460 907 12825 11994 6.93%
Radeon HD 5850 2088 13171 14028 -6.11%
Radeon HD 4850 1000 6308 7436 -15.17%

用户也可以根据斜率来进一步使用单精度浮点性能,来预测任意GPU的3DMark Vantage GPU分数(必须是DirectX 10的显卡),然后和实际的3DMark Vantage GPU分数进行对比,并比较误差。下面是两个计算公式:

NVIDIA显卡的3DMark Vantage GPU分数=GPU单精度浮点性能×14.14

AMD显卡的3DMark VantageGPU分数=GPU单精度浮点性能×6.31

由于该模型的预测结果不错,接下来笔者会进一步进行一些处理,将文章开篇的模型公式重新变化、调整,并加入峰值性能的概念后,得到下列公式:

图形性能=流处理器数量×频率×IPC/指令数目=峰值单精度浮点性能×斜率

将这个公式变化一下,又可以得到两个公式,分别是:

IPC/指令数目=峰值IPC×斜率

斜率=IPC/(峰值IPC×指令数目)=有效核心数量/指令数

经过公式的转换和变形后,从终斜率来看(图5、图6),可以得到AMD和NVIDIA在GPU内核架构设计上的差异性。一般说来,GPU的峰值单精度浮点速度是由Shader Core的数量乘以频率再乘以IPC峰值得到的,峰值和实际效能的差距则代表了AMD和NVIDIA在驱动设计和架构设计方面的差距和不同——NVIDIA回归曲线的斜率大约是AMD的2.2倍,这意味着NVIDIA架构的效率也达到了AMD架构的2.2倍。请注意,这只是理论上的,并非表示在实际游戏中也有这样的差异。或许这也从侧面证明了为什么AMD要对传统的VLIW 5架构作出重大调整(变更为VLIW4),并终将其抛弃开发了全新的NGC(AMD下一代GPU核心)。

数学模型还能做什么?

通过数据对比可以发现,3DMark Vantage性能和单精度浮点性能实际上能够很好地代表GPU微架构的性能。本文的两条回归曲线展示了GPU发展中大致应该达到的性能方向,如果要预测未来几年的GPU发展情况,在架构没有特别巨大改动的情况下,直接延伸曲线就能得到未来GPU的性能。不过众所周知的是,AMD下一代产品将改变架构,但NVIDIA的“开普勒”应该还会延续目前的Fermi架构,因此NVIDIA的斜率可以较为准确地预测未来“开普勒”架构下那些“正常”产品的性能结果(不包含过度阉割,如显存频率、位宽、GPU频率的产品)。而对于AMD下一代产品来说,目前的斜率可能无法较为精确地预测性能。

当然,回归曲线的结果还可以得到另外一个结论,那就是目前市场上大部分GPU的周边配置——包括为每款GPU配置的显存位宽、驱动程序、频率等,都为GPU本身的性能作出了优化,否则很难有如此相当完整的曲线出现。而一些离曲线较远或者偏差较大的产品,无法准确推测出原因,因为笔者的模型较为简单,涉及的参数并不多。但是可以确定的是,这类距离曲线较远的产品要么性价比特别高,性能出色,要么就是由于显存位宽和频率等问题,导致性能不佳,不值得购买。

同理,你还可以建立某类其他测试和单精度浮点性能之间的关系,唯一需要关注的是这些不同的负载或许将表示GPU在不同类型应用下的性能。3DMark Vantage和3DMark 11的侧重点就不一样,而一些专业的软件如SPECviewperf这样使用OpenGL的软件又会带来更多样化的结果(图4)。

不同的基准软件会带来不同的预测趋势结果,玩家可以建立自己的预测模型并利用回归曲线来分析。比如使用较新的3DMark 11来考察有关DirectX 11的应用。
不同的基准软件会带来不同的预测趋势结果,玩家可以建立自己的预测模型并利用回归曲线来分析。比如使用较新的3DMark 11来考察有关DirectX 11的应用。(图4)

进一步扩展后,测试模型也可以用来比较不同微架构产品以及架构调整是如何影响GPU性能的。举例来说,对AMD的Cayman来说,随着大量测试数据的出现,可以建立一个不错的模型,用于和上代甚至下一代的GPU产品进行对比,从而从图形上明确展示出这些微架构的不同。NVIDIA方面,它的数据显得更为“整齐”一些,显示出NVIDIA在GPU方面良好的发展规划和架构潜力。

显存带宽和GPU性能的关系

下面,我们来看看显存带宽和GPU性能的关系。从图5和图6来看,虽然AMD显卡的数据点的分散度比较高,但相比之下,NVIDIA显卡的偏离更为奇怪一些。这意味着,单精度浮点性能往往并不意味着更高的性能。比如AMD的某两款产品,GPU本身单精度计算性能高达432GFLOP/s和422GFLOP/s,相当接近,但终的3DMark Vantage成绩前者只有2552分,而后者却有3463分,性能提高了36%。这种情况在NVIDIA显卡上显得更为普遍,三款显卡都拥有理论192GFLOP/s的吞吐量,但性能分别是3700分、3374分和2527分,大差距达到了46%。

这是AMD和NVIDIA显卡的3DMark Vantage GPU性能以及单精度浮点性能的散点图,已经画好了回归曲线,并且这两张图的坐标轴采用了等差数列,比较符合观察习惯。
图5

这是AMD和NVIDIA显卡的3DMark Vantage GPU性能以及单精度浮点性能的散点图,已经画好了回归曲线,并且这两张图的坐标轴采用了等差数列,比较符合观察习惯。
这是AMD和NVIDIA显卡的3DMark Vantage GPU性能以及单精度浮点性能的散点图,已经画好了回归曲线,并且这两张图的坐标轴采用了等差数列,比较符合观察习惯。(图6

实际上出现这样的原因还是因为GPU的架构造成的。以AMD Cayman为例,流处理器阵列只是GPU的一个基本架构,但其它的一些组件如纹理缓存、采样设计、ROP单元以及显存控制器等固定功能单元(也依赖驱动软件优化)也在显著影响着系统性能。在这些设备中,对GPU系统影响大的还是显存控制器以及相应的显存颗粒。3D图形计算需要高速的显存速度来满足数据传输的需求,因此目前的高端GPU都使用了经过优化过的、专为图形系统设计的GDDR5颗粒来满足对带宽的需求,更便宜的GDDR3或者DDR3已经无法达到要求了。除此之外,ROP单元往往和显存控制器有关系,因此显存带宽的性能也会涉及到类似ROP这样的固定功能硬件。因此,在这种情况下,我们必须加入对显存带宽的考虑,需要进一步分析来得到一个初步结果。

表2是15款移动版GPU的详细信息,不过这并不影响分析结果。从表中可以看到,这些数据中涉及了DirectX版本、流处理器数量、频率、显存带宽、显存位宽、3DMark测试成绩等多个数据。笔者将拥有相近的理论单精度浮点性能的显卡分为一组,每组显卡的的终成绩和显存带宽并不相同。其次,从数据可以看出,显存带宽对GPU的性能实际上起着比较重要的作用。比如AMD的Radeon HD 3870和Radeon HD 4670,前者的显存带宽达到了后者的2.12倍,而性能也是后者的136%。

表2:15款显卡的详细信息
表2:15款显卡的详细信息

NVIDIA显卡的情况也比较类似,但显存对NVIDIA显卡的影响比AMD显卡更为显著。比如GeForce 9800M GTS、GeForce GTS 160M和GeForce GT 420M,这三款显卡的理论单精度浮点性能是一样的,都是192GFLOP/s,但由于显存带宽的差异,256bit显存位宽的两款显卡比128bit显卡的性能分别提高了33%和46%。另外一组对比结果也显示,200%的显存带宽能够带来45%的性能提高。这些都显示了GPU核心对显存带宽的渴求度依旧没有彻底满足,显存带宽仍然是GPU性能的瓶颈。不过在低端的GeForce GT 335M和GeForce GT 4200M上,显存带宽增加了接近300%的时候,性能才提升了40%,显然GeForce GT 335M虽然有很高的带宽,但并没有获得与此匹配的GPU性能。这说明,中高端显卡对显存速度的需求更高,相反,中低端产品并不需要特别高的显存速度,这是由GPU核心的性能所决定的。

从上述数据可以看出,显存带宽的增加或者减少能够解释之前性能模型中出现的一些问题。笔者的数据表也证明了显存带宽和GPU性能没有线性关系,性能比例的提升完全决定于GPU架构的性质、性能以及工作负载。对于非常需要显存负载的架构或者那些被显存带宽约束的GPU,提升显存带宽会得到相当明显的性能增幅,反之则并不会有特别明显的结果,甚至可能造成浪费资源。这在实际游戏中表现可能会更为明显一些,对程序设计人员来说,积极利用GPU的缓存也可以降低GPU对显存带宽的需求。根据笔者的分析和前面的一些统计数据,在大部分情况下,提升一倍显存带宽,大约可以带来30%的性能提升。

简单公式,不简单结果

在本文中,笔者利用了一个非常简单的数学模型以及回归分析方法,为GPU建立了一个数学统计模型,并得到了利用单精度浮点性能来粗略估计GPU性能的方法。虽然模型简单甚至粗糙,但实际结果表现却还不错。后,笔者还对另一个影响GPU性能的重要因素——显存带宽进行了单独讨论,也带来了一些比较有实际意义的结果。

实际上,本文的核心重点并非在于指导GPU的未来发展,甚至预测GPU的发展方向。它的意义在于,给出了一种数学方法,指导大家特别是普通玩家如何利用数学来有效构建模型,并建立自己的GPU研究数据库,难度不算高。

分享到:

用户评论

用户名:

密码: