实验步骤:

1.下载docker和speccpu2017

2.docker下载镜像,创建容器

3.将下载的宿主机speccpu2017拷贝到docker创建的容器中(docker cp)

4.在docker容器(docker exec)中编译运行speccpu2017

下载docker

yum  install docker-ce -y

下载镜像

docker search gcc //(选择第一个下载)sudo docker pull gcc //(下载最新版)docker images //(查看本地已经下载的镜像)

docker容器命令

docker run -it imageID /bin/bash //(交互式运行,进入容器查看内容)docker ps -a //(查看本地容器)docker start ContainerID //(开启容器)docker exec -it  ContainerID /bin/bash //(交互式运行)docker cp source_path_file  destination_path_file //(宿主机和docker文件拷贝)

SPECCPU2017是标准性能评估组织继SPECCPU 2006之后,最新的CPU子系统量化测试工具,共4个大类,43个测试,包括聚焦单任务的整形、浮点型运算速度的性能测试SPECspeed integer、SPECspeed 2017 Floating Point,聚集整体并发的整形、浮点型运算速度的性能测试SPECrate 2017 Interger和SPECrate 2017 Floating Point。

下载specccpu2017

官网下载speccpu2017的光盘安装镜像和AOCC的编译器压缩包。

或者百度网盘下载cpu2017-1.05.iso
                链接:百度网盘 请输入提取码
                提取码:5thr

speccpu2017的安装

mkdir -p /home/speccpu2017 //创建安装路径mount cpu2017-1.0.5.iso /mnt/  //(挂载iso镜像,并切换到/mnt目录下)cd /mnt./install.sh  //(执行install安装,输入之前创建完成的/home、speccpu2017路径)

执行./install.sh之后,输入安装位置/home/speccpu2017,选择yes,如下图所示:

修改配置文件

在/home/speccpu2017/config文件夹,复制Example-gcc-linux-x86.cfg文件并重命名spec17-opti-gcc7.3.cfg,修改该文件,查找“edit”字样的内容。

1.查看gcc/g++/gfortran的版本

gcc -vg++ -vgfortran -v

2.查看gcc的安装位置

which gcc

config文件修改规则如下:

如果在/usr/bin/gcc文件夹下则修改gcc_dir为/usr,如果在/usr/local/bin/gcc文件夹下则修改gcc_dir为/usr/local,

对应修改SPECLANG = /usr/bin/或者/usr/local/bin/

详细参考链接:https://pan.baidu.com/s/1NLoD3K-VPOrQPgpEHfALjw 
提取码:09rq

speccpu2017配置环境及运行

source shrc //(设置环境)runcpu --config=spec17-opti-gcc7.3_1.cfg -size=ref --tune=all -noreportable all -l --copies=4

测试参数说明:

runcpu: 位于bin目录下的二进制执行文件

--config:编译执行的配置文件有base和

--size: 测试规模,表示数据集大小,数据集共三种:test、train、ref。其中test最小,跑的时间最短,如果测试编译器正确性的时候可以用test规模,但是测试性能的时候用ref

--tune: 测试模式,base是基准测试,peak是峰值测试,默认是base

-noreportable: 表示不检测生成的二进制文件是否修改过。--reportable如果原来生成的二进制文件被修改了,则运行时会自动重新编译成二进制文件。

all: 测试范围,all表示进行fp和int测试(将all替换成intrate或fprate进行定点和浮点的测试,将all替换成456/444等文件编号,表示对某一测试项进行单独测试)可选fprate、 fpspeed、 intrate、 intspeed or all等。这里建议一次运行单个测试,全部测试all可能会需要两三天时间。

-l: 表示测试中,如遇报错,略过错误继续测试

--copies: 设置测试的CPU核心数目

注意事项:

在测试时,主要注意磁盘空间与cpu核数等。若在docker和isula中运行intrate和fprate时,需要保证在相同核心数目和bechmark数目下测试,查看运行时间比较CPU的处理能力。若在docker和isulad中运行intspeed和fpspeed时,需要注意的是要保证磁盘空间大于10GB,运行时会产生的较多的内存和磁盘占用;由于intspeed和fpspeed是单核运行,时间会比较久。

测试结果说明:

查看性能分数

  • 测试完成后,可进入/spec2017/result/路径下查看已完成的测试结果文件

    CPU2017.xxx.intrate.refrate.txt、CPU2017.xxx.fprate.refrate.txt、CPU2017.xxx.intspeed.refspeed.txt、CPU2017.xxx.fpspeed.refspeed.txt

  • 测试过程中,如果想提前知道已经完成的测试子项分数,可使用如下命令进行查看,ratio即为得。

    less CPU2017.XXX.log.debug | grep Success

docker编译speccpu2017相关推荐

  1. 利用docker编译Android源码

    本文描述了如何在一个docker上搭建Android编译环境. Docker Docker是一个计算机操作系统的容器,利用主机内核,搭建独立的文件系统,让用户程序运行在一个与宿主机文件系统无关的独立环 ...

  2. 使用 docker 编译运行 abp 项目

    在前面的两篇文章中,介绍了如何在华为鲲鹏架构及其Euler系统上运行dotnet core, 使用docker运行了默认的mvc模板项目,这篇文章继续介绍在docker中运行更复杂的dotnet co ...

  3. 树莓派 编译live555_树莓派raspberry4B入坑指南 part-6 docker编译古灵币钱包

    在上一节我们已经部署好了grin服务,今天讲讲如何编译grin-wallet. grin区块链包含自底向上分三个部分,层层依赖密不可分: grin:grin区块链server,提供chaindata数 ...

  4. coco训练集darknet_YOLOv4: Darknet 如何于 Docker 编译,及训练 COCO 子集

    YOLO 算法是非常著名的目标检测算法.从其全称 You Only Look Once: Unified, Real-Time Object Detection ,可以看出它的特性:Look Once ...

  5. 魔兽世界服务端AzerothCore+Centos系统+docker编译教程

    魔兽世界服务端AzerothCore+Centos系统+docker编译教程 1.1 准备工作 1.1.1 准备 1.1.2 安装软件 1.1.3 下载源码 1.1.4 地图文件 1.2 修改配置文件 ...

  6. 使用Docker编译OpenJDK8

    简介 本文主要介绍如何用docker编译openjdk8. 步骤 1.前置环境 必须安装dokcer环境,然后才能执行下面的操作. 镜像地址: https://github.com/BoYiZhang ...

  7. 小熊派折叠开发板Docker编译烧录安装HAP

    有些小伙伴已经使用了官方的Docker环境编译烧录了鸿蒙的开发板,比如说HI3861和HI3516,或者其他的开发板,这个时候如果买了小熊派折叠开发板,那环境应该怎么配置呢? 1.基础的编译环境 鸿蒙 ...

  8. Docker - 编译安装nginx镜像

    目录 知识点1:制作镜像的常用指令 RUN和CMD/ENTRYPOINT的区别 首先需要一个安装nginx的脚本 制作Dockerfile 开始制作镜像 查看镜像是否制作成功 启动一个容器来测试镜像 ...

  9. android6.0-nexus5 mac上docker 编译刷机

    下载源码 hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 300g ~/android.dmg hdiuti ...

  10. jenkins docker 编译verify出现crash的问题

    环境:通过jenkins编译.gerrit触发.jenkins里具体的编译是下载好代码并在docker里编译 情景:我自己更改了下编译脚本,push 到gerrit review,触发jenkins编 ...

最新文章

  1. python UnboundLocalError: local variable 'log_f' referenced before assignment 错误
  2. 项目前期——用例图、类图、活动图、组件图
  3. C++智能指针使用指南 part1:基本使用
  4. vue与thymeleaf结合使用注意事项
  5. 捷径app 保存视频_Android N App捷径
  6. 每天一个Linux命令(6):rmdir命令
  7. 城市ai大脑_激发AI研究的大脑五个功能
  8. python-视频爬取到本地
  9. 大数据基础课02 从萌芽到爆发,大数据经历了哪些发展?
  10. debian 11修改ip地址的方法
  11. EntityWrapper
  12. RDD之Cartesian
  13. 三十七、缓存注解@Cacheable、@CacheEvict、@CachePut详解
  14. 从零开始的单片机学习(四)
  15. uniapp 下拉列表插件 lable问题
  16. Global Mapper20生成可以进CAD的国家2000坐标系的DXF等高线
  17. 【建瓯最坏】APT的YARA规则
  18. 轨道不平顺-振动响应-信号分析方法(持续整理中...)
  19. RT-Thread创始人新年寄语: 开源如水、商业似船
  20. 当“B”AT成为历史 留给百度的时间不多了

热门文章

  1. python万年历节气_python3实现万年历(包括公历、农历、节气、节日)
  2. DotaMax网站”获取“自己与职业选手(知名玩家)对战记录
  3. 很勤奋的学画画从零基础开始学习,到成为一名原画师需要几年?
  4. 用Python 实现简单的汇率计算
  5. 至于你信不信(由你),我反正信了
  6. Uncaught Exception: Error [ERR REQUIRE ESM]: requireO of ES Modul……
  7. V2X车联网-学习整理笔记
  8. 计算机解决问题的几个必要,1–1计算机解决问题的过程.ppt
  9. 【架构】1366- 如何画出一张优秀的架构图
  10. Python秒算24点,行还是不行?