https://zhuanlan.zhihu.com/p/534205632

SPEC成立于1988年,SPEC基准广泛用于评估计算机系统的性能。SPEC CPU套件通过测量几个程序(例如编译器GCC,化学程序游戏和天气程序WRF)的运行时间来测试CPU性能。


安装编译器

运行speccpu2017需要gcc,g++和gfrogran支持,可以通过如下方式安装这3个编译器。

yum install gcc gcc-c++ gcc-fortran -y

安装spec2017

安装的前提是需要有spec2017的镜像文件,跳转的镜像文件所在目录,然后执行如下操作进行安装:

sudo mount -t iso9660 -o,exec,loop cpu2017.iso /mnt
cd /mnt
./install.sh #回车后输入指定目录作为安装目录,例如/home/admin/cpu2017
cd /home/admin/2017
source shrc
cp Example-gcc-linux-x86.cfg admin-try1.cfg
vim admin-try1.cfg #修改copy的配置文件,有两处需要修改
#将115行的 % define gcc_dir /SW/compilers/GCC/Linux/x86_64/gcc-6.3.0改为% define gcc_dir /usr
#去掉215行的-fno-tree-loop-vectorize编译选项
#到这里后不着急开始测试,先读一读本文后边的参数配置说明
runcpu --config=hygon-try1 SPECspeed2017_int_base

参数配置说明

spec2017的metrics介绍

spec2017测试有两种评估方式,分为speed和rate,speed测试完成一项任务需要的时间,rate测试单位时间内可以完成多少任务,即throughput。speed和rate测试又有整形(int)和浮点测试之分、base和peak测试之分,所有共有8个metrics,base和peak的区别可以参考最后的参考资料[3]的Q16。下表是这8个metrics的简单介绍。

图1 spec2017的metrics

benchmarks

spec2017共有43个benchmark,分为4个suite,从上图中也可以看出benchmark的数量,这43个benchmark的使用场景如下表所示:

参数说明

参数信息可以通过命令runcpu -h进行查看,下面介绍几个常用的参数。

size

size参数很重要,size有3个测试集,分别是test,train和ref,它们之间区别目前还不是很清楚,只知道test最小,测试需要的时间最少,ref最大,测试需要的时间也最多,还有就是它们包含的benchmark不一样。如果不指定size,spec2017默认使用ref,可以用如下方式指定使用的测试集。
runcpu --config=hygon-try1 SPECspeed2017_int_base -i test

tune

tune参数有两个值,分别是base和peak,默认使用base,如果是生成报告的测试,要么是使用base,要么是base和peak一起用。tune的使用方法如下:
runcpu --config=hygon-try1 SPECspeed2017_int_base -i test --tune base

当然了还可以通过参数--threads指定使用的线程数,通过参数--iterations指定测试集重复执行次数,还有很多啦。

错误及解决方法

错误1

错误描述:
Running 627.cam4_s refspeed (ref) base mumble threads:4 [2017-09-25 03:59:50]
627.cam4_s: copy 0 non-zero return code (exit code=139, signal=0)
Investigating the run directory shows that the output file h0.nc does not exis

解决方法:
ulimit -s unlimited

参考资料

[1]https://www.spec.org/cpu2017/Docs/quick-start.html

[2]https://www.spec.org/cpu2017/Docs/runcpu.html

[3]https://www.spec.org/cpu2017/Docs/overview.html

备注:

这篇博客是当时测试CPU时的一些笔记,最开始写在简书上,现在挪到知乎上来。

[转帖]spec2017 安装和使用的更多相关文章

  1. [转帖]Nginx安装及配置详解 From https://www.cnblogs.com/zhouxinfei/p/7862285.html

    Nginx安装及配置详解   nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP ...

  2. [转帖]Ubuntu 安装VNC的一个方法

    来源: https://blog.csdn.net/CSDN_duomaomao/article/details/75270271 Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教 ...

  3. [转帖]CentOS7安装xrdp(windows远程桌面连接linux)

    CentOS7安装xrdp(windows远程桌面连接linux) https://blog.csdn.net/sgrrmswtvt/article/details/81869208 You Konw ...

  4. vue可视化图表 基于Echarts封装好的v-charts简介

    **vue可视化图表 基于Echarts封装好的v-charts** 近期公司又一个新的需求,要做一个订单和销售额统计的项目,需要用到可视化图表来更直观的展示数据.首先我想到的是Echarts,众所周 ...

  5. [转帖]完美解决NVIDIA最新显卡驱动无法安装。(修改教程篇,各机型都可以)

    http://blog.sina.com.cn/s/blog_53e2b55e0100lyx2.html ————————————————————————————————————     前段时间,有 ...

  6. [转帖]Ubuntu 18.04 server安装图形界面及realvnc远程桌面连接

    Ubuntu 18.04 server安装图形界面及realvnc远程桌面连接 https://blog.csdn.net/networken/article/details/88938304 转帖 ...

  7. win10家庭中文版CUDA+CUDNN+显卡GPU使用tensorflow-gpu训练模型安装过程(精华帖汇总+重新修改多次复现)

    查看安装包 pip list 本帖提供操作过程,具体操作网上有好多了,不赘述.红色字体为后来复现出现的问题以及批注 题外话: (1)python 的环境尽量保持干净,尽量单一,否则容易把自己搞晕,不知 ...

  8. 【转帖】嵌入式4412开发板QT5.7编译安装到arm

    QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系统 Orandragon记录 本文转自迅为4412开发板群:http://to ...

  9. Discuz的安装 (原创帖,转载请注明出处)

    ========================写在前面的话========================= 1.LAMP环境搭建请查看这篇日志:http://www.cnblogs.com/yic ...

  10. linux mysql5.5安装与配置(转帖,在网上收集,自用)

    MySQL是一个关系型数据库管理系统 ,由瑞典MySQL AB公司开发,目前属于Oracle 公司.MySQL分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码 这一特点,一般中 ...

随机推荐

  1. C++篇:第十三章_异常_知识点大全

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 十三.异常 ① 函数指针与该指针所指的函数必须具有一致的noexcept异常说明 ...

  2. 数据库面试要点:关于MySQL数据库千万级数据查询和存储

    摘要:百万级.千万级数据处理,核心关键在于数据存储方案设计,存储方案设计的是否合理,直接影响到数据CRUD操作.总体设计可以考虑一下几个方面进行设计考虑: 数据存储结构设计:索引设计:数据主键设计:查 ...

  3. 带你了解数据库的“吸尘器”:VACUUM

    摘要:在GaussDB(DWS)中,VACUUM的本质就是一个"吸尘器",用于吸收"尘埃". 下面将从VACUUM的作用.用法.原理等方面进行介绍. 在Gaus ...

  4. 带你认识三种kafka消息发送模式

    摘要:在kafka-0.8.2之后,producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率. 本文分享自华为云社区<kafka消息发送模 ...

  5. Java注解(批注)的基本原理

    为什么要使用注解? 早期版本的Spring是通过XML文件的形式对整个框架进行配置的,一个缩减版的配置文件如下 <?xml version="1.0" encoding=&q ...

  6. React Native 打包 App 发布 iOS 及加固混淆过程

    React Native 打包 App 发布 iOS 及加固混淆过程 摘要 本文将介绍如何使用 React Native 打包并发布 iOS 应用到 App Store,并介绍了如何进行应用的加固和混 ...

  7. Docker 删除 images

    1 查看本地已用镜像文件 [root@localhost web]# docker images 2.删除镜像 Redis [root@localhost web]# docker rmi 59589 ...

  8. 断点续传(上传)Java版

    PostMan 客户端调用部分见,断点续传(上传)C#版 1. 客户每次上传前先获取一下当前文件已经被服务器接受了多少 2. 上传时设定偏移量,跳过服务器已收到的长度 @SpringBootTest ...

  9. Java ZIP文件解压

    Java ZIP文件解压 备忘笔记 代码: private byte[] unZip(byte[] data) { byte[] bArr = null; try { ByteArrayInputSt ...

  10. SpringCloud学习 系列三、 创建一个没有使用springCloud的服务提供者和消费者

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...