前言:根据此教程,你可以做到在gem5的se模式下运行spec2017。教程所涉及到的脚本文件和配置文件均已在github上开源,如果你觉得有用,请给我一个大大的star~~~

spec2017的安装与部署

  • 安装前的准备
  1. 装有Ubuntu18.04(或更高)的主机(自带gcc、g++7.5或更高)
  2. 在主机上安装gfortan(apt-get install gfortran)
  3. spec2017的镜像文件(本文使用的是cpu2017-1.1.0.iso)
  • spec2017的安装(以X86指令集为例)
cd xxx    #切换到cpu2017.iso所在的目录下
sudo mount -t iso9660 -o ro,exec,loop cpu2017.iso /mnt    #挂载cpu2017.iso镜像文件
cd /mnt    #切换目录到挂载目录
./install.sh    #运行spec2017的安装文件,并指定其安装路径(以/root/cpu2017为例)
#安装好后,需要将github链接上的spec2017/myconfig_x86.cfg文件拷贝到cpu2017的config目录中,
该文件相较默认的配置文件,修改了gcc、g++的目录,并取消了一些针对本机的编译优化(使得能够在gem5的指令集内正常运行)
cd /root/cpu2017/    #切换到安装目录中
source shrc
runcpu --config=myconfig.x86 --action setup --size=test all    #通过size参数可以指定程序输入数据规模大小(test、train、ref)

gem5下的部署

  • 概述

将spec2017的可执行文件、输入文件、spec2017参数文件、待运行的脚本程序、gem5.opt的符号链接放在同一个文件夹

  1. 当前运行命令行执行gem5脚本的目录,是gem5当前的工作目录
  2. gem5运行的spec2017应用程序会从当前工作目录读取输入文件
  • spec2017的可执行文件和输入文件

/root/cpu2017/benchspec/CPU 中各benchmarks文件夹下对应的run文件夹中文件,如:/root/cpu2017/benchspec/CPU/500.perlbench_r/run/run_base_refrate_mytest-m64.0000文件夹中的所有文件(compare、control、speccmds等都有的文件不用)
(PS:如果在gem5运行的过程中可以出现读文件错误,可以在上述run文件夹、data/all文件夹中找到相应的输入文件。有些benchmark提示报错的输入文件甚至可以在其他benchmark的data文件夹中找到,可以在根目录搜索报错的文件名)

  • spec2017的参数文件

输入规模为ref的参数文件,repo上的spec2017/spec17_benchmarks_ref.py给出了示例。对于其他输入规模(如test和train),可参考SPEC CPU2017 Command Lines和示例文件做对应的修改。

  • 待运行的脚本程序

可根据自己的需求创建相关的脚本程序。本文给出了根据gem5的config/example/se.py文件进行修改以适配spec2017的样例程序(spec2017/run.py)

  • 创建gem5.opt的符号链接
cd xxx     #切换到目标文件夹
ln -s /root/gem5/build/X86/gem5.opt

总结

完成以上步骤,最后可以在上述创建的目录下用gem5运行spec2017的benchmarks

示例:./gem5.opt [para] run.py -b benchmark_name [other parameters]

[1][2][3][4]

参考

  1. ^SPEC CPU2017 Command Lines https://uweb.engr.arizona.edu/~tosiron/papers/2018/SPEC2017_commands.pdf
  2. ^Tutorial: Easily Running SPEC CPU2006 Benchmarks in the gem5 Simulator https://markgottscho.wordpress.com/2014/09/20/tutorial-easily-running-spec-
  3. ^SPEC2017: Quick Start https://www.spec.org/cpu2017/Docs/quick-start.html
  4. ^Tutorial: Run SPEC CPU 2017 Benchmarks in Full System Mode with gem5art https://gem5art.readthedocs.io/en/latest/tutorials/spec2017-tutorial.html

gauge 运行其他spec_Gem5(SE模式)上运行SPEC2017教程相关推荐

  1. 网页在PC 上运行正常,在IPad上运行出错的故障原因分析及应对措施

    网页在PC 上运行正常,在IPad上运行出错的故障原因分析及应对措施 最近在测试一个管理系统网站时,发现该网站在PC上运行一切正常,但在Ipad 上运行时,提示网页出现问题,需要重新提交表格,复新提交 ...

  2. python怎么让py里面逐行运行_怎样在安卓上运行python

    "人生苦短,我用python" python丰富的开发库确实为广大使用者缩减了大量的开发时间.小ming没事用python跑个自动化脚本,枯燥乏味的工作就让电脑帮忙做. 怎样在安卓 ...

  3. 使用 ARChon 运行时环境在 Ubuntu 上运行 Android 应用

    在此之前,我们尝试过在多款安卓应用模拟器工具上运行安卓应用,比如Genymotion.VirtualBox和Android SDK等.但是,有了这套全新的Chrome安卓运行环境,就可以在Chrome ...

  4. 安卓如何运行python_如何在android上运行Python代码?

    这个非常简单,Termux和QPython3这2个安卓APP就可以,都集成了Python解释器,可以直接编辑运行Python代码,下面我简单介绍一下: Termux 这是一个安卓高级终端APP,类似于 ...

  5. 可以u盘上运行linux系统,U盘上运行的linux系统--babylinux

    BabyLinux 说明 一,简介 欢迎下载和使用U盘上的迷你linux系统--BabyLinux (USB Key Drive Edition) Babylinux 是一套基于LFS 6.1的迷你l ...

  6. swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar

    我一直在开发一个基于SWT的项目,该项目旨在部署为Java Web Start,从而在多个平台上使用. 到目前为止,我已经设法解决了SWT所依赖的特定于系统的图书馆出现的出口问题(见相关的thread ...

  7. linux无后缀名程序运行,linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?

    我的猜测是这是64位系统上的32位编译.我使用gcc上的-m32选项将一个小的c文件交叉编译成二进制文件.这还需要一些额外的包.结果a.out看起来像这样. % file a.out a.out: E ...

  8. 在哪个Linux发行版上运行python,怎么在linux上运行python

    Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...

  9. mac上安装vbox虚拟机运行win7系统,mac上运行exe

    想在mac运行exe,发现有三种方法: 1. 虚拟机安装win镜像 2. wine或者crossover软件 3. Parallels Desktop 2尝试了发现很多exe都不能运行,3文件很大操作 ...

最新文章

  1. 23岁一无所有怎么办_我搬到国外去创业,然后一无所有。
  2. 电视剧中提到的 自然的 聊天对话 细节法则
  3. x12arima季节调整方法_《时间序列X-12-ARIMA季节调整:原理与方法》
  4. 错误代码: 1066 Not unique table/alias: #39;c#39;
  5. 【辨异】relation, relationship
  6. 如何在Mac上的网站上设置时间限制?
  7. spring 中发邮件的设置
  8. Python3网络爬虫(九):使用Selenium爬取百度文库word文章
  9. 虚拟服务器zend optimizer,windows服务器配置Zend Optimizer方法-安装Zend Optimizer步骤-SEO优化-猴子技术宅...
  10. 史上最全的Java进阶书籍推荐
  11. 可视化丨用数据分析福尔摩斯探案集
  12. CEP的一个简单理解
  13. RGB color model
  14. 究竟怎样写代码才算是好代码
  15. 什么是自律性?如何提高自律性?
  16. 如何利用软件绘制数学图像中的箭头坐标轴图像?
  17. Vue3.0 凉凉了?Vue 最黑暗的一天!
  18. openjudge 1.5.22 津津的储蓄计划
  19. vue 父子组件 组件挂载 组件通信 slot插槽
  20. 使用HTML5画布和jQuery使小球颜色不断变化

热门文章

  1. STM32时钟学习之STM3210X_RCC.H解读
  2. 面试官:说说你知道多少种线程池拒绝策略
  3. Python 字串处理
  4. msp430入门编程21
  5. Javascript 之 变量
  6. win32api window2con 模块 -系统注册表操作
  7. asp.net treeview 控件父子节点级联选中
  8. HashMap源码及原理
  9. docker安装文档
  10. C++关键字--volatile