nanoBench 使用教程
项目介绍
nanoBench 是一个基于 Linux 的工具,用于在最近的 Intel 和 AMD x86 CPU 上运行小型微基准测试。它通过用户空间变体(nanoBench.sh)和内核模块(kernel-nanoBench.sh)的包装脚本来实现。对于内核模块,还提供了一个 Python 包装器:kernelNanoBench.py。为了获得可重复的结果,可以禁用超线程,这可以通过 disable-HT.sh 脚本来完成。
项目快速启动
用户空间版本安装
sudo apt install msr-tools
git clone https://github.com/andreas-abel/nanoBench.git
cd nanoBench
make user
内核模块安装
sudo apt install python3 python3-pip
pip3 install plotly
git clone https://github.com/andreas-abel/nanoBench.git
cd nanoBench
make kernel
sudo insmod kernel/nb.ko # 每次重启后都需要运行
使用示例
以下命令将在 Skylake 系统上基准测试汇编代码序列 "ADD RAX, RBX; ADD RBX, RAX":
sudo ./nanoBench.sh -asm "ADD RAX, RBX; ADD RBX, RAX" -config configs/cfg_Skylake_common.txt
应用案例和最佳实践
禁用超线程
为了获得可重复的结果,可以禁用超线程:
./disable-HT.sh
基准测试示例
以下是一个基准测试示例,测试 ADD 指令:
sudo ./nanoBench.sh -asm "ADD RAX, RBX; ADD RBX, RAX" -config configs/cfg_Skylake_common.txt
输出类似于:
CORE_CYCLES: 2.00
INST_RETIRED: 2.00
UOPS_ISSUED: 2.00
UOPS_EXECUTED: 2.00
UOPS_DISPATCHED_PORT PORT_0: 0.49
典型生态项目
nanoBench 可以与其他性能分析工具和库结合使用,例如:
- perf: Linux 内核性能事件分析工具。
- Intel VTune Amplifier: 用于性能分析和优化的高级工具。
- AMD uProf: AMD 提供的性能分析工具。
通过结合这些工具,可以更全面地分析和优化系统性能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考