SPEC 2000使用的详细介绍(1)

        对于新手来说,想要使用spec进行测试系统的性能,刚开始是不容易的。难点在于如何去修改源码、理解目录结构,如何运行、如何查看测试的结果,根据我自己的实践,总结了SPEC 2000的一些常用的知识,从以下五个部分进行说明,希望可以帮助到大家。
一、SPEC CPU2000简介
    SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测CPU性能的基准程序测试组。处理器、内存和编译器都会影响最终的测试结果,而I/O(磁盘)、网络、操作系统和图形子系统对SPEC CPU2000的影响非常小。目前,SPEC CPU2000是业界首选的CPU评测工具。 SPEC CPU2000包括CINT2000和CFP2000两套基准测试程序,前者用于测量和对比CPU的定点性能,后者用于测量和对比浮点性能。CINT2000包含12个测试项目,CFP2000包含14个测试项目。
二、运行SPEC CPU2000
1、首先登录操作系统,打开终端,解压软件包并进入SPEC CPU2000安装目录
$ tar -zxvf spec2000-new.tar.gz 
$ cd /home/benchmark/spec2000-new
2、其次,修改运行文件bin/runspec
将384、385行修改如下:
修改前:
384 # if (istrue($config->rebuild) || !$obj->check_exe()) {
385 if (0) {
修改后:
384 if (istrue($config->rebuild) || !$obj->check_exe()) {
385 # if (0) {
3、修改配置文件config/*.cfg
注:以上标记出来的,可以根据自己的需要,进行对应的修改
4、修改myrun.sh,添加运行的命令
$. shrc    //点与shrc之间至少一个空格
$ runspec -c test.cfg -i ref -n 3 -I -r -u 4 all
参数说明:
runspec: 表示执行SPEC CPU2000基准程序开始进行测试;
-c:读取测试配置文件,;
test.cfg: 位于SPEC CPU2000安装目录的config目录下;
-i:输入测试数据集的大小,ref代表最大测试数据集,train 代表最小的测试集,test代表最小测试数据集,test和train数据集是用来测试准确性的,而ref是用来测试性能的;
-n:运行的次数,如果需要SPEC CPU2000自动计算测试分值,需要指定运行次数等于或大于3,即n>=3;
-I:测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例,如果不加该参数,程序运行过程出现错误时,SPEC CPU2000将停止测试;
-D   等价于  --rebuild , 表示运行时重新build目录,如果不加此选项不会生效你修改过的test.cfg配置文件,如果已经build成功了,只需要run则可以不加此选项
-a: 等价于--action,常用的选型有run和build,表示运行与编译
-r:测试rate,rate数据指多核CPU情况下运行多个相同进程的分值,与-u联合使用;
-u:CPU的核数,用于多核CPU测试,与-r联合使用;
all:表示SPEC CPU2000将运行基准测试程序中的所有测试项目;
int:表示SPEC CPU2000将运行基准测试程序中的12个定点测试项目;
fp: 表示SPEC CPU2000将运行基准测试程序中的14个浮点测试项目;
164:表示SPEC CPU2000将运行基准测试程序中164.gzip这个程序;
注意事项:
(1)-n参数,默认值为3
(2)不加--noreportable则默认为reportable,表示生成的结果是用于可报告的,则每个benchmark它至少为你运行两遍,如果使用--noreportable,则-n指定运行几遍就运行几遍(取值为1,2,3)
(3)对于一个--reportable的运行,必须在编译时和运行时都验证目录内容,即需要加上strict_rundir_verify。
如果运行时你修改了配置文件,但你不想让它重新编译,可以把--rebuild选项换成--nobuild
5、测试的结果展示
    每次编译、运行之后,都会产生*.asc、*.cfg、*.raw和log.*四个文件,我们只需要关注*.asc和log.*文件即可。下面展示一下浮点数的测试结果,如下所示:
具体的每一个基准测试的含义,可以参考官网: SPEC CPU2000 Results
三、举例说明SPEC CPU2000常用测试命令组合
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,测试过程中如果某个用例发生错误,则跳过错误用例,继续执行其他用例。
7、runspec -c test.cfg -i test  -n 1 -D -I  -a build 164
在spec2000中编译基准测试程序164.gzip,指编译一个基准测试程序,然后单独执行,当出现某个基准测试出现问题,这比较方便调试问题
四、SPEC CPU 与benchmark的关系
    SPEC CPU包含多个benchmark,每个benchmark有不同的应用领域,采用语言是C,C++,Fortran,benchmark位于spec cpu目录下的benchspec/CPU目录,每个benchmark包含build,data,Docs,exe,run,Spec等目录。
1、每个benchmark的运行与runcpu(或者runspec)有什么关系?
    关于 spec 的运行机制:首先 spec 有一个Makefile.defaults模板文件,spec 先读取 cfg 配置文件,根据模板文件生成对应 benchmark 的Makefile.spec文件,再根据Makefile.spec中的优化选项和配置信息进行编译和运行
2、benchmark的这些目录是如何生成的?以及每个目录作用是什么?
    
    benchmark 的 build,exe,run 目录是由 spec 生成,对应文件作用也就分别是存放源码已经 build 生成的中间文件,存放了可执行文件,可执行文件运行目录,包含输出模板信息和输入文件及输入参数信息等。
五、相关的参考链接
参考链接4: SPEC CPU2000 Results
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值