ChampSim 技术文档
1. 安装指南
1.1 下载依赖
ChampSim 使用 vcpkg 来管理其依赖项。在本仓库中,vcpkg 作为一个子模块被包含。你可以通过以下命令下载依赖项:
git submodule update --init
vcpkg/bootstrap-vcpkg.sh
vcpkg/vcpkg install
1.2 编译项目
ChampSim 使用 JSON 配置脚本来进行编译。你可以查看 champsim_config.json
文件以获取一个完全指定的示例。所有在该文件中描述的选项都是可选的,如果未指定,将会使用默认值。你也可以在没有输入的情况下运行配置脚本,此时将假设输入文件为空。
$ ./config.sh <configuration file>
$ make
2. 项目使用说明
2.1 下载 DPC-3 跟踪文件
用于第3届数据预取锦标赛(DPC-3)的跟踪文件可以在以下链接找到:DPC-3 跟踪文件。用于第2届缓存替换锦标赛(CRC-2)的跟踪文件可以在以下链接找到:CRC-2 跟踪文件。
这些跟踪文件由 Daniel Jimenez(德克萨斯A&M大学)和 Mike Ferdman(石溪大学)慷慨提供。如果你经常使用 ChampSim,强烈建议你维护自己的跟踪文件库,以防链接失效。
2.2 运行模拟
直接执行二进制文件即可运行模拟:
$ bin/champsim --warmup_instructions 200000000 --simulation_instructions 500000000 ~/path/to/traces/600.perlbench_s-210B.champsimtrace.xz
给定的预热和模拟指令数将是退役的指令数。请注意,模拟结束时打印的统计信息仅包括模拟阶段。
3. 项目API使用文档
3.1 添加自定义分支预测器、数据预取器和替换策略
3.1.1 复制空模板
$ mkdir prefetcher/mypref
$ cp prefetcher/no_l2c/no.cc prefetcher/mypref/mypref.cc
3.1.2 使用你喜欢的文本编辑器编写算法
$ vim prefetcher/mypref/mypref.cc
3.1.3 编译和测试
将你的预取器添加到配置文件中:
{
"L2C": {
"prefetcher": "mypref"
}
}
请注意,示例预取器是一个 L2 预取器。你可以为不同级别设计预取器。
$ ./config.sh <configuration file>
$ make
$ bin/champsim --warmup_instructions 200000000 --simulation_instructions 500000000 600.perlbench_s-210B.champsimtrace.xz
4. 项目安装方式
4.1 克隆 ChampSim 仓库
git clone https://github.com/ChampSim/ChampSim.git
4.2 初始化子模块并安装依赖
git submodule update --init
vcpkg/bootstrap-vcpkg.sh
vcpkg/vcpkg install
4.3 编译项目
$ ./config.sh <configuration file>
$ make
通过以上步骤,你可以成功安装并使用 ChampSim 进行微架构研究。祝你好运,成为冠军!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考