Ubuntu安装gem5

GEM5是一个非常强大的模拟平台,服务于计算机系统架构相关研究,包括系统级架构和处理器微架构。最近在做GEM5相关的研究工作,顺便在blog上记下学习笔记。本文主要描述怎么正确地在Linux系统上安装和运行GEM5。

安装一些依赖软件


运行GEM5需要一些依赖软件,包括:g++ (4.7版本及以上)、Python (2.5版本及以上)、 SCons (0.98.1版本及以上)、 SWIG (2.0.4版本及以上)、zlib、m4、 protobuf (2.1版本及以上)。

1. 安装g++

g++一般系统自带,可用 g++ -v 查看版本号。

如果系统没有的话,使用如下命令安装:

sudo apt-get install g++

2. 安装Python

Python一般系统自带,可用 python --version 查看版本号。

3. 安装Scons

使用以下命令安装SCons:

sudo apt-get install scons

安装后查看版本号:

scons -v

4. 安装SWIG

使用以下命令安装SWIG:

sudo apt-get install swig

安装后查看版本号:

swig -version

5. 安装zlib

zlib一般系统自带,使用 whereis zlib 查看安装位置,如果系统没有的话,使用如下步骤安装:

zlib下载地址,解压后安装:

./configure
make
sudo make install

6. 安装m4

一般系统自带,使用 m4 --veriosn 查看版本,如果系统没有的话,使用以下命令安装m4:

sudo apt-get install m4

7. 安装protobuf

protobuf下载地址, 解压后安装:

./configure
make
sudo make install

然后使用如下命令可以查看版本号,检查是否安装完成:

protoc --version

如果报错

protoc: error while loading shared libraries: libprotoc.so.17: cannot open shared object file: No such file or directory

可以参考stackoverflow的解决方案:

sudo ldconfig

8. 安装 libprotobuf-dev 和 libgoogle-perftools-dev

sudo apt-get install libprotobuf-dev
sudo apt-get install libgoogle-perftools-dev

运行GEM5


1. 下载GEM5

GEM5下载地址,然后解压。或者直接通过命令

hg clone http://repo.gem5.org/gem5

2. 编译GEM5

以编译一个RAM处理器为例:

scons build/ARM/gem5.opt

大约二十多分钟后,编译完成。可以使用多线程提高编译速度,如使用8线程(我用这个会出现一些奇怪的错误,用单线程可以,慢就慢点吧):

scons build/ARM/gem5.opt -j8

3. SE测试

输入如下命令进行SE测试:

./build/ARM/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/arm/linux/hello

运行结果如下:

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Aug 30 2018 17:08:50
gem5 started Aug 30 2018 17:24:11
gem5 executing on ubuntu, pid 30082
command line: ./build/ARM/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/arm/linux/hello

/home/lifan/Downloads/gem5-40c18bb90501/configs/common/CacheConfig.py:50: SyntaxWarning: import * only allowed at module level
  def config_cache(options, system):
Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
**** REAL SIMULATION ****
info: Entering event queue @ 0.  Starting simulation...
Hello world!
Exiting @ tick 2924500 because exiting with last active thread context

可见输出来有Hello world!表示运行成功。(So charming “Hello world!”)

4. FS测试

全系统(full system)的模拟比较麻烦,需要下载和配置磁盘镜像。以下以X86系统为例。

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

mkdir full_system_images
cd full_system_images

2.下载X86的disk image, 并解压

wget http://www.m5sim.org/dist/current/x86/x86-system.tar.bz2
tar jxvf x86-system.tar.bz2

3.进入gem5文件夹,修改两个配置文件: SysPaths.py 和 Benckmarks.py

打开SysPaths.py配置disk image的完整路径(本文以/home/full_system_images为例):

vim ./configs/common/SysPaths.py

修改前:

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

修改后:

path = [ ’/dist/m5/system’, ’/home/full_system_images’ ]

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

vim ./configs/common/Benchmarks.py

修改前:

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-x86.img'))

4.运行,输入如下命令:

./build/X86/gem5.opt ./configs/example/fs.py

你可能感兴趣的:(NVM,ubuntu,gem5安装)