Gem5的基础知识(1)
来源:互联网 发布:泰勒mac口红 编辑:程序博客网 时间:2024/05/24 01:45
1、通过下面的命令可以查看se模式和fs模式下的各种可用选项(se和fs的输出内容基本一致)
se:
./build/X86/gem5.opt ./configs/example/se.py -h
fs:
./build/X86/gem5.opt ./configs/example/fs.py -h
输出内容:
gem5 Simulator System. http://gem5.orggem5 is copyrighted software; use the --copyright option for details.gem5 compiled Mar 2 2016 15:22:55gem5 started Jul 15 2016 10:09:52gem5 executing on cyh-Lenovocommand line: ./build/X86/gem5.opt ./configs/example/se.py -hUsage: se.py [options]Options: -h, --help show this help message and exit --list-cpu-types List available CPU types --cpu-type=CPU_TYPE type of cpu to run with --checker -n NUM_CPUS, --num-cpus=NUM_CPUS --sys-voltage=SYS_VOLTAGE Top-level voltage for blocks running at system power supply --sys-clock=SYS_CLOCK Top-level clock for blocks running at system speed --cpu-clock=CPU_CLOCK Clock for blocks running at CPU speed --smt Only used if multiple programs are specified. If true, then the number of threads per cpu is same as the number of programs. --list-mem-types List available memory types --mem-type=MEM_TYPE type of memory to use --mem-channels=MEM_CHANNELS number of memory channels --mem-size=MEM_SIZE Specify the physical memory size (single memory) --caches --l2cache --fastmem --num-dirs=NUM_DIRS --num-l2caches=NUM_L2CACHES --num-l3caches=NUM_L3CACHES --l1d_size=L1D_SIZE --l1i_size=L1I_SIZE --l2_size=L2_SIZE --l3_size=L3_SIZE --l1d_assoc=L1D_ASSOC --l1i_assoc=L1I_ASSOC --l2_assoc=L2_ASSOC --l3_assoc=L3_ASSOC --cacheline_size=CACHELINE_SIZE --ruby -m TICKS, --abs-max-tick=TICKS Run to absolute simulated tick specified including ticks from a restored checkpoint --rel-max-tick=TICKS Simulate for specified number of ticks relative to the simulation start tick (e.g. if restoring a checkpoint) --maxtime=MAXTIME Run to the specified absolute simulated time in seconds -I MAXINSTS, --maxinsts=MAXINSTS Total number of instructions to simulate (default: run forever) --work-item-id=WORK_ITEM_ID the specific work id for exit & checkpointing --work-begin-cpu-id-exit=WORK_BEGIN_CPU_ID_EXIT exit when work starts on the specified cpu --work-end-exit-count=WORK_END_EXIT_COUNT exit at specified work end count --work-begin-exit-count=WORK_BEGIN_EXIT_COUNT exit at specified work begin count --init-param=INIT_PARAM Parameter available in simulation with m5 initparam --simpoint-profile Enable basic block profiling for SimPoints --simpoint-interval=SIMPOINT_INTERVAL SimPoint interval in num of instructions --take-checkpoints=TAKE_CHECKPOINTS <M,N> take checkpoints at tick M and every N ticks thereafter --max-checkpoints=MAX_CHECKPOINTS the maximum number of checkpoints to drop --checkpoint-dir=CHECKPOINT_DIR Place all checkpoints in this absolute directory -r CHECKPOINT_RESTORE, --checkpoint-restore=CHECKPOINT_RESTORE restore from checkpoint <N> --checkpoint-at-end take a checkpoint at end of run --work-begin-checkpoint-count=WORK_BEGIN_CHECKPOINT_COUNT checkpoint at specified work begin count --work-end-checkpoint-count=WORK_END_CHECKPOINT_COUNT checkpoint at specified work end count --work-cpus-checkpoint-count=WORK_CPUS_CHECKPOINT_COUNT checkpoint and exit when active cpu count is reached --restore-with-cpu=RESTORE_WITH_CPU cpu type for restoring from a checkpoint --repeat-switch=REPEAT_SWITCH switch back and forth between CPUs with period <N> -s STANDARD_SWITCH, --standard-switch=STANDARD_SWITCH switch from timing to Detailed CPU after warmup period of <N> -p PROG_INTERVAL, --prog-interval=PROG_INTERVAL CPU Progress Interval -W WARMUP_INSTS, --warmup-insts=WARMUP_INSTS Warmup period in total instructions (requires --standard-switch) --bench=BENCH base names for --take-checkpoint and --checkpoint- restore -F FAST_FORWARD, --fast-forward=FAST_FORWARD Number of instructions to fast forward before switching -S, --simpoint Use workload simpoints as an instruction offset for --checkpoint-restore or --take-checkpoint. --at-instruction Treat value of --checkpoint-restore or --take- checkpoint as a number of instructions. -c CMD, --cmd=CMD The binary to run in syscall emulation mode. -o OPTIONS, --options=OPTIONS The options to pass to the binary, use " " around the entire string -i INPUT, --input=INPUT Read stdin from a file. --output=OUTPUT Redirect stdout to a file. --errout=ERROUT Redirect stderr to a file.
2、在se模式下,执行自己写的程序
#include <stdio.h>int main(){ printf("hello world!\n"); return 0;}
编译:./build/X86/gem5.opt ./configs/example/se.py -c ./gem5_test/helloworld
注意:模拟器只能运行静态编译的程序,不能是动态编译,所以在编译的时候加上-static
运行helloworld
./build/X86/gem5.opt ./configs/example/se.py -c ./gem5_test/helloworld
输出结果:
Global frequency set at 1000000000000 ticks per second0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000**** REAL SIMULATION ****info: Entering event queue @ 0. Starting simulation...hello world!hack: be nice to actually delete the event hereExiting @ tick 5461500 because target called exit()
3、指定CPU的个数
./build/X86/gem5.opt ./configs/example/se.py --cmd=./gem5_test/fft --num-cpus=4
输出结果:
gem5 Simulator System. http://gem5.orggem5 is copyrighted software; use the --copyright option for details.gem5 compiled Mar 2 2016 15:22:55gem5 started Jul 15 2016 15:23:34gem5 executing on cyh-Lenovocommand line: ./build/X86/gem5.opt ./configs/example/se.py --cmd=./gem5_test/fft --num-cpus=4Global frequency set at 1000000000000 ticks per second0: system.remote_gdb.listener: listening for remote gdb #0 on port 70000: system.remote_gdb.listener: listening for remote gdb #1 on port 70010: system.remote_gdb.listener: listening for remote gdb #2 on port 70020: system.remote_gdb.listener: listening for remote gdb #3 on port 7003**** REAL SIMULATION ****info: Entering event queue @ 0. Starting simulation...fatal: syscall set_tid_address (#218) unimplemented. @ cycle 1085000[unimplementedFunc:build/X86/sim/syscall_emul.cc, line 83]Memory Usage: 636228 KBytes
注意:这里的fft是parsec benchmark中的一个benchmark。
0 0
- Gem5的基础知识(1)
- Gem5的基础知识(2)
- Gem5的FS(全系统)模拟
- [GEM5学习]1、GEM5仿真器启动过程
- Gem5的安装
- gem5的使用
- GEM5仿真器(概要)
- GEM5笔记(一)
- gem5
- GEM5中模拟的系统调用(部分没实现)
- [代码阅读]gem5中的classic cache 初步(1)
- gem5中stats.txt的统计结果simulation statistics解释说明(运行parsec2.1测试集)
- gem5的安装与使用
- 模拟器与程序分析-1-模拟器gem5的安装与测试
- gem5线程相关的类—SimpleThread类,ThreadState类(src/cpu/thread_state.*)
- Gem5的编译及运行测试程序
- 在gem5中增加共享的L3cache
- Gem5的编译及运行测试程序
- 学习记录-Qt编写自定义控件
- 游泳池 纪中 1439 数学+二分
- 最长公共子序列(LCS)问题
- Unity3d 着色器语法(Shader)
- Android工具类之手机组件调用工具类
- Gem5的基础知识(1)
- 查找activity是否存在内存泄漏--简单粗暴
- intelliJ idea 中添加gradle java项目
- 从零开始打造一个Android 3D立体旋转容器
- MFC学习笔记——CDialog(添加控件)
- QHash存储二级model数据 以及遍历
- 百度地图
- Oracle数据库安装及配置
- 《剑指offer》二叉搜索树的后序遍历序列