首页资讯科技 计算进入测试领域走近

计算进入测试领域走近

徐昌宇3DMark是大家耳熟能详的显卡和系统游戏性能基准测试软件,一直以来其主要测试内容都偏向图形性能。不过近期3DMark推出了全新的CPU Profile测试模块,专门用于考察CPU性能。这个测试包含哪些内容?它是如何反映CPU性能的?…

计算进入测试领域走近

徐长玉

3DMark是知名的显卡和系统游戏性能基准测试软件,其主要测试内容一直偏向于显卡性能。不过最近3DMark推出了新的CPU Profile测试模块,专门用来考察CPU性能。这个测试包含什么?如何体现CPU性能?以及和CPU日常应用的性能有多大的相关性?本文今天就和大家一起了解一下这些内容。

2014年,独立产品安全认证机构保险商实验室(以下简称UL)收购了Futuremark。收购后,U L宣布将加大对产品性能和测试的投入。然后我们看到3DMark和PCMark家族不仅衍生出了Android、iOS等不同版本,还延伸到了A I推理、照片编辑、视频编辑、VR测试等大量不同类型的测试领域。这次重点介绍一下新推出的CPU ProFi E,它是3D M a rk家族中的第一个测试模块,它的一些算法和测试内容非常有趣,值得探讨。

价值29.99美元的测试模块

目前,3DMark已经成为一个庞大的测试模块组合,UL声称这是一个“适合所有硬件的基准测试”。3DMark有三个版本,其中免费版只包含三个测试模块:Tim eSpy、Night Raid和Fire Strike,内容非常有限。要体验最新的CPU配置文件,用户需要支付29.99美元购买3D Mark的高级版本。该版本包括压力测试模块和五个独立测试功能区的功能测试组合,然后是CPU配置文件,此外还有前面提到的三个测试模块加上P o r tRoyal和Wild Life。第三个版本是面向商业用户的,成本较高,这里就不赘述了。

用户在购买了3DMark的高级版本,安装并运行后,可以在主界面点击“更多测试”来选择自己想要运行的项目,其中就包括本文的主角CPU Profile。不过用户还是需要点击下载安装这个测试模块,才能进行相关测试。

3DMark CPU Profile:如何测量?

在CPU Profile的页面上,可以看到一些简单的解释,比如它提到“每一次CPU Profile测试都是物理计算和自定义模拟的结合。为了避免渲染性能的限制,我们测量每帧的平均模拟时间,而不是帧率。该指标将转换为每次测试的分数”。所以CPU Profile和3DMark中的GPU测试是不一样的。一般GPU测试是考察GPU每秒能输出多少帧,而CPU Profile是考察CPU计算每帧需要多长时间。这个时间会被算法转换成统一的分数。

在测试方法上,CPU Profile包含六个测试项目,测试项目都是一样的,不同的是每次测试启用的CPU线程数量不同。它们支持的C P U线程数是“最大线程数”,分别是当前处理器支持的16个线程、8个线程、4个线程、2个线程和1个线程。其中“最多线程”考察的是处理器的最强性能。如果是16线程的8核CPU,这个测试的结果和16线程测试的结果基本一致。从实际测试情况来看,由于测试内容是固定的,CPU的核和线程越多,测试速度越快,测试分数越高。最慢的是单线程测试,用一个CPU线程渲染所有测试图像需要很长时间。

先来看看CPU Profile的核心测试内容和算法本质。它的测试包含150帧图片,这些图片都来自真实的游戏场景,但都是由CPU而不是任何GPU渲染的。由于CPU相对于G P U的计算规模更小,计算能力更低,画面分辨率大大降低。CPU Profile主要涉及一个名为“Boids”的计算框架,是一个类似鸟的群体。该框架易于并行化,因此更适合研究从单线程到多线程的性能变化。

在计算机科学中,Boi ds-like bird swarm simulation是一种经典算法,主要模拟大量物体的运动,并包含一定的规则。一般来说,B oid s模拟中的每个个体必须遵循三个规则:第一,个体不能脱离群体超过一定距离(不分离);其次,个体的运动模式与群体中的其他单位基本相似(对齐);第三是个体能够充分展现出向群体运动平均位置移动的期望(凝聚力)。三大法则有点拗口。简而言之,我们经常看到的天空中的鸟群空呈现出多变而有规律的运动。个别鸟类不会轻易脱离群体,群体整体运动方向是随机的。

Boids在实际的物理仿真中非常有用。除了鸟,鱼也基本遵循这个运动规律,所以经常被游戏用来模拟鱼的运动。如果对Boids模拟的一些数学参数进行分离、对齐和内聚的调整,还可以精确调整整个群体的运动状态,这也是其受欢迎的重要原因之一。

从模拟计算的角度来看,Boids模拟中的每个个体其实都是独立的,所以可以和其他个体进行并行计算。但是每个个体都需要知道周围的环境以及其他个体的方向和位置,才能准确的给出自己下一步的奔跑方向。这意味着,如果Boids模拟中的个体数量越多,他们需要找到更多的其他个体来影响他们的下一个运动方向和趋势。计算量会变大,这些数据更加复杂,包括不同个体之间的数据,运动趋势等。需要从缓存和内存的多个存储区域多次轮询,而且几乎是随机的,相当考验整个系统的计算能力。

由于Boids仿真的独特性,在很多场合使用,这也使得其源代码有多个版本。但目前Boids仿真大多不使用CPU计算,因为G PU在并行计算上有先天优势,一些个人Boids仿真GPU算法最高可以扩展到65000个单元。在Boids对CPU Profile的模拟中,一半的个体采用SSE3优化指令,另一半采用AVX2优化指令。如果CPU不支持AVX2,就全部用SSE3。

最后,我们来看看测试结果。由于所有测试都只模拟150帧,所以3DMark CPU Profile的总分算法为:总分= 35000/平均帧时间。最终分数报告与上述六项测试相同。CPUProfile将提供六个分数数据,涵盖不同的线程。

测试结果:数据全面且具有“激励性”

运行相关测试后,CPU有多个版本。但目前Boids仿真大多不使用CPU计算,因为G PU在并行计算上有先天优势,一些个人Boids仿真GPU算法最高可以扩展到65000个单元。在Boids对CPU Profile的模拟中,一半的个体采用SSE3优化指令,另一半采用AVX2优化指令。如果CPU不支持AVX2,就全部用SSE3。

个人资料将显示最终的性能结果页面。最上面的页面分为三个部分,左侧是处理器型号。用户可以将自己的CPU与其他也在线使用这种CPU的用户的性能进行比较。中间的六个数据是六次不同测试的结果。测试软件的名称和版本号显示在右侧。还有温度,CPU频率,系统信息等。下面。

考试分数部分很有意思。除了分数,每个测试结果还显示一个灰色和绿色的数据栏。这个数据条的绿色部分是当前处理器的性能,黑色竖条表示同型号所有处理器的性能中值,灰色部分表示用户通过超频可以得到的性能预期,可以视为“激励”部分。

分数中的常数“35000”是怎么来的?根据3DMark的说明,“35000”是“时间常数70ms”乘以“分数常数5000”。如果帧时间为70ms,最终成绩可以得到5000分。其实整个测试分数就是CPU实际完成时间乘以70ms,常数5000的结果。其次,对于游戏,要参考2线程、4线程或8线程(根据官方描述)的性能。如此复杂的机制使得一般用户考察处理器性能的难度加大:用户如何从这些数据中快速选取自己想要的数据来考察最终的游戏性能?如果不详细阅读这篇文章,大部分用户可能无法理解这个测试结果。

其他方面,3DMark CPU Profile做得不错,包括提供了CPU温度、频率、不同测试的详细信息,方便用户对比参考。

关于3DMark CPU Profile的一些问题:真的能反映游戏性能吗?

在了解了测试内容、相关算法和测试结果后,本文对CPU Profile还有一些疑问:这个测试真的能反映CPU在游戏中的表现吗?

根据3D Mar k的描述,CPUProfile测试中不同的线程指的是不同的应用场景。比如1线程是原C P U性能检测;2线程和4线程适用于DOTA 2、CS: GO等DirectX9游戏;Thread 8适合考察DiretcX12游戏中CPU的性能,与3D Mark TimeSpy有关;16线程及以上线程(如果有的话)考察的是计算性能,与游戏无关。

从上面的描述来看,CPU Profile似乎与游戏性能有关,就像3DMark中的其他图形测试项目一样,比如TimeSpy或者Fire Strike测试模块。但重点是,TimeSpy和Fire Strike是真正模拟现实世界游戏运行模式的测试模块,其技术应用和性能呈现与最终游戏性能高度相关。但是在CPU配置文件上,这是值得怀疑的。

事实上,CPU Profile中的CPU测试算法,即Boids模拟,更倾向于底层工作负载模拟,而不是游戏工作负载模拟。在计算负载方面,一般来说,Boids要使CPU的一个线程饱和,至少需要2000个未经优化的个体来模拟这种计算。所以,对于目前高端的8核16线程处理器,如果需要用Boids模拟来填补CPU计算能力,那么在算法优化的情况下,需要尽可能模拟5万~ 10万个个体。在实际的CPU Profile测试中,3DMark并没有给出模拟个体的数量,但目测应该在300左右,显然不能完全填满CPU的计算负荷。另外,目前大部分游戏都没有使用Boids模拟来构建游戏世界。即使使用了类似的模拟,通常也没有与角色的交互。如果有交互的话,那么多个体不会被使用,这也从侧面证明了CPU Profile很大程度上不能反映游戏中CPU的计算。

另外,在测试模式的选择上,CPUProfile选择150帧进行测试,无论CPU有多少线程,都是150帧。这里还有一个问题,就是如果CPU线程很多,支持类似于频率提升的技术,那么对于多核多线程的CPU,CPU Profile很难稳定反映一个处理器的性能。对于这种多核处理器来说,150帧可以在几秒钟内完成,这意味着CPU可以在极短的时间窗口内完成所有的测试——这个时间窗口可以充分提高CPU频率,甚至CPU温度也没有因为时间太短而升高。但在实际游戏运行中,C P U长期处于高负载、高温状态,所以CPU频率要稳定在一个较低且相对较小的范围内,而不是一个很高的Boost频率。这意味着不同的测试条件、散热温度和测试时序都会影响CPU Profile的最终性能,降低了CPU Profile测试结果的可重复性。

3DM官方也回应了这个问题。他们认为设计CPU Profil e的目的是减少测试过程的长度。他们希望CPU Profile中8个线程的测试结果与Time Spy Extreme相关,固定的150帧画面意味着相同的计算量。如果用常见的固定测试时间来检查系统的计算量(CPU Profile是检查计算完成时间的固定计算量),3DMark认为性能差的系统计算量可能太小。但其实没什么意义。对于测试来说,只要稳定,可以反复计算平均值,计算固定时间自然没问题。为什么只设置了150帧?3DMark认为在这个范围内,他们可以保证工作负载在所有CPU线程上平均分配。如果超过这个范围,可能会影响结果的一致性。但实际上,在游戏中,不可能平衡所有线程上的计算负载,这也是CPU Profil E的问题。

所以3DMark CPU配置文件和游戏性能的相关性值得怀疑。从更合理的角度来看,CPU Profile是3DMark建立的模拟机制,可用于游戏性能评测,而不是鉴定游戏中CPU性能的测试工具。毕竟从“模拟机制”到“测试工具”还有很长的路要走。

总的来说,现有版本的3DMark CPU Profile在CPU性能测试中给出了很好的模拟机制,但其使用的算法和测试方法与其想要反映的CPU游戏性能可能仍有差距,分数结构设计也很难直接知道CPU游戏性能。希望UL公司和3DMark开发团队今后注意到这些问题,并有针对性地进行改进。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/61375.html
上一篇重置工艺命名、研发创新技术、迈向代工市场时代英特尔的革新和开放
下一篇 雷蛇梭鱼X问题
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部