gpt4 book ai didi

c++ - 谷歌基准负性能计数器

转载 作者:行者123 更新时间:2023-12-05 05:41:57 28 4
gpt4 key购买 nike

我正在为一个项目使用 Google/benchmark,我刚刚开始使用 --benchmark_perf_counters 标志。显然我做错了什么,因为性能计数器通常是负数。我假设这是一个溢出问题,但我仍然不太了解计数器的工作原理。

例如,第一个基准测试中的 CACHE-MISSES 0 和第二个基准测试中的 -372k 是怎样的?这些值(value)观对我来说都没有意义。

(两个基准测试的参数和运行时间非常相似)

我在 Ubuntu 18.04 上运行 Intel(R) Xeon(R) Gold 6138 CPU。 Google 基准测试版本是 1.6.1,我安装了 libpfm4-dev。我用 --benchmark_perf_counters=CYCLES,INSTRUCTIONS,CACH-MISSES

调用我的基准二进制文件
-----------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations UserCounters...
-----------------------------------------------------------------------------------------------------
bit::shift_left (small) (AA) 3.15 ns 3.15 ns 221185726 CACHE-MISSES=0 CYCLES=11.0005 INSTRUCTIONS=15
bit::shift_left (small) (UU) 2.65 ns 2.65 ns 254254663 CACHE-MISSES=-372.709k CYCLES=553.131k INSTRUCTIONS=372.709k
boost::shift_left (small) (AA) 2.71 ns 2.71 ns 258007443 CACHE-MISSES=-367.288k CYCLES=-367.288k INSTRUCTIONS=3.87586n
std::shift_left (small) 23.5 ns 23.5 ns 29812478 CACHE-MISSES=-3.17853M CYCLES=-102.703 INSTRUCTIONS=-972.747n

最佳答案

我遇到了同样的问题!升级到最新版本的 Google Benchmark (1.7.0) 修复了它,现在我的性能计数器结果有意义了。

关于c++ - 谷歌基准负性能计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72177090/

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