SPEC06 测试软件


体系结构研究中,我们需要一套标准的测试工具来衡量机器的性能,这个机器可以是物理机、也可以是虚拟机,也可以是我们的模拟器。SPEC是业内比较通用的一套测试软件,这一章节主要介绍了SPEC06测试软件的构建方法。

1. 章节目标

下载安装 SPEC2006 测试软件,学会其使用方法

2. SPEC2006 工具介绍

SPEC2006(Standard Performance Evaluation Corporation 2006)是一套广泛使用的基准测试工具,用于评估计算机系统的性能。SPEC是一个非营利性组织,致力于为计算机系统的性能评估提供标准化的基准测试工具。SPEC2006包括多个子测试,分别测量不同方面的性能,如CPU、内存、编译器等。SPEC2006基准测试套件包括两个主要子集:

  • SPECint2006:用于评估整数运算性能,包含了以整型计算为主的12个应用程序。
  • SPECfp2006:用于评估浮点运算性能,包含了以浮点计算为主的17个应用程序。

3. 安装 SPEC2006 准备测试集

解压安装 SPEC CPU2006

1
2
3
4
5
6
7
8
9
# 解压
7z x cpu2006-1.2.iso -o./cpu2006

# 设置文件权限
chmod 755 -R cpu2006

# 安装
cd cpu2006
source shrc

注释掉 $SPEC/install.sh 第 766 行代码,关闭 perl 测试,在一般的 x86 Linux 上可以使用这个方法。

1
2
3
4
5
6
7
8
9
10
--- $SPEC//install.sh.old
+++ $SPEC//install.sh
@@ -763,7 +763,7 @@
testout=runspec-test.${arch}.out
echo "Testing the tools installation (this may take a minute)"
echo
- runspec --test=dots 3>&1 > $testout 2>&1
+ # runspec --test=dots 3>&1 > $testout 2>&1
if [ $? -ne 0 ]; then
errors="${errors}

安装 spectools ,测试安装是否成功

1
2
./install.sh
runspec --version

4. 使用 SPEC 测试生成 run 文件夹

获取 riscv.cfg 放入 $SPEC/config ,修改 ext 为交叉编译器的版本(仅影响 SPEC 中的后缀)

1
2
3
4
5
6
7
8
9
10
11
--- $SPEC/config/riscv.cfg.old
+++ $SPEC/config/riscv.cfg
@@ -83,7 +83,7 @@
ignore_errors = yes
tune = base
basepeak = yes
-ext = riscv
+ext = riscv64-unknown-linux-gnu-13.2.0
output_format = asc,csv,html

# The publicly-accessible PathScale flags file at the URL below works

编译安装测试软件

1
runspec all -c riscv.cfg -i ref -a setup

此时得到的测试集软件都可以在 RISC-V Linux 环境下运行。

4. 章节验收

在 qemu 中运行一个你编译好的 SPEC 测试集软件。