SPEC2006学习使用

2023-10-31 17:44
文章标签 学习 使用 spec2006

本文主要是介绍SPEC2006学习使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

spec 2006学习记录

1. 安装依赖包:

apt-get install gcc g++ gfortran libbz2-dev

2.解压缩speccpu2006测试工具包,并附执行权限:

tar xvf speccpu2006-v1.0.1-newest.tar 
chmod -R a+x /home/speccpu2006-v1.0.1


3.编辑 tools/src/buildtools 文件,将311行注释,并添加一行export PERLFLAGS="-A libs=-lm -A libs=-ldl"

    // export LD_LIBRARY_PATH DYLD_LIBRARY_PATHexport PERLFLAGS="-A libs=-lm -A libs=-ldl"

4.修改tools/src/make-3.8.0/glob/glob.c文件,
在209行“#if !defined __alloca && !defined GNU_LIBRARY”和230行“#endif”前添加“//”注释掉

//#if defined __alloca && !defined __GNU_LIBRARY__# ifdef __GNUC__
#  undef alloca
#  define alloca(n)     __builtin_alloca (n)
# else  /* Not GCC.  */
#  ifdef HAVE_ALLOCA_H
#   include <alloca.h>
#  else /* Not HAVE_ALLOCA_H.  */
#   ifndef _AIX
#    ifdef WINDOWS32
#     include <malloc.h>
#    else
extern char *alloca ();
#    endif /* WINDOWS32 */
#   endif /* Not _AIX.  */
#  endif /* sparc or HAVE_ALLOCA_H.  */
# endif /* GCC.  */# define __alloca       alloca# ifdef __GNUC__
#  undef alloca
#  define alloca(n)     __builtin_alloca (n)
# else  /* Not GCC.  */
#  ifdef HAVE_ALLOCA_H
#   include <alloca.h>
#  else /* Not HAVE_ALLOCA_H.  */
#   ifndef _AIX
#    ifdef WINDOWS32
#     include <malloc.h>
#    else
extern char *alloca ();
#    endif /* WINDOWS32 */
#   endif /* Not _AIX.  */
#  endif /* sparc or HAVE_ALLOCA_H.  */
# endif /* GCC.  */# define __alloca       alloca//#endif

5.安装speccpu2006:

./install.sh  //在弹出的提示信息中,选择yes,后回车

6.初始化环境变量:

[root@localhost /speccpu2006-v1.0.1]# source shrc

7.检查SPEC CPU2006是否安装成功

root@test-attft2000c8f4:~/speccpu2006-v1.0.1# . ./shrc
root@test-attft2000c8f4:~/speccpu2006-v1.0.1# runspec -V
runspec v4662 - Copyright 1999-2006 Standard Performance Evaluation Corporation
Using 'unknown' toolsThis is the SPEC CPU2006 benchmark tools suite.Version summary:CPU2006 version: 1.0.1Benchmarks version: 098aTools version: 098arunspec version: 4662 ($Id: runspec 4662 2006-07-24 21:10:20Z cloyce $)Tools information:Tools package installed: unknownFile locking method: LockFileEx (network-safe)
Mode |  UID  |  GID  |   Size  |    Modified Date   | Name
0755 | 0     | 0     |  218536 | 31-Nov-2023 07:12:48 | specmake
0755 | 0     | 0     | 1330400 | 31-Nov-2023 07:12:48 | specperl
0755 | 0     | 0     |   26568 | 31-Nov-2023 07:12:48 | specinvoke
0755 | 0     | 0     |   30664 | 31-Nov-2023 07:12:48 | specinvoke_pm
0775 | 0     | 0     |  136344 | 31-Nov-2023 07:12:48 | specbzip2
0755 | 0     | 0     |   34808 | 31-Nov-2023 07:12:48 | specmd5sum
0755 | 0     | 0     |    7607 | 31-Nov-2023 07:13:19 | specdiff
0755 | 0     | 0     |   85740 | 31-Nov-2023 07:13:19 | specpp
0755 | 0     | 0     |   88872 | 31-Nov-2023 07:13:19 | runspec
0775 | 1000  | 1000  |    1143 | 16-Nov-2018 01:41:28 | runspec.batVersion info for specinvoke (/root/speccpu2006-v1.0.1/bin/specinvoke): Version: 4205
Version info for specmake (/root/speccpu2006-v1.0.1/bin/specmake): GNU Make 3.80spec
Version info for specbzip2 (/root/speccpu2006-v1.0.1/bin/specbzip2): bzip2 v1.0.3, 15-Feb-2005
Version info for specpp (/root/speccpu2006-v1.0.1/bin/specperl): filepp version 1.7.1SPEC
Version info for specperl (/root/speccpu2006-v1.0.1/bin/specperl): This is specperl, v5.8.7 built for aarch64-linuxFor more detail on specperl, say 'specperl -V'
root@test-attft2000c8f4:~/speccpu2006-v1.0.1# 


8.选择相应配置文件进行测试:

[root@localhost /speccpu2006-v1.0.1/config]# cd config/
[root@localhost /speccpu2006-v1.0.1/config]# cp arm64.cfg test.cfg //根据架构选择不通的cfg文件[root@localhost /speccpu2006-v1.0.1/config]# runspec -c arm64.cfg -n 1 -r 1 all  //单线程
[root@localhost /speccpu2006-v1.0.1/config]# runspec -c arm64.cfg -n 1 -r N all  //多线程

9. SPEC2006测试参数详解

单个项目测试

runspec -c  test.cfg  429.mcf --rate 4 -n 1  --noreportable

int整数测试

runspec -c test.cfg  int --rate 8 -n 1 -size=ref   --noreportable    --output_format all

fp浮点数测试

runspec -c test.cfg  fp --rate 8 -n 1 -size=ref   --noreportable    --output_format all

全项目测试

runspec -c test.cfg --rate 8  --noreportable --size=ref  --tune=base  -o text,screen,pdf -I --iterations=1 all

1)ref:测试规模

   测试规模有test,ref,train其中test最小跑的时间最短,如果测试编译器正确性的时候可以用test规模,但是想测试性能时候用ref

2)iterations=3次:测试次数

编译器性能稳定时候测一次就行,也可以写成n 3;
如果想得到加权统计的结果,也就是常说的cpu的spec分数,需要设置iterations大于等于3。


3) all 测试范围: 表示进行fp和int测试

将all替换成int 或 fp 进行定点和浮点的测试;将all替换成456/444等文件编号,表示对某一测试项进行单独测试
对于CPU的SPEC测试,默认这一项是all,但是对于其中的某一项测试分数不满意,可通过指定此测试项的编号,进行单独测试。测试也会得到一个分数,做单项的性能调优时候,可以用得到。


4)输出格式:-o text,screen,pdf

表示测试完成,生成报告的格式,依次分别是txt,屏幕显示和pdf格式,保存目录在spec解压目录result中。


5)noreportable && reportable :

表示检测/不检测生成的二进制文件是否修改过。
–reportable 如果原来生成的二进制文件被修改了,则运行时会自动重新编译生成二进制文件,确保运行的程序是原始的程序。


6)测试核数:-r 设置测试的CPU核心数目;


7)测试模式:-tune = base 基准测试;-tune = peak 峰值测试;-tune默认是base 可以选择base, peak, or all ,Report 首先是base,其次是peak.


8)-I : 表示测试中,如遇报错,略过错误继续测试;

注意测试前清空缓存:
 

echo 3 > /proc/sys/vm/drop_caches //清理缓存

这篇关于SPEC2006学习使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/317036

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完