GEM5 McPAT NoC教程: xml设置汇总-2023版

简介

McPAT的xml有一些参数需要设置,noc的部分很多Gem5ToMcpatparser没有设置,也没有给出如何设置的条件。尤其是和活动相关的total access,不知道具体怎么设置,也不知道如何从gem5 stats.txt中导出。本文提供了2023年的收集到getech的教程和设置汇总。最重要的一句话是,system.Noc0:total_accesses = (all cores') l2_demandaccess*2。

需要调整的部分

一共大概30行左右,是system.noc这个组件。其中total access

乔治亚理工 total access = 4 times of number of memory accesses,

在乔治亚理工的网站:https://faculty.cc.gatech.edu/\~hyesoon/fall11/prog5.html,有一个mcpat手动设置的作业,需要手动改写mcpat的xml,其中给的system.Noc0:total_accesses 原文如下:

Number of memory accesses (McPAT: system.Noc0:total_accesses = 4 times of number of memory accesses, system.mem.Memory accesses, system.mem.memory_reads, system.mem.memory_writes, (system.mc.memory_accesses, = 4 times of number of memory accesses system.mc.memory_reads = system.mc.memory_writes = 2 times of number of memory accesses))

剑桥大学的 perl 脚本

用于获取 m5 的输出并为 mcpat 创建输入文件的 Perl 脚本:m5-mcpat.pl。用法:perl m5-mcpat.pl [m5out/stats.txt] [m5out/config.ini] [mcpat-template.xml] >输出.xml

这个版本应该是相对最权威的,可惜是perl的格式而且是2011年的版本。

用的参数是l2 demand×2 。

在2023年的版本中,我有四个l2 demand_access,虽然名字和l2.demand_accesses有所差异。我的结果里有四个,推测是因为这个文件里我有四个核。

system.ruby.l1_cntrl0.L2cache.m_demand_accesses 21462729

system.ruby.l1_cntrl1.L2cache.m_demand_accesses 17043475

system.ruby.l1_cntrl2.L2cache.m_demand_accesses 20771998

system.ruby.l1_cntrl3.L2cache.m_demand_accesses 22050985

剑桥给的noc access是在l2 demand的基础上×2,推测是一个l2 demand,是需要noc发一个request和noc发一个response,也就是一次访问内存需要使用noc两次。

2023 可用的parser,最好是python

我们已经知道了,但最好有个(别人已经用过,可用的)自动化工具来做这个事情。乔治亚理工的版本是手动输入,剑桥的版本是perl代码而且是2011年的。我们需要一步步看过去2023年有那些可用于noc的mcpat parser 代码。

在2023年12月15看来,没有可用的gem5 noc mcpat库,还是手动计算n个core 的l2 demand 再x2

其他的itlb access很多人做了,noc很多人没做应该是没用garnet的缘故。好在是也不难,只用读l2 demand 然后sum x2就好。但是在2023年12月15日为止,没有找到自动化的python。

2020 EU COSSIM cMcPAT 提出更准的cMcPAT 和 total_accesses = l2.demand_accesses::total * 2

https://github.com/H2020-COSSIM/cMcPAT/tree/master 。 比较新,维护比较好,资料多,

COSSIM是一个很大的项目,其中cMcPAT 被修改来处理这些情况(针对gem5优化)。最重要的是,它添加了两个处理器描述模板,可以在尝试从 gem5 建模 ARM 和 x86 simpleCPU 模型时使用。

但对于noc来说,转换脚本是dskhudia bitbucket的库改进版,但是stats.testsys.l2.demand_accesses::total 是一般的gem5stats没有的,需要对gem5进行改源代码并且编译才能在stats.txt 输出这个文件。对我们只关心noc access的人来说,初始阶段不如用默认的输出文件,然后手动更改。

好处是他再次确认了,total_access 是两倍的l2.demand_accesses。

同一个文件内设置了其他access。

dskhudia bitbucket的库: 没有设置noc access

https://bitbucket.org/dskhudia/gem5tomcpat/src/master/template-xeon.xml

saideeptiku 没有noc access

https://github.com/saideeptiku/Gem5McPatParser/blob/master/templates/template_x86.xml。好处是他声明了用的mcpat 1.3和python 3.6,是相对新的版本了。其他有的用的是python 2.7和mcpat1.0。

2022年的csdn 帖子

2022年的 Mcpat与gem5联合 csdn帖子用的 https://blog.csdn.net/ffriend/article/details/127114214?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170263778216800182144970%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D\&request_id=170263778216800182144970\&biz_id=0\&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1\~rank_v31_ecpm-2-127114214-null-null.142^v96^pc_search_result_base7\&utm_term=mcpat parser\&spm=1018.2226.3001.4187 这一篇用的 https://github.com/Dhruv-Acharya/Gem5ToMcPAT-Parser 作者Dhuruv的github代码,但他的noc total_accesses 没有从gem5里的stats.txt读取。无效。

hardik44 Gem5toMcPat_parser 一样没有noc access

hardik44 https://github.com/Hardik44/Gem5toMcPat_parser 里也没有从没有从gem5里的stats.txt读取。无效。

zhenwen404 gem5tomcpat 没有读取noc access

https://github.com/zhewen404/gem5tomcpat/blob/main/template-xeon.xml 一样没有noc total_access. 不过他有设置itlb和dtlb读取。

takakeya gem5tomcpat 没有读取noc access

https://github.com/TAKAKEYA/gem5tomcpat/blob/master/template-xeon.xml 没有。

JuninhoCarlos gem5ToMcPAT 没有读取noc access

https://github.com/JuninhoCarlos/gem5ToMcPAT/blob/master/template-xeon.xml

UDC-GAC 用的C,不方便用和读, 不知道有没有noc access

https://github.com/UDC-GAC/gem5McPATparse/blob/master/template.xml 还说明了他们专注x86.其他的isa可能会有问题?

其他资料

有gem5 user email 提到有parser会统计total access

这个link提到了,有的parser会给关于total_access 的警告,意外着这个parser会查找total access。可惜他的问题没有回复也没有po出用的哪个parser。

有例子给出转换过的noc total_access

https://www.mail-archive.com/gem5-users@gem5.org/msg17699.html 提到了他的xml文件,其中noc access 是一个复杂的值,应该来自与gem5的stats.txt转化。 他用的文件是 Gem5tomcpat 和 mcpat-template.xml。

相关推荐
XINVRY-FPGA14 小时前
XA7A75T-1FGG484Q 赛灵思 Xilinx AMD Artix-7 XA 系列 FPGA
嵌入式硬件·fpga开发·车载系统·云计算·硬件架构·硬件工程·fpga
未来之窗软件服务14 小时前
万象EXCEL开发(四)格式解读theme1.xml ——东方仙盟练气期
xml·仙盟创梦ide·东方仙盟·万象excel
JiaWen技术圈1 天前
关于机器人的物理结构(连杆、关节、执行器)的快速入门介绍
人工智能·单片机·嵌入式硬件·机器人·硬件架构
未来之窗软件服务1 天前
万象EXCEL开发(二)格式解读sharedStrings.xml——东方仙盟练气期
xml·excel·仙盟创梦ide·东方仙盟·万象excel·东方仙盟格式
currycheng62 天前
开关电源测试及方法
单片机·嵌入式硬件·硬件架构·硬件工程
goTsHgo2 天前
Spring XML 配置简介
xml·java·spring
半导体守望者2 天前
TR帝尔编码器GSD文件 PROFIBUS XML PROFINET EtherCAT 文件 ADH CDH CMV等
xml·经验分享·笔记·机器人·自动化·制造
极光雨雨2 天前
XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>
xml
JiaWen技术圈2 天前
机器人小脑的核心技术有哪些 ?
单片机·嵌入式硬件·机器人·硬件架构
国科安芯3 天前
AS32S601ZIT2型MCU:基于RISC-V架构的抗辐照设计与试验评估
网络·单片机·嵌入式硬件·fpga开发·架构·硬件架构·risc-v