采集gem5benchmark的数据

本文介绍了两种在benchmark中高效获取L2 Cache命中率的方法:一是通过脚本模拟指定数量的指令并记录;二是改进模拟程序,使其在运行过程中按需输出命中率数据。文中还详细说明了如何从stats.txt文件中提取命中次数。

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函数得到的

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值