采集gem5benchmark的数据

1.      benchmark执行的过程中,每模拟1M1百万条指令)指令后,取此时的L2Cache的命中率和不命中率,可以写个脚本,通过-I 参数模拟指定数量的指令,比如-I 1000000 表示模拟1M条指令。这样耗费时间较多,比如要取100个点,1M2M。。。100M,则需要模拟100次。

2.      换一个思路,运行一次benchmark的模拟程序,就完成100数据采集,也就是通过判断模拟指令的条数(system->totalNumInsts % 1000000 ==0),如果模拟指令条数是1M的倍数,则取点,输出此时的命中次数和不命中次数,可以直接输出到屏幕上,因为若是输出到stats.txt的话应该是在模拟结束才能取(这个我也不确定,我也不知道能不能再模拟的过程输出到stats.txt,需要后续的确认)。

3.      如何找到命中次数呢,现在以

system.l2.overall_misses::total             423898388                       # number of overallmisses

为例,通过stats.txt的输出可以知道,不命中次数,通过grep –r 查找知道,Formula 类型的overallMisses记录不命中率,通过overallMisses.total()函数得到不命中次数。

其实这点早应该想到,记录系统模拟指令条数的System * sytem变量就是通过totalNumInsts得到的,应该也得想到得通过total函数得到的

gem5学习基础完整版,介绍了gem5环境的安装,以及一些基本概念。 gem5仿真器是用于计算机系统体系结构研究的模块化平台,涵盖系统级体系结构以及处理器微体系结构。1、多个可互换的CPU型号。 gem5提供了四种基于解释的CPU模型:简单的单CPI CPU; 有序CPU的详细模型和无序CPU的详细模型。 这些CPU模型使用通用的高级ISA描述。 此外,gem5具有基于KVM的CPU,该CPU使用虚拟化来加速仿真。 2、完全集成的GPU模型,可以执行真实计算机ISA,并支持与主机CPU共享的虚拟内存。 3、NoMali GPU模型。 gem5带有集成的NoMali GPU模型,该模型与Linux和Android GPU驱动程序堆栈兼容,因此无需进行软件渲染。 NoMali GPU不产生任何输出,但可以确保以CPU为心的实验产生代表性的结果。 4、事件驱动的内存系统。 gem5具有详细的,事件驱动的内存系统,包括高速缓存,交叉开关,探听过滤器以及快速而准确的DRAM控制器模型,用于捕获当前和新兴内存的影响,例如内存。 LPDDR3 / 4/5,DDR3 / 4,GDDR5,HBM1 / 2/3,HMC,WideIO1 / 2。 可以灵活地布置组件,例如,以具有异构存储器的复杂的多级非均匀高速缓存层次结构来建模。 5、基于跟踪的CPU模型,可播放弹性跟踪,这些跟踪是由附着到乱序CPU模型的探针生成的依赖项和定时注释的跟踪。 跟踪CPU模型的重点是以快速,合理的方式而不是使用详细的CPU模型来实现内存系统(高速缓存层次结构,互连和主内存)的性能探索。 6、异构和异构多核。 可以将CPU模型和缓存组合到任意拓扑,从而创建同构异构的多核系统。 MOESI侦听缓存一致性协议可保持缓存一致性。 7、多种ISA支持。 gem5将ISA语义与其CPU模型解耦,从而实现对多个ISA的有效支持。 目前gem5支持Alpha,ARM,SPARC,MIPS,POWER,RISC-V和x86 ISA。 有关更多信息,请参见支持的体系结构。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值