[转帖]CPU计算性能speccpu2006的测试方法及工具下载

cpu,计算,性能,speccpu2006,测试方法,工具,下载 · 浏览次数 : 0

小编点评

**排版** **问题一:** ``` #if !defined __alloca && !defined GNU_LIBRARY ``` **问题二:** ``` /usr/bin/ld: cannot find -lstdc++ ``` **问题三:** ``` export PERLFLAGS=“-A libs=-lm -A libs=-ldl” ``` **问题四:** ``` rm -rf $SPECCPU/benchspec/CPU2006//run/run ``` **问题五:** ``` $ rm -rf $SPECCPU/benchspec/CPU2006//run/run ``` **问题六:** ``` perl related error ``` **问题七:** ``` $ runspec -c arm64.cfg -n 1 483.xalancbmk ``` **问题八:** ``` Error Comparing … ``` **问题九:** ``` Error Comparing … ``` **问题十:** ``` Error Comparing … ``` **问题十一:** ``` Error Comparing … ``` **问题十二:** ``` Error Comparing … ```

正文

简介

SPEC CPU2006是SPEC组织推出的CPU子系统评估软件,重点测试系统的处理器、内存子系统和编译器。

SPEC CPU2006包括了CINT2006和CFP2006两个子项目,前者用于测量和对比整数性能、包含12个不同的基准测试,而后者则用于测量和对比浮点性能、包含17个不同的基准测试。

SPEC CPU2006测试中,测试系统的处理器、内存子系统和使用到的编译器(SPEC CPU2006提供的是源代码,并且允许测试用户进行一定的编译优化)都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图形子系统对于SPEC CPU2006的影响非常的小。

speccpu2006-v1.0.1百度网盘下载地址:
链接:https://pan.baidu.com/s/1R-RCA3ZKSnpbyXgqEl7bSw?pwd=a3h8
提取码:a3h8

测试原理

Spec2006测试模式分为rate测试和speed测试两项,其中rate测试主要衡量系统的多并发运算处理性能即平常我们所说的多线,speed测试主要衡量系统的单任务处理性能即平常我们所说的单线。

12项整数运算和17项浮点运算会在1.5章节中详细说明,除此之外,还有两个随机数产生测试程序998.sperand(整数)和999.specrand(浮点),它们虽然也包含在套件中并得到运行,但是它们并不进行计时以获得得分。这两个测试主要是用来验证一些其他组件中会用到的PRNG随机数生成功能的正确性。

各个测试组件基本上都由C和Fortran语言编写,有7个测试项目使用了C++语言,而Fortran语言均用来编写浮点部分。

目录结构

源目录结构中每个文件/文件夹用途如下表:

文件/文件夹用途
Benchspec用于存放基准项测试代码、编译文件、运行文件、记录等
Bin用于存放可执行文件,如specperl、runspec等
Config用于存放配置文件
Docs用于存放html格式文档
Docs.txt用于存放txt格式文档
redistributable_sources可再发行文件夹,包含归档文件、原始资源、SPEC修改的内容等
Result用于存放测试结果
Tools用于存放默认工具,安装时会编译安装tools中内容
Cshrc设置SPEC CPU2006环境变量
install.bat安装SPEC CPU2006,或生成二进制文件
install.sh安装SPEC CPU2006完整的基准树,或生成二进制文件
LICENSESPEC CPU2006基准产品的许可协议
LICENSE.txtSPEC CPU2006基准产品的许可协议
MANIFESTSPEC CPU2006的文件清单
READMESPEC CPU2006的自述文件
README.txtSPEC CPU2006的自述文件
Revisions版本更变说明文件
Shrc设置SPEC CPU2006环境变量
shrc.bat设置SPEC CPU2006环境变量
SUMS.toolsSPEC CPU2006的bin文件夹的文件清单
uninstall.sh卸载SPEC CPU2006工具二进制文件
version.txt记录工具版本信息

测试方法

前置条件:保证机器物理内存大于或等于cpu核数的2倍(如CPU核数4,内存要大于等于8G)。

1.打开终端,安装依赖包:

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

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

tar xvf speccpu2006-v1.0.1-newest.tar -C /home > /dev/null
chmod -R a+x /home/speccpu2006-v1.0.1
  • 1
  • 2

3.编辑 tools/src/buildtools 文件(311行和312行)
注释该行

export LD_LIBRARY_PATH DYLD_LIBRARY_PATH 
  • 1

在./Configure行前加一行

export PERLFLAGS="-A libs=-lm -A libs=-ldl"
  • 1

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

5.安装speccpu2006:

./install.sh
  • 1

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

6.加载环境变量:

. ./shrc (注意这里是:.空格./shrc)
  • 1

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

runspec -V
  • 1

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

runspec -c arm64.cfg -n 1 -r 1 all(单线程)
runspec -c arm64.cfg -n 1 -r N all(多线程)
  • 1
  • 2

x86_64平台

runspec -c x86.cfg -n 1 -r 1 all(单线程)
runspec -c x86.cfg -n 1 -r N all(多线程)
  • 1
  • 2

mips平台

runspec -c mips64.cfg -n 1 -r 1 all(单线程)
runspec -c mips64.cfg -n 1 -r N all(多线程)
  • 1
  • 2

参数说明:
-n 指定测试轮数(3轮测试的话测试完成后会自动算出Base Ratio的几何平均数(几何平均数与算数平均值不同,几何平均数是对各变量值的连乘积开项数次方根),3轮以下则不显示该分数,需要手动算分; 手动算几何平均数方法:可在EXCEL表格中执行函数 =GEOMEAN(G8:G24));

-r N,设置cpu核数,N和CPU核数一致,根据台式机或服务器的核数去指定多线程N的值;
all代表浮点和整型参数都测试。

基准测试项解析

整型测试
在这里插入图片描述

浮点测试
在这里插入图片描述
在这里插入图片描述

测试结果

查看测试结果:
①测试结果会在测试时打印在终端输出当中,可在终端中看到结果分数;或在SPECCPU/result目录中查看测试结果文件。

②执行整数测试时,会在SPECCPU/result目录中生成以下五个文件:
“CINT2006.xxx.flags.html”
“CINT2006.xxx.pdf”
“CINT2006.xxx.rsf”
“CINT2006.xxx.txt”
“CPU2006.xxx.log”

③执行浮点测试时,会在SPECCPU/result目录中生成以下五个文件:
“CFP2006.xxx.flags.html”
“CFP2006.xxx.pdf”
“CFP2006.xxx.rsf”
“CFP2006.xxx.txt”
“CPU2006.xxx.log”

其中:
flags.html文件中间存放了本次测试中每个测试项使用的所有Flags信息;
pdf文件为最常用的结果文件,其中包含了结果的柱状图、Hardware信息、Software信息、结果的数据表、General Notes、Flags等多种信息;
rsf文件为SPEC CPU2006是原始结果文件,可通过该文件重新生成其他结果文件;
txt文件内容和pdf文件类似,区别是txt为纯文本结果文件。

示例:
单线程测试结果如下图所示:
在这里插入图片描述
本次测试单线程整型值为:14.2
浮点型为:13.5

多线程测试结果如下图所示:
在这里插入图片描述
本次测试多线程整型值为:45
浮点型为:42.6

结果判断标准:

测试项建议值
单线整型桌面:8.8以上;服务器:11以上
单线浮点桌面:8.3以上;服务器:9.6以上
多线整型与CPU核心数相关。桌面可参考如下公式:多线整型分数 >= 单线整型分数 × CPU核心数 × 3/4
多线浮点与CPU核心数相关。桌面可参考如下公式:多线浮点分数 >= 单线浮点分数 × CPU核心数 × 3/4

调优方案:
SPEC CPU2006测试中,测试系统的处理器、内存子系统和使用到的编译器(SPEC CPU2006提供的是源代码,并且允许测试用户进行一定的编译优化)都会影响最终的测试性能,而I/O(磁盘)、网络、操作系统和图 形子系统对于SPEC CPU2006的影响非常的小。
根据上述描述,影响因素包含CPU、内存、编译器。通常的优化方案包含:
1 更换性能更强劲的CPU
2 插满内存条
3 更换内存类型,如DDR3换成DDR4
4 更新性能更佳的内核版本
5 编译器:升级gcc、g++、gfortran
6 编译器使用的库:升级libc、libm、libdl、ld、libcrypt库版本
7 编译器的编译选项:选用合适的编译参数可起到优化作用,比如-O3、-ffast-math、-funroll-loops、-fprefetch-loop-arrays等。
8.编译器选择:选择优化更好的编译器,如icc、icpc、ifort等。

常见问题FAQ

1、问题一:
问题描述:SPEC CPU2006在make阶段出现报错“glob/glob.c:xxx: undefined reference to __alooca
解决办法:修改$SPECCCPU/tools/src/make-3.8.0/glob/glob.c文件,在209行“#if !defined __alloca && !defined GNU_LIBRARY”和230行“#endif”前添加“//”注释掉。

2、问题二:
问题描述:运行SPEC CPU2006浮点测试,416.gamess测试项无结果,报错“IEEE_UNDERFLOW_FLAG”
解决办法:修改cfg文件中416.gamess编译参数中为“FOPTIMIZE=-O3 -march=native -fno-tree-dominator-opts -std=legacy -funroll-loops -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin -fno-aggressive-loop-optimizations”

3、问题三:
问题描述:龙芯架构机器运行SPEC CPU2006报错“/bin/ld: cannot find lm、/bin/ld: cannot find lc、/bin/ld: cannot find lgfortran”
解决办法:1) 安装glibc-static和gfortran
2)创建libgfortran软链接:$ ln -s /usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so

4、问题四:
问题描述:SPEC CPU2006执行runspec时报“Can’t locate strict.pm”
解决办法:加载SPEC CPU2006的环境变量,执行:$ source shrc

5、问题五:
问题描述:执行时报“/usr/bin/ld:cannot find -lstdc++”
解决办法:安装glibc-static和libstdc+±static包

6、问题六:
问题描述:执行了xxxx86架构上416、447、450项报错无结果
解决办法:
1、修改源文件ecp.F中的ZFNLM(121)为ZFNLM(125)
2、修改源文件nameio.F中的X(10)为X(1)
3、修改源文件qfmm.F中的COEFF(1,2))为COEFF(1,1))
4、修改x86.cfg文件中的416项编译参数,125行修改为FOPTIMIZE=-O3 -march=native -fno-tree-dominator-opts -std=legacy -funroll-loops -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin -fno-aggressive-loop-optimizations
5、修改源文件parameter_handler.cc中的763和777行第一个单引号为双引号
6、修改源文件mpsinput.cc第75行,==0去掉,m_input前加!
7、重新运行这几项:runspec -c x86.cfg -n 1 416.gamess
runspec -c x86.cfg -n 1 447.dealII
runspec -c x86.cfg -n 1 450.soplex

7、问题七:
问题描述:SPEC CPU2006执行install.sh时,报perl相关错误
解决办法:原因为perl编译过程未引入数学库,需要修改$SPECCPU2006/tools/src/buildtools文件中关于perl编译部分的./configure命令行上面加入export PERLFLAGS=“-A libs=-lm -A libs=-ldl”

8、问题八:
问题描述:执行SPEC CPU2006后,有几率不会将运行文件删掉,这会导致占用大量磁盘空间,对于磁盘空间较少的系统很多服务起不来(比如图形起不来)。
解决办法:执行:$ rm -rf $SPECCPU/benchspec/CPU2006//run/run

9、问题九:
问题描述:运行SPEC CPU2006测试483.xalancbmk无结果,报错“copy #0 non-zero return code”
解决办法:安装SPEC CPU2006在英文目录下,重新运行此项:$ runspec -c arm64.cfg -n 1 483.xalancbmk

10、问题十:
问题描述:运行SPEC CPU2006时,464.h264f测试项死循环长时间卡住
解决办法:在cfg文件中464.h264ref项的编译选项处添加“-fno-aggressive-loop-optimizations”

11、问题十一:
问题描述:执行SPEC CPU2006运行报“Error Comparing……”类似错误
解决办法:使硬件环境达到SPEC CPU2006的要求:
1) 内存 > CPU核心数 × 2
2) 磁盘剩余空间 > CPU核心数 × 3

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux29494 人正在系统学习中

与[转帖]CPU计算性能speccpu2006的测试方法及工具下载相似的内容:

[转帖]CPU计算性能speccpu2006的测试方法及工具下载

CPU计算性能speccpu2006的测试方法及工具下载 简介测试原理目录结构测试方法基准测试项解析测试结果常见问题FAQ 简介 SPEC CPU2006是SPEC组织推出的CPU子系统评估软件,重点测试系统的处理器、内存子系统和编译器。 SPEC CPU2006包括了CINT2006和CFP200

[转帖]CPU计算性能speccpu2006的测试方法及工具下载

CPU计算性能speccpu2006的测试方法及工具下载 简介测试原理目录结构测试方法基准测试项解析测试结果常见问题FAQ 简介 SPEC CPU2006是SPEC组织推出的CPU子系统评估软件,重点测试系统的处理器、内存子系统和编译器。 SPEC CPU2006包括了CINT2006和CFP200

[转帖]CPU计算性能speccpu2006的测试方法及工具下载

https://www.yii666.com/blog/335517.html CPU计算性能speccpu2006的测试方法及工具下载 简介 测试原理 目录结构 测试方法 基准测试项解析 测试结果 常见问题FAQ 简介 SPEC CPU2006是SPEC组织推出的CPU子系统评估软件,重点测试系统

[转帖]CPU、寄存器、内存、磁盘、网络性能分析

介绍 寄存器 最靠近 CPU 的控制单元和逻辑计算单元的存储器,就是寄存器了,它使用的材料速度也是最快的,因此价格也是最贵的,那么数量不能很多。 存储器的数量通常在几十到几百之间,每个寄存器可以用来存储一定的字节(byte)的数据。比如: 32 位 CPU 中大多数寄存器可以存储 4 个字节;64

[转帖]x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨。 一.网卡调优方法 1、Broadcom的网卡建议关闭GRO功能 ethtool -K eth0 gro off ethtool -K

【转帖】x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨。 一.网卡调优方法 1、Broadcom的网卡建议关闭GRO功能 ethtool -K eth0 gro off ethtool -K

【转帖】x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨。 一.网卡调优方法 1、Broadcom的网卡建议关闭GRO功能 ethtool -K eth0 gro off ethtool -K

【转帖】x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨。 一.网卡调优方法 1、Broadcom的网卡建议关闭GRO功能 ethtool -K eth0 gro off ethtool -K

[转帖]Linux性能分析(二):理解CPU上下文切换

在计算机中,上下文切换是指存储进程或线程的状态,以便以后可以还原它并从同一点恢复执行。这允许多个进程共享一个CPU,这是多任务操作系统的基本功能。 Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行,这依赖于CPU上下文切换。CPU 上下文切换,就是先把前一个任务的 CPU

【转帖】Linux性能优化(十六)——中断绑定

一、中断绑定简介 1、中断简介 计算机中,中断是一种电信号,由硬件产生并直接送到中断控制器上,再由中断控制器向CPU发送中断信号,CPU检测到信号后,中断当前工作转而处理中断信号。CPU会通知操作系统已经产生中断,操作系统就会对中断进行处理。常见的中断控制器有两种:可编程中断控制器8259A和高级可