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

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学