【问题标题】:How Stable Should CPU Frequency Be for Benchmarking?CPU频率对于基准测试应该有多稳定?
【发布时间】:2019-12-29 05:19:02
【问题描述】:

注意:问题末尾提供了详尽的系统详细信息。

我正试图让我的开发机器有一个非常稳定的 CPU 频率,以便我可以获得一些线性代数代码的精确基准 - 但是,它仍然显示出显着的频率波动。

我已将缩放调节器设置为performance 模式:

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

我也将所有内容都锁定在C0 状态:

sudo cpupower idle-set -D 0

但是,使用i7z,我仍然观察到 CPU 频率波动 >5%。我非常感谢有关我是否应该采取进一步的步骤将 CPU 频率限制为固定值,或者是否无法获得更精确的频率限制的指导。

附录:

我的处理器是 Intel Core i7-9750H:

cat /proc/cpuinfo | grep 'model name' 
model name  : Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
...

它有 12 个逻辑 CPU 和 6 个物理内核:

lscpu -a -e
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ    MINMHZ
0   0    0      0    0:0:0:0       yes    4500.0000 800.0000
1   0    0      1    1:1:1:0       yes    4500.0000 800.0000
2   0    0      2    2:2:2:0       yes    4500.0000 800.0000
3   0    0      3    3:3:3:0       yes    4500.0000 800.0000
4   0    0      4    4:4:4:0       yes    4500.0000 800.0000
5   0    0      5    5:5:5:0       yes    4500.0000 800.0000
6   0    0      0    0:0:0:0       yes    4500.0000 800.0000
7   0    0      1    1:1:1:0       yes    4500.0000 800.0000
8   0    0      2    2:2:2:0       yes    4500.0000 800.0000
9   0    0      3    3:3:3:0       yes    4500.0000 800.0000
10  0    0      4    4:4:4:0       yes    4500.0000 800.0000
11  0    0      5    5:5:5:0       yes    4500.0000 800.0000

我正在运行 Ubuntu 18.04:

~ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

【问题讨论】:

  • 当您说频率波动时,您的意思是在这种情况下从最大频率下降吗?您是否检查过这不是为了安全而进行热节流的结果?
  • 后退一点。你到底想计时什么,为什么。你的假设正确吗?
  • @Matt 首先,我正在尝试使用一些汇编代码来重现 Agner Fog 的一些指令延迟,然后使用这些数据来调整一些线性代数代码

标签: linux cpu benchmarking microbenchmark


【解决方案1】:

您的帖子中没有提到的一个案例是英特尔的涡轮增压。您可以通过将1 写入/sys/devices/system/cpu/intel_pstate/no_turbo 来禁用它。此设置在 BIOS 中也可用,但我不确定效果是否 100% 等效。

【讨论】:

  • 这行得通 - i7z 报告的频率现在稳定在 1MHz 以内。看起来禁用 turbo 是推荐的基准测试技巧,很高兴知道:llvm.org/docs/Benchmarking.html
猜你喜欢
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 2016-12-25
  • 2023-03-09
  • 2012-10-09
  • 1970-01-01
相关资源
最近更新 更多