参考《Configure and run parsec 2.1 benchmark in gem5》
PARSEC Benchmark需要在GEM5中的全系统(full system)模式下运行,本篇介绍如何在GEM5模拟器中配置和运行PARSEC Benchmark (以x86架构方式为例),如果需要在其他架构下运行,需要下载对应的镜像等文件,具体参考PARSEC官网。

  1. 首先新建一个文件夹用于存储PARSEC Benchmark的disk image

     mkdir parsec_full_system_imagescd parsec_full_system_images
    
  2. 下载初始的系统文件,并解压,再重命名文件夹(重命名可选)

     wget http://www.m5sim.org/dist/current/m5_system_2.0b3.tar.bz2tar jxvf m5_system_2.0b3.tar.bz2mv m5_system_2.0b3 system
    

    解压后,文件的目录结构如下:

     system/binaries/consolets_osfpalvmlinuxdisks/linux-bigswap2.imglinux-latest.img
    
  3. 下载PARSEC Benchmark相关文件,并替换掉system文件夹中的相应文件

    下载PARSEC对应的linux kernel文件,并替换掉 ‘system/binaries/vmlinux’

     cd ./system/binaries/wget http://www.cs.utexas.edu/~parsec_m5/x86_64-vmlinux-2.6.28.4-smprm vmlinuxmv vmlinux_2.6.27-gcc_4.3.4 vmlinux
    

    下载PARSEC-2.1 Disk Image并解压

     cd ../disks/wget http://www.cs.utexas.edu/~parsec_m5/x86root-parsec.img.bz2bzip2 -d x86root-parsec.img.bz2
    
  4. 进入gem5文件夹,修改三个文件(SysPaths.py 、 Benckmarks.py和FSConfig.py)配置parsec的路径和文件名

    打开SysPaths.py配置parsec disk image的完整路径:

     vim ./configs/common/SysPaths.py
    

    修改前(49行):

     path = [ '/dist/m5/system', '/n/poolfs/z/dist/m5/system' ]
    

    修改后:

     path = [ '/dist/m5/system', '/home/parsec_full_system_images/system' ]
    

    打开Benchmarks.py修改image文件名:

     vim ./configs/common/Benchmarks.py
    

    修改前(62行):

     elif buildEnv['TARGET_ISA'] == 'x86':return env.get('LINUX_IMAGE', disk('x86root.img'))
    

    修改后:

     elif buildEnv['TARGET_ISA'] == 'x86':return env.get('LINUX_IMAGE', disk('linux-parsec-2-1-m5-with-test-inputs.img'))
    

    打开FSConfig.py修改image文件名(第127,563,681行):

     vim ./configs/common/FSConfig.py
    

    修改前(127行):

     self.disk2.childImage(disk('linux-bigswap2.img'))
    

    修改后:

     self.disk2.childImage(disk('x86root-parsec.img))
    

    修改前(563行):

     disk2.childImage(disk('linux-bigswap2.img'))
    

    修改后:

     disk2.childImage(disk('x86root-parsec.img'))
    

    修改前(681行):

     self.kernel = binary('x86_64-vmlinux-2.6.22.9')
    

    修改后:

     self.kernel = binary('vmlinux')
    
  5. 生成benchmark的script文件,用于运行benchmark

    下载PARSEC script生成包,并解压(这里不对应该找对应x86的脚本<\font>):

     wget http://www.cs.utexas.edu/~parsec_m5/TR-09-32-parsec-2.1-alpha-files.tar.gztar zxvf TR-09-32-parsec-2.1-alpha-files.tar.gz
    

    生成script命令:

     ./writescripts.pl <benchmark> <nthreads>
    

    有以下13种benchmark:

     blackscholesbodytrackcannealdedupfacesimferretfluidanimatefreqminestreamclusterswaptionsvipsx264rtview
    

    perl可能会报警告,可以不用管

  6. 根据生成的script文件运行gem5:

     ./build/X86/gem5.opt ./configs/example/fs.py -n <number> --script=./path/to/runScript.rcS --caches --l2cache -F 5000000000
    

    其中-n 是线程数,也可以不加这个参数。–script部分要换成自己生成的.rcS脚本。

  7. 新开一个窗口,使用telnet与gem5模拟系统进行交互

     telnet localhost 3456
    

GEM5中运行parsec 2.1相关推荐

  1. gem5中运行spec2006

    问题来源:为了模拟和测试cpu架构的性能,故摸索了下gem5下如何运行spec2006的. 步骤一 (编译spec2006): 1. 购买或下载spec2006源码: 2. 参考Docs/instal ...

  2. GEM5教程: 使用 gem5 运行 PARSEC 基准测试

    Intro 本文内容 使用 gem5 运行 PARSEC 基准测试.full system 全系统模拟,包括gem5模拟一个计算机架构运行ubuntu,在gem5模拟的ubuntu里运行parsec基 ...

  3. 【CXL】在gem5中跑一个实际的应用程序——Viper KV存储

    有了CXL扩展内存,自然是要在DRAM+CXL扩展内存上跑跑实际的应用程序,看看和DRAM+传统磁盘有什么区别. 实际的应用程序其实就是一些工业界部署使用的,比如数据库.深度学习训练项目等等.本文主要 ...

  4. 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

    在androidstuio中运行我的未完项目,报错: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. & ...

  5. 程序在内存中运行的奥秘

    简介 当丰富多彩的应用程序在计算机上运行,为你每天的工作和生活带来便利时,你是否知道它们是如何在计算机中工作呢?本文用形象的图表与生动的解释,揭示了程序在计算机中运行的奥秘. 内存管理是操作系统的核心 ...

  6. IIS配置相关问题:Framework 4.5 在IIS 7.5中运行

    <system.webServer>     <validation validateIntegratedModeConfiguration="false" /& ...

  7. docker保护python源码_Tensorflow在Docker中运行和源码编译

    本文分享在在Docker中运行Tensorflow和进行源码编译的方法和步骤,包括:编译.构建docker镜像.创建和运行Docker容器.部署完的容器可以通过Jupyter Notebook进行访问 ...

  8. 在 Linux“.NET研究” 操作系统中运行 ASP.NET 4 (下)

    "在 Linux 操作系统中运行 ASP.NET 4 (中)"中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ...

  9. “Matlab R2016a中运行‘mex -setup’,错误使用 mex 未找到支持的编译器或 SDK”的解决办法

    目录 问题描述: 原因分析: 解决方案: 1.失败经验 2.成功方法 (1)下载MinGW-w64 C/C++ 编译器 (2)安装MinGW-w64 C/C++ 编译器 (3)设置为系统环境变量 (4 ...

最新文章

  1. CentOS 更改MySQL数据库目录位置
  2. scala学习-类与对象
  3. interp2 matlab fcn,matlab7.0自动关闭问题(zz)
  4. Linux NFS存储服务部署
  5. vue开源Element UI表单设计及代码生成器
  6. win10 物理按键映射、快捷键修改
  7. 【新手基础教程】maix asr(自动语音识别)
  8. “决策树”——数据挖掘、数据分析
  9. qt中将按钮指向的鼠标变成手型
  10. 支付宝《神奇海洋》素材
  11. outlook如何同步服务器sent文件夹,.ost 文件的同步问题 - Exchange | Microsoft Docs
  12. golang数据结构初探之字典map
  13. 2018年2月Ivanti英万齐(前LANDESK蓝代斯克)关闭中国研发中心
  14. MAC电脑连接windows台式机
  15. 海底的下面究竟有什么?
  16. 漫步微积分二十——微分和切线逼近
  17. PyBullet(六)UR5机器人手臂模型
  18. 阿桑奇,真正的网络英雄!
  19. win7系统ftp服务器共享文件夹权限,win7 ftp服务器 文件夹权限
  20. 材料与化学数据库分享

热门文章

  1. 核心竞争力学习与思考
  2. Enzo丨Enzo IHC酶抗原回收试剂解决方案
  3. 免费网站数据抓取插件,可视化页面数据抓取插件
  4. VisualSVN Server的使用
  5. python集合元素个数_python如何取set元素个数
  6. 必知C++算法之排列组合基本操作
  7. LAYUI表格自动渲染
  8. 第八天 Python爬虫之Rquests库打码平台的简单使用
  9. 前端.什么是冒泡和阻止冒泡的原因和方法
  10. mysql时间函数详解