Futuremark解释DX12 TimeSpy测试:异步运算一视同仁,无特定优化
Futuremark前不久发布了3DMark最新版,最主要的内容是新增了Time Spy测试,这是继单独的Overhead测试之后3DMark首次正式支持DX12 API测试,也是目前为数不多的DX12基准测试软件。TimeSpy针对DX12而生,支持了很多新技术,但在异步运算支持上,有玩家指责3DMark测试中异步运算占比太少,大大低于游戏中应有的水平,认为这在某种程度上帮了异步运算支持不足的NVIDIA,进而对AMD不公平。对于这个问题,3DMark开发者Futuremark也公开回应称他们的开发遵循了严格的流程,对所有硬件厂商都是一视同仁,并没有特定的优化。
争议的起源可以参考我们之前的新闻,简单来说就是TimeSpy测试中异步运算占的比例是10-20%,这个比例要比很多支持异步运算的游戏中占比低得多,DOOM游戏中异步运算占比超过40%,奇点灰烬中异步运算占比超过90%。本来这个占比不是问题,但AMD、NVIDIA两家的GPU在异步运算上支持不同,AMD占优,NVIDIA相对落后,所以很多人认为TimeSpy的异步运算占比是有倾向性的,无形中帮助了NVIDIA一把。
作为一款基准测试软件来说,公正性是他们生存的根基,一旦有人质疑这个问题,对测试软件来说这种负面影响是致命性的,早前3DMark测试软件也多次受到过类似的质疑,包括3DMark Vantgae支持NVIDIA的PhysX加速,不过当时官方的处理方式是把PhysX作为独立选项,总分算在CPU上而非GPU上。此后的3DMARK 11测试中,物理引擎又转向了独立的Bullet,但因为AMD赞助、支持过该引擎,也同样引起过争议,只不过没有PhysX加速这么大而已。
这次TimeSpy的异步运算支持又引发了一波质疑,Futuremark官方今天也发长文解释了TimeSpy测试中的异步运算问题,并向外界解释了他们的开发过程及原则,值得一读。
基准测试软件的开发过程
Futuremark表示,每次推出新的测试软件之前,他们都会跟业内领先的公司进行合作,包括AMD、Intel、NVIDIA、微软以及其他公司,他们都是该公司BDP平台(Benchmark Development Program,评测开发项目)的合作伙伴。
这次的Time Spy测试开发了将近2年时间了,BDP成员从一开始就参与进来了,他们会在每个开发阶段都收到Futuremark的常规软件Build并组织自己的评估及测试。这些公司有权读取源码并提出自己的改进建议以确保结果是正确的。
要注意的是,所有成员都在一个源码树下面,这意味着任何一家厂商的任何建议、改动都被会其他公司看到、评价,最后所有成员都同意最终的版本之后,他们的软件才会对外公开及发布。
在3DMark这么多年的发展中,TimeSpy测试很可能是合作伙伴中监督最严格的一版,每家供应商都有员工与Futuremark的工程师花费了数周时间来完善测试,他们提供的每日源码被下载了数百次,从厂商那边得到的反馈邮件也上千封了,每个细节都被讨论到了。
如果有厂商的观点冲突,Futuremark也会听取各方意见,并检视他们提供的支持数据。此外,Futuremark还会跟游戏开发者做讨论交流,一旦应用某些技术,他们会问“这是游戏开发者会采取的行动吗?”,特别是要考虑性能上的提升是否对得上开发者付出的时间。
Futuremark还重点谈到了他们的开发原则,为了确保测试软件的公正性及可比性,他们要对所有硬件平台都一视同仁,每个设备都要使用相同的代码路径运行同样的工作负载。
过去Futuremark考虑过针对特定平台做针对性优化,但他们的合作伙伴全都反对这个意见。在大多数情况下,激进的优化路径意味着需要改变工作量,但也这意味着测试结果失去了通用性参考意义。如果有了针对某个架构的优化,不仅是测试结果没有可比性,一旦有新架构发布,之前的优化也失去了意义。
3DMark的测试基于所有硬件的深度优化,与硬件厂商合作的路径可以确保他们的引擎在现有硬件上尽可能高效运行,如果没有硬件厂商的参与及支持,这是不可能的。
3Mark致力于评测游戏的性能,要实现这个目标,它需要预测针对某个厂商或者所有重度优化的游戏性能。但有些游戏(的倾向性)是不可知的。
3DMark不是一个能测试硬件理论最高性能的工具。
全文的重点其实是解释TimeSpy在异步运算上的应用过程,不过这部分技术内容对大众来说太枯燥了,非专业人士了解了技术原理其实也无法解释它被质疑的问题关键——因为这根本不是技术问题,只是一个选择问题,因为AMD、NVIDIA在异步运算上出现了分歧,并各有自己的游戏开发商支持,而3DMark作为基准测试软件,单纯地偏向哪一方都会被指责。
综观全文,Futuremark强调他们的TimeSpy测试是跟所有BDP合作伙伴——AMD、Intel、NVIDIA及微软等联合合作的结果,运行的代码在不同硬件上都是一样的,为了确保测试结果在不同硬件上都是可比的,TimeSpy并没有任何针对特定平台的优化。
Futuremark实际上把这个黑锅甩会给厂商——他们表示计算队列是并行处理还是串行处理并不是测试软件决定的,而是驱动程序决定的。在DX12中,只要把对象放入应用程序中不同的队列就能让程序并行处理——这不是什么特殊要求,也不是什么输入什么命令的特殊方法,它本来就是这么设计的,它类似传统CPU多线程处理——只要创建允许的线程,然后就能并行处理了,这是OS系统决定如何分配工作的。
Futuremark强调测试软件必须公平、公正以及无偏向,他们的测试软件都是跟BDP平台的硬件、软件厂商合作的,并且通过了政府的公平及中立性审查,这些都确保了测试软件的精确、中立、及公平。
如果还有谁有任何疑问,Futuremark表示可以联系他们的工程师,邮箱是jani.joki@ul.com,他们乐意回复大家的任何质疑。
关注超能网微信公众号exp2006,原创科技资讯精彩不断。