gpt4 book ai didi

intel - perf_event_open 和 PERF_COUNT_HW_INSTRUCTIONS

转载 作者:行者123 更新时间:2023-12-04 10:50:04 24 4
gpt4 key购买 nike

我正在尝试分析具有相当复杂结构的现有应用程序。现在我正在使用 perf_event_open和需要的 ioctl呼吁启用我感兴趣的事件。
manpage保持不变 PERF_COUNT_HW_INSTRUCTIONS应该小心使用 - 所以在 Skylake 的情况下应该首选哪一个处理器?也许是特定的 Intel PMU ?

最佳答案

perf_event_open 联机帮助页 http://man7.org/linux/man-pages/man2/perf_event_open.2.html
说到 PERF_COUNT_HW_INSTRUCTIONS:

PERF_COUNT_HW_INSTRUCTIONS Retired instructions. Be careful, these can be affected by various issues, most notably hardware interrupt counts.



我认为这意味着可以使用 COUNT_HW_INSTRUCTIONS(并且几乎所有地方都支持它)。但是由于中断或其他逻辑的噪声,某些代码片段的 COUNT_HW_INSTRUCTIONS 的确切值在多次运行中可能略有不同。

因此在大多数 CPU 上使用事件 PERF_COUNT_HW_INSTRUCTIONS 和 PERF_COUNT_HW_CPU_CYCLES 是安全的。 Linux 内核中的 perf_events 子系统会将 COUNT_HW_CPU_CYCLES 映射到一些更适合当前使用的 CPU 及其 PMU 的原始事件。

根据您的目标,您应该尝试获取有关代码片段的 PERF_COUNT_HW_INSTRUCTIONS 值的一些统计信息。您还可以通过多次运行 perf stat 来检查此计数器的稳定性。用一些简单的程序:
perf stat -e cycles:u,instructions:u /bin/echo 123
perf stat -e cycles:u,instructions:u /bin/echo 123
perf stat -e cycles:u,instructions:u /bin/echo 123

或者使用 perf stat 的集成重复功能:
perf stat --repeat 10 -e cycles:u,instructions:u /bin/echo 123

对于总共执行的 20 万条指令,我有 +-10 条指令事件变化(小于 0.1%),因此非常稳定。对于周期我有 5% 的变化,所以它应该是带有小心警告标记的周期事件。

关于intel - perf_event_open 和 PERF_COUNT_HW_INSTRUCTIONS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59528508/

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