使用Pin生成SPEC2006轨迹的疑问:命令待传入程序的选择困惑
解决SPEC2006下使用Pin工具生成ChampSim轨迹的程序选择问题
我明白你现在卡在找SPEC2006测试程序的可执行文件上了——SPEC套件里的一堆源码文件确实容易让人混淆,但其实我们需要的是编译后的可执行程序,而不是那些cpp或c源码文件。下面一步步给你理清楚怎么找、怎么用:
先理清SPEC2006的目录结构
SPEC2006的每个CPU测试程序(比如bzip2、gcc)都有独立的子目录,通常在spec2006/benchspec/CPU2006/路径下,目录名是类似401.bzip2、403.gcc这种带编号的格式。进入对应程序的目录后,编译好的可执行文件一般藏在build/或者exe/子目录里(具体取决于你的编译配置,常见的是build/<你的平台>/base/,比如build/amd64-linux/base/)。以bzip2为例的具体命令
先找到bzip2的可执行文件,然后必须搭配SPEC提供的标准测试输入参数来运行(不然程序可能无法正常执行生成有效轨迹)。正确的命令示例如下:pin -t obj-intel64/champsim_tracer.so -- /path/to/spec2006/benchspec/CPU2006/401.bzip2/build/amd64-linux/base/bzip2 /path/to/spec2006/benchspec/CPU2006/401.bzip2/data/ref/input/input.source 10这里的
input.source 10是SPEC为bzip2指定的参考输入和运行参数,保证程序能完整执行并生成可用轨迹。以gcc为例的操作示范
gcc的可执行文件同样在它的build目录下,运行时需要指定SPEC提供的测试源码作为输入,比如:pin -t obj-intel64/champsim_tracer.so -- /path/to/spec2006/benchspec/CPU2006/403.gcc/build/amd64-linux/base/gcc /path/to/spec2006/benchspec/CPU2006/403.gcc/data/ref/input/cccp.i -o cccp.s这里的
cccp.i是测试输入文件,-o cccp.s是gcc的输出参数,完全符合SPEC的测试规范。几个关键注意点
- 先确保你已经编译完SPEC2006测试程序:如果还没编译,得先运行SPEC的build命令,比如
runspec --action build 401.bzip2来生成对应的可执行文件。 - 必须用SPEC的标准输入和参数:直接裸跑可执行文件的话,程序可能会等待用户输入,根本生成不了完整轨迹,甚至直接报错。
- 找不到可执行文件就用搜索:如果不确定具体路径,在测试程序的目录下执行
find . -name "bzip2"或者find . -name "gcc"就能快速定位。
- 先确保你已经编译完SPEC2006测试程序:如果还没编译,得先运行SPEC的build命令,比如
内容的提问来源于stack exchange,提问作者Dhruv Makwana
相关产品推荐
相关产品推荐

