如何仅使用Intel的Pin来测量SPEC CPU2006的实际基准?

时间:2019-06-22 17:52:58

标签: bash benchmarking instrumentation intel-pin

我一直试图在Ubuntu上使用Intel的Pin来制定SPEC CPU2006基准测试。我有一个Pintool,带有一个简单的缓存模拟器,可以计算读写次数。在针对特定基准的“ runspec -nonreportable”命令上运行Pintool时,我得到了所需的数据。但是,不同基准的结果几乎没有差异。我的pintool似乎不是问题,因为它看起来可以在其他应用程序上正常工作。我怀疑结果是由于Pintool对所有工具(包括基准测试的设置)进行了检测。

我以前所做的只是在runspec命令上运行pintool。在使用runspec来减少开销之前,我还尝试过使用“ --action build”和“ --action setup”,但是似乎无论如何都运行相同的设置。我知道SPEC CPU 2006中有监视钩子,可以在开始基准测试之前立即运行其他命令,并且我认为可能会有某种方式可以使用这些钩子,但是我知道如何使用。也许“ monitor_wrapper”挂钩最合适?也许我可以以某种方式掌握pid,并在基准测试开始时将pintool附加到正确的过程中?超级感谢我能得到的任何帮助!

1 个答案:

答案 0 :(得分:1)

您可能只是在检测runspec本身,它在一个流程中运行,该流程创建另一个运行基准测试的流程。您有两种选择:要么让Pin跟随子进程(使用-follow_execv选项),要么在创建Pin时将其直接注入基准测试的进程中(通过使用specinvoke而不是{运行基准测试{1}}。