多部分基准的权重是多少?

问题描述 投票:0回答:1

我正在为学校项目编写基准。这很简单,但我想知道在现实生活中,各种基准测试所使用的典型权重是多少?例如,如果我要组合一个整数测试,一个缓存测试,一个浮点测试,是否应该在最终的“得分”中对它们进行均等的加权?我的直觉是,对于很多事情而言,缓存测试比原始算术更重要,而对于很多事情而言,RAM速度是一个很大的因素。有共识吗?

c++ c benchmarking
1个回答
0
投票

没有通用的权重集。

不同的实际工作负载具有不同的瓶颈或不同的权重。

没有一个数字可以告诉您计算机的速度。 [可能在现实生活中发生]程序X在计算机A上的运行速度比B更快,但是程序Y在计算机B上的运行速度更快。

例如密集的对象通常可以使FMA执行单元的吞吐量达到饱和,因为它可以对N ^ 2数据进行O(N ^ 3)处理。通过仔细的缓存阻止,您可以获得大部分L1d缓存命中率,并且每个FMA避免进行超过1次SIMD矢量加载。 DRAM /高速缓存带宽必须足够高才能跟上,但是大多数存储/重载都命中L1d高速缓存(当然也必须能够跟上)。

但是其他工作负载可能会成为内存带宽的瓶颈,根本不关心FPU吞吐量。

并且在多核系统上,某些程序是单线程的,并且只关心单核的吞吐量,而其他程序可以很好地扩展并在具有许多慢速内核的计算机上获得很大的加速。或者他们可能关心内核间延迟与聚合内存带宽之间的关系。

© www.soinside.com 2019 - 2024. All rights reserved.