ubuntu18.04安装并测试gem5模拟器
GEM5是一款十分强大的模拟器,支持主流的X86、MIPS、ARM、RISC-V等多种架构的行为仿真模拟。
GEM5是M5和GEMS的结合,使用Python和C++编写(其中C++占越85%),提供大量标准化接口的同时保留了较好的灵活性。
本文介绍GEM5在Ubuntu18.04下的编译安装过程。
开发环境
安装依赖:
sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python-dev python
pip3 install pydot
依赖简单介绍如下:
SCons:gem5使用SCons作为它的构建环境。SCons类似于make,它将Python脚本用于构建过程的所有方面。这使得构建系统非常灵活(尽管速度较慢)。
protobuf 2.1+:协议缓冲区是一种语言无关、平台无关的可扩展机制,用于序列化结构化数据。在gem5中,protobuf库用于跟踪生成和回放。如果您没有计划将protobuf用于跟踪生成和回放,那么它就不是必需的包。
Boost:Boost库是一组通用c++库。如果需要使用SystemC实现的程序,那么它是一个必要的依赖项。这个库所占空间较大。
获取GEM5源码:
GITHUB被强,所以换GITEE作源:
git clone https://gitee.com/gao_hanyuan/gem5.git
担心版本的问题,避免夜长梦多,直接选择一个TAG版本编译,我选择的是v21.2.1.0
编译:
不知道处于什么原因,SCONS无法识别anaconda环境的python,在顶层目录直接执行Scons会报告如下错误:Error: Can't find a working Python installation
所以退出anaconda环境,执行
conda deactivate
退出anaconda,之后在GEM5顶层目录直接执行
scons
进行编译,如下是编译过程:
如果不加多线程编译,大概编译一个小时左右,编译完成,结果为gem5.debug。
测试
编写helloworld.c文件,并用arm-linux编译
最好使用静态编译
arm-linux-gnueabi-gcc -static main.c
之后,执行如下命令测试:
./build/ARM/gem5.debug configs/example/se.py -c ./a.out
可以看到,结果准确输出出来:
编译X86架构的仿真器
python3 `which scons` build/X86/gem5.opt -j8
编译RISCV版本的仿真器
python3 `which scons` build/RISCV/gem5.opt -j9
平头哥芯片开放社区(OCC)
编译MIPS版本的仿真器
python3 `which scons` build/MIPS/gem5.opt -j8
GEM5只支持小端结构:
SPARC
python3 `which scons` build/SPARC/gem5.opt -j8
POWER
python3 `which scons` build/POWER/gem5.opt -j8
GEM5的调试
gdb --args ./build/ARM/gem5.opt configs/example/se.py -c ./a.out
GEM5支持的架构
支持的架构包括 amdgpu,arm,mips,power,riscv,sparc,x86.
其它调试调优:
调试指令:
./build/ARM/gem5.debug --debug-flags=Exec configs/example/se.py -c ./a.out
可以看到,指令的操作类型IntAlu,MemRead,MemWrite被完整记录下来。
参考记录:
参考资料
gem5: Building gem5
python3 `which scons` build/X86/gem5.opt -j9
caozilong@caozilong-Vostro-3268:~/Workspace/gem5$ ./build/X86/gem5.opt configs/example/se.py -c ./a.out
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.gem5 version 21.2.1.0
gem5 compiled Oct 1 2022 21:53:41
gem5 started Oct 1 2022 22:57:41
gem5 executing on caozilong-Vostro-3268, pid 10597
command line: ./build/X86/gem5.opt configs/example/se.py -c ./a.outGlobal frequency set at 1000000000000 ticks per second
build/X86/mem/mem_interface.cc:793: 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 7002
**** REAL SIMULATION ****
build/X86/sim/simulate.cc:194: info: Entering event queue @ 0. Starting simulation...
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
build/X86/sim/syscall_emul.cc:74: warn: ignoring syscall mprotect(...)
main line 5, helloworld.
Exiting @ tick 156499500 because exiting with last active thread context
caozilong@caozilong-Vostro-3268:~/Workspace/gem5$
gem5运行coremark
./build/X86/gem5.opt configs/example/se.py -c ~/Workspace/coremark/coremark/coremark.exe
其它模拟器比如multi2sim可以从如下地址下载:
https://github.com/Multi2Sim/multi2sim
管中窥豹
结束
ubuntu18.04安装并测试gem5模拟器相关推荐
- Ubuntu18.04中搭建事件相机模拟器rpg-esim环境
Ubuntu18.04中搭建事件相机模拟器rpg-esim环境 esim 是 ETH 开发的一款的模拟事件相机工作原理的仿真器,其是基于ROS环境的,在安装esim环境之前,需要先安装ROS.在官方给 ...
- ubuntu18.04 安装qt5.12.8及环境配置的详细教程
这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...
- Ubuntu18.04安装cuDNN和Tensorflow的正确姿势
文章目录 Ubuntu18.04安装cuDNN和Tensorflow的正确姿势 一.检查NVIDIA驱动是否安装成功 二.检查CUDA是否安装成功 三.安装cuDNN 1. 确定版本 2. 下载安装包 ...
- Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5
Ubuntu18.04安装CUDA10.1和cuDNN v7.6.5 前言 深度学习需要使用使用GPU加速,在安装tensorflow之前需要根据选用的版本安装 就我的经验而言,CUDA的安装在Lin ...
- Ubuntu18.04安装OpenCV4.3.0和环境配置(支持编译CUDA并安装配置python-opencv)
Ubuntu18.04安装OpenCV4.3.0和环境配置 下载源文件 安装依赖 编译安装 环境配置 动态库配置 配置OpenCV的`PKG-CONFIG`环境 Python-OpenCV环境[如果安 ...
- Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0
Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0 前言 安装python3.7.7与环境变量设置 使用pip3安装tensorflow-gpu 2.2.0 测 ...
- Ubuntu18.04 安装搭建 hadoop-3.3.0 集群
Ubuntu18.04 安装搭建 hadoop-3.3.0 集群 参考博文:https://blog.csdn.net/sunxiaoju/article/details/85222290?ops_r ...
- ubuntu18.04安装显卡驱动,Anaconda,CUDA,pytorch全套流程
记录一次成功的装显卡,以为过程很复杂,其实这边封装的还挺好,正常走流程就没啥问题.我这边也是看各个步骤的博客总结,可以称之为搬运工. 1. 显卡驱动安装 参考的是这篇博客:Ubuntu18.04安装显 ...
- 西电 操作系统课设 在Ubuntu18.04安装pintos
西电 操作系统课设 在Ubuntu18.04安装pintos 前言 1. 主要步骤 2. VMware的安装 3. Ubuntu18.04的安装和配置 4. Bochs的安装 4. Pintos安装 ...
最新文章
- 小程序登录、用户信息相关接口调整说明
- python使用matplotlib可视化棉签图、棉棒图(stem plot)、展示离散而有序的数据
- 10、ctemplate文档,简记(3)
- python入门教程2word-python操作word入门
- 死锁产生的原因及条件和手写死锁
- yum 安装mysql数据库
- 【AD】mm,mile,inch+电流大小同线宽关系
- 5.5.35 - mysql 同步_MySQL 5.6.35主从同步配置案例
- uni-app之实现分页
- SQL2005企业版详细部署(一)
- 大数据培训(第一季) java基础-徐培成-专题视频课程
- 在我的世界修改服务器吗 名字,我的世界怎么改名字
- codewars练习(javascript)-2021/2/17
- 处理ArchLinux上各软件屏幕卡顿与显示问题(chrome浏览器,微信开发者工具wxdt,vscode移动慢问题)
- 你还在用二分法求2个鸡蛋100层楼的问题吗?
- 怎么快速做动态图?gif动图在线怎么制作?
- Yii Zii组件 CGridView 使用详解
- 同元车辆模型库——TA系列
- ElasticSearch 的分数 (_score) 是怎么计算得出 (2.X 5.X)
- python打包的exe文件设置开机自启动和关闭开机自启动。
热门文章
- nocas集群部署配置与启动(Windows)
- iOS之UI--主流框架的搭建-- 仿制QQ的UI框架
- 最小生成树计数模板及原理
- GNOME 桌面安装 -- 阿里云 Ubuntu 16.04 安装图形界面
- Kotlin 开发Android app(四):Kotlin 四大容器Set,Array,List,Map
- 能否在BroadcastReceiver里创建AlertDialog并显示?
- Android 进度条自增长和渐变颜色
- 基于NetworkX构建复杂网络的应用案例
- c语言编程图像拼接,一种基于Lucas-Kanade算法的图像配准和拼接方法
- 微信小游戏开发技巧(大会演讲内容整理)丨掘金开发者大会