gem5的安装与使用

来源:互联网 发布:java web实训项目总结 编辑:程序博客网 时间:2024/05/16 18:21

陆续写些关于新书《自己动手写CPU》的博客,本篇主要是讲解gem5的安装与简单使用。


      gem5是什么?难过外事不决问谷歌,内事不决问百度。有很多这方面的资料,小生就不重复了。简单列举如下:

     The gem5 simulator is a modular platform for computer system architectureresearch计算机系统架构研究,encompassing system-level architecture as well as processormicroarchitecture.既有系统级架构又有处理器的微架构

      特点如下:

  • Pervasiveobject orientation

  • Multipleinterchangeable CPU models

  • Event-drivenmemory system

  • MultipleISA support.AlphaARMSPARCMIPSPOWERx86

  • Full-systemcapabilityAlphaSPARCMIPSx86

  • Multiprocessor/ multi-system capability

  • Powerand energy modeling

  • Co-simulationwith SystemC

      简单来说:就是一个可以模拟多种ISA的模拟器。

      废话少说,直接动手。

      一开始尝试在CentOS6.5上安装,但是发现gcc是4.4.7,不符合gem5对gcc的要求,gem5要求gcc是4.6以上。二话不说,就下载了gcc4.9.2(我们都是讲效率的人)。

      然后。。。。。。

      然后都是泪,gcc编译屡屡出错,百度了数个教程,都是一样的啊,步骤没有错啊。

      擦干眼泪,果断换系统(我们都是将效率的人)—— 安装CentOS7。

       CentOS7 安装中 。。。。。。(期间:吃饭、喝水、约MM。。。。。。)

       CentOS7 安装完成。经过查看,gcc是4.8.2,初步满足条件。安装gem5要有一下依赖软件需要安装。

  • gcc 4.6及以上版本
  • python 2.5-2.7(目前不支持pyton3.x)
  • SCons 0.98.1及以上版本
  • SWIG 2.0.4及以上版本
  • zlib任何最近的版本
  • m4
  • protobuf 2.1及以上版本

       针对CentOS7分别检查如下:

       (1)gcc:系统自带,无需安装,使用gcc -v,可以查看版本,CentOS7是4.8.2,满足条件。

       (2)python:系统自带,无需安装,使用python --version,可以查看版本,CentOS7是2.7.5,满足条件,并且有python的头文件(在/usr/include/)和库文件(在usr/lib64/)。

       (3)SCons:没有安装,需要安装。

       (4)SWIG:没有安装,需要安装。

       (5)zlib:系统自带,无需安装。使用whereis zlib可以查看安装位置。

       (6)m4:系统自带,无需安装,使用m4 --veriosn,可以查看版本,CentOS7是1.4.16。

       (7)protobuf:没有安装,需要安装。

        OK。分析完毕,下载上面的软件包,安装过程如下:

        1、安装 SCons2.3.4

        解压缩安装包后,使用如下命令安装:

python setup.py install --standard-lib

然后在终端中,输入scons -verison,会出现如下结果:
  
SCons by Steven Knight et al.:    script: v2.3.4, 2014/09/27 12:51:43, by garyo on lubuntu    engine: v2.3.4, 2014/09/27 12:51:43, by garyo on lubuntu    engine path: ['/usr/lib/python2.6/site-packages/SCons']Copyright (c) 2001 - 2014 The SCons Foundation 

        2、安装SWIG3.0.4

       解压缩安装包后,使用熟悉的命令安装,如下:

      configure

       make

       make install

       使用如下命令测试是否安装成功:

swig -verison

      应该输出如下结果:

SWIG Version 3.0.4 Compiled with g++ [x86_64-unknown-linux-gnu] Configured options: +pcre 

      3、安装protobuf2.6.1

     在https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.bz2下载release版本的protobuf2.6.1,解压缩后,使用如下命令安装:

     configure

     make

     make install

    然后使用如下命令可以检查是否安装完成:

protoc  --version

      输出如下:

libprotoc 2.6.1
      修改/root/.bashrc,添加如下:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib             // 是protobuf默认的安装路径export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/root/gem5/protobuf-2.6.1  // 是protobuf的解压缩路径

     如果不加最后一句话,那么在编译gem5的时候,会出现下面的警告:

Package protobuf was not found in the pkg-config search path. Perhaps you should add the directory containing `protobuf.pc' to the PKG_CONFIG_PATH environment variable No package 'protobuf' found Warning: pkg-config could not get protobuf flags. 

      然后应用修改:

source ~/.bashrc

     万事具备,只欠东风了,在http://www.m5sim.org/Download下载软件包gem5-stable-50ff05095970.tar.bz,解压缩后,使用如下命令进行编译,得到ARM处理器的一个目标。 
scons build/ARM/gem5.opt
    等待中,有半个小时左右(小生的计算机配置比较低,i3处理器,2G内存,哪位好心人能捐助一台高性能的计算机啊大哭)。。。。。。

    成功后,输入如下命令,可以测试。

./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 Jan 24 2015 11:24:28 gem5 started Jan 24 2015 11:32:22 gem5 executing on localhost.localdomain command line: ./build/ARM/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/arm/linux/hello /root/gem5/gem5-stable-50ff05095970/configs/common/CacheConfig.py:48: SyntaxWarning: import * only allowed at module level   def config_cache(options, system): Global frequency set at 1000000000000 ticks per second       0: system.cpu.isa: ISA system set to: 0 0x416fca0 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 **** REAL SIMULATION **** info: Entering event queue @ 0.  Starting simulation... Hello world! Exiting @ tick 2924000 because target called exit() 
     倒数第二行出现了“Hello world!”,表示测试成功。


 在编译的时候提示:

Youcan get a 12% performance improvement by installing tcmalloc(libgoogle-perftools-dev package on Ubuntu or RedHat).

也就是说使用tcmalloc会提高程序运行性能,

在http://download.savannah.gnu.org/releases/libunwind/下载libunwind-0.99-beta.tar.gz,然后configure->make->makeinstall进行安装

然后安装googleperftools 1.9,使用如下命令安装:

./configure--disable-cpu-profiler--disable-heap-profiler--disable-heap-checker--enable-minimal--disable-dependency-tracking

make

makeinstall

echo/usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf

/sbin/ldconfig

1 0
原创粉丝点击