一、一些使用经验
1.先运行shrc来准备测试环境的准备,然后执行runspec命令来实际开始基准测试。
2. runsepc命令语法为:runspec [options] [list of benchmarks to run]
3.如果生成有效的报告,则需要跑int, fp, 或者 all(就包括int、fp);否则,你也可以随意选择一个自己想跑的benchmark。
4. 配置文件中(文件名中),rate和speed的区别:rate是系统的能达到的总体能力的衡量;speed是系统完成一个任务的速度的衡量。默认值就是使用rate这种度量方式。
5.测试时间很长,设备存储空间要充足,不可中断。
二、常用测试命令组合
1.runspec -c test.cfg -i test -I all
基于最小测试数据集快速执行所有的测试,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
2.runspec -c test.cfg -i ref -n 3 -I all
基于最大测试数据集全面执行所有的测试,用于测试单核CPU,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
3.runspec -c test.cfg -i ref -n 3 -r -u 4 -I all
基于最大测试数据集全面执行所有的测试,用于测试4核CPU,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
4.runspec -c test.cfg -i ref -n 3 -r -u 8 -I all
基于最大测试数据集全面执行所有的测试,用于测试8核CPU,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
5.runspec -c test.cfg -i ref -n 3 -r -u 8 -I int
基于最大测试数据集执行12个定点的测试,用于测试8核CPU,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
6.runspec -c test.cfg -i ref -n 3 -r -u 8 -I 164
基于最大测试数据集只执行164单个测试,用于测试8核CPU,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
三、参数说明
runspec
: 表示执行SPEC CPU2000基准程序开始进行测试;
-c
:读取测试配置文件;
test.cfg: 配置文件中可以包含上述命令的所有信息,但是runspec命令的优先级高。此文件在spec的解压目录下,位于SPEC CPU2006安装目录的config目录下;
-i
:输入测试数据集的大小,测试规模有test、ref、train,ref代表最大测试数据集,test代表最小测试数据集跑的时间最短,如果测试编译器正确性的时候可以用test规模,但是想测试性能时候用ref;
-n
:运行的次数,如果想得到加权统计的结果,也就是常说的cpu的spec分数,需要设置n大于等于3;
-I
:测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例,如果不加该参数,程序运行过程出现错误时,SPEC CPU2000将停止测试;
-r
:测试rate,rate数据指多核CPU情况下运行多个相同进程的分值,与-u联合使用。选择copy数量,一般来说copy数量等于CPU核的个数,参数为“-C num”(或–copies num)。注意:如果选择speed度量方式,其copy就是1,是不可以更改的。 其实“-r 4”就等于"–rate --copies 4";
-u
:CPU的核数,用于多核CPU测试,与-r联合使用;
测试项目有以下几种选择:
all
:默认,表示SPEC CPU2000将运行基准测试程序中的所有测试项目;
int
:表示SPEC CPU2000将运行基准测试程序中的12个定点测试项目;
fp
: 表示SPEC CPU2000将运行基准测试程序中的14个浮点测试项目;
164
:表示SPEC CPU2000将运行基准测试程序中164.gzip这个程序;
-o formate
等于“–output_format format”,指定生成输出报告、文件的格式。-o text,screen,pdf 输出格式,测试完成生成报告的格式,依次分别是txt,屏幕显示和pdf格式,保存目录在spec解压目录result中。
noreportable && reportable
: 表示检测/不检测生成的二进制文件是否修改过。
–reportable 如果原来生成的二进制文件被修改了,则运行时会自动重新编译生成二进制文件,确保运行的程序是原始的程序。
测试模式:-tune = base 基准测试;-tune = peak 峰值测试;
-tune默认是base 可以选择base, peak, or all ,Report 首先是base,其次是peak。
base和peak的区别在于:base是简单的标准的配置(一般跑个base就可以衡量性能了),peak是可以提供更多个性化的配置编译选项。(–tune 也简写为 -T,如"-T base"、 --tune all (包括base和peak))
--action
参数是定义做什么测试动作,一般完整的是“–action=validate”,当然你也可以只做编译build、运行run、搭建环境setup等这样的步骤。
--action build
创建测试项目
--action onlyrun
只是运行,不进行确认测试结果是否正确
--action report
标准测试
--action clean
清理已经建立的测试项目