gpt4 book ai didi

c++ - 多部分基准的权重是多少?

转载 作者:太空宇宙 更新时间:2023-11-04 06:45:44 25 4
gpt4 key购买 nike

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

最佳答案

没有通用的权重集。

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

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

为微基准测试选择一组权重完全取决于希望您的数字表示什么,以及您希望它成为哪种工作量的粗略指标。


例如密集的 matmul 通常可以使 FMA 执行单元吞吐量饱和,因为它对 N^2 数据进行 O(N^3) 运算。通过谨慎的缓存阻塞,您可以获得大部分 L1d 缓存命中,并避免每个 FMA 执行超过 1 个 SIMD vector 加载。 DRAM/缓存带宽必须足够高才能跟上,但大多数存储/重新加载都命中 L1d 缓存(当然也必须能够跟上)。

但其他工作负载可能会在内存带宽或延迟上出现瓶颈,并且根本不关心 FPU 吞吐量。例如AMD Ryzen 1 每个时钟可以执行 1 个 128 位 FMA,而英特尔 Haswell 和更高版本可以每个时钟执行 2 个 256 位 FMA。但对于某些其他工作负载,Ryzen 更快或几乎相等。

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

关于c++ - 多部分基准的权重是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58212070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com