0. 简介
现在(2024)集成的是dsent。 Garnet作者,Turshar在2018年说Orion已经过时不在集成DSENT,但是集成DSENT的代码随着gem5更新也过时了,而他短期内没有更新的计划(2018年说的)。2023年还有一些相关的官方邮件更新。这里是关于运行dsent的介绍和修复。
0.1 DSENT 地址
这里是github地址:https://github.com/mit-carbon/Graphite/tree/master/contrib/dsent/dsent-core
( https://sites.google.com/site/mitdsent 最常见于搜索的这个地址,也是readme中的地址,已经404了)
据下面的邮件回复说,DSENT 并未得到积极开发/维护,但github地址有一个副本。
下面的地址也是Turshar教授关于dsent和garnet的回复。本文后续会详细介绍这两份邮件。
https://www.mail-archive.com/gem5-users@gem5.org/msg21347.html
https://www.mail-archive.com/gem5-users@gem5.org/msg15749.html
1. 2023年: 推荐用garnet来获取统计数据
见下图。 dsent 的解析脚本已经过时了。 可以用garnet来获取统计数据然后单独运行DSENT。
1.1 2023邮件: DSENT 不能给自定义的单元估计功耗
其实很好理解,大家一般是用Synopsys的工具或者intel之类公司发布的文章数据作为ground truth,建了个model说在这些条件下算的值是比较准的,然后外推到其他没有ground truth的条件。
但是自己写的unit是没有流片或者rtl参考值的,也就没人(包括DSENT)建model。除非自己流片或者自己写个rtl让合成工具给功耗估计值。
1.2 2018邮件:DSENT读取config.ini和stats.txt
其实这两txt文件的数据也已手动输入。不过也可以更改parser代码,用代码读取文件作为输入。
2. 实际的运行
2.0 编译DSENT
2.1 (不更改)运行DSENT
2.1.1 (不更改)不debug直接运行DSENT,报错
2.1.2 (不更改)debug
python ./util/on-chip-network-power-area.py /home/yz/myprojects/2024GEM5/parsec-tests/yzmodifiedgem5/ m5out /home/yz/myprojects/2024GEM5/parsec-tests/yzmodifiedgem5/ext/dsent/configs/garnet_router.cfg /home/yz/myprojects/2024GEM5/parsec-tests/yzmodifiedgem5/ext/dsent/configs/garnet_link.cfg 32 500
几个问题:0. python文件还是不行,还是试试单独编译dsent(与gem5 cpp或python代码无关),再手动把stat和config的文件导入进去。
下面是关于gem5/ext/dsent下的问题。 这个是生成一个。so文件,供python 代码调用。 但是代码过时了,即使是邮件里给的补丁也过时了。
- pythonconfig是python2,而我们的系统已经默认python3了。 解决: conda开一个python2.7的环境。
2.2 更改运行DSENT
GEM5内置的版本因为gem5迭代而没有更新内置的dsent,BUG 太多,回归DSETN 原版:https://github.com/mit-carbon/Graphite/tree/master/contrib/dsent/dsent-core。
附录
没有加括号,print加上括号