当前位置: 首页 > ds >正文

gem5教程第四章 了解gem5统计和输出

除了您的模拟脚本打印出的任何信息外,在运行gem5后,在名为m5out的目录中还生成了三个文件:

  • config.ini 包含为模拟创建的每个SimObject及其参数值的列表。
  • config.json 与config.ini相同,但采用json格式。
  • stats.txt 为模拟注册的所有gem5统计数据的文本表示。

config.ini

此文件是模拟内容的最终版本。此文件中显示了每个模拟SimObject的所有参数,无论是在配置脚本中设置的还是使用的默认值。

下面是从运行第二章节中的simple.py配置文件时生成的config.ini中提取的。

[root]
type=Root
children=system
eventq_index=0
full_system=false
sim_quantum=0
time_sync_enable=false
time_sync_period=100000000000
time_sync_spin_threshold=100000000[system]
type=System
children=clk_domain cpu dvfs_handler mem_ctrl membus
boot_osflags=a
cache_line_size=64
clk_domain=system.clk_domain
default_p_state=UNDEFINED
eventq_index=0
exit_on_work_items=false
init_param=0
kernel=
kernel_addr_check=true
kernel_extras=
kvm_vm=Null
load_addr_mask=18446744073709551615
load_offset=0
mem_mode=timing...
# 在这里,我们可以看到,在每个SimObject的描述开头,首先是它在配置文件中创建的名称,用方括号括起来(例如,[system.membus])。
[system.membus]
type=CoherentXBar
children=snoop_filter
clk_domain=system.clk_domain
default_p_state=UNDEFINED
eventq_index=0
forward_latency=4
frontend_latency=3
p_state_clk_gate_bins=20
p_state_clk_gate_max=1000000000000
p_state_clk_gate_min=1000
point_of_coherency=true
point_of_unification=true
power_model=
response_latency=2
snoop_filter=system.membus.snoop_filter
snoop_response_latency=4
system=system
use_default_range=false
width=16
master=system.cpu.interrupts.pio system.cpu.interrupts.int_slave system.mem_ctrl.port
slave=system.cpu.icache_port system.cpu.dcache_port system.cpu.interrupts.int_master system.system_port[system.membus.snoop_filter]
type=SnoopFilter
eventq_index=0
lookup_latency=1
max_capacity=8388608
system=system

SimObject的每个参数都会显示其值,包括配置文件中未明确设置的参数。例如,配置文件将时钟域设置为1 GHz(在这种情况下为1000滴答)。但是,它没有设置缓存行大小(在系统中为64)对象。

config.ini文件是一个有价值的工具,可以确保您模拟的是您认为正在模拟的内容。
在gem5中,有许多可能的方法可以设置默认值和覆盖默认值。始终检查config.ini是一种“最佳实践”,作为一种健全性检查,确保配置文件中设置的值被传播到实际的SimObject实例化。

stats.txt

gem5有一个灵活的统计生成系统。gem5统计数据在gem5统计中有一些详细介绍。
SimObject的每个实例化都有自己的统计数据。
在模拟结束时,或者当发出特殊的统计数据转储命令时,所有SimObjects的统计数据的当前状态将转储到一个文件中。
首先,统计文件包含有关执行的一般统计信息:

---------- Begin Simulation Statistics ----------
simSeconds                                   0.000057                       # Number of seconds simulated (Second)
simTicks                                     57467000                       # Number of ticks simulated (Tick)
finalTick                                    57467000                       # Number of ticks from beginning of simulation (restored from checkpoints and never reset) (Tick)
simFreq                                  1000000000000                       # The number of ticks per simulated second ((Tick/Second))
hostSeconds                                      0.03                       # Real time elapsed on the host (Second)
hostTickRate                               2295882330                       # The number of ticks simulated per host second (ticks/s
http://www.xdnf.cn/news/1510.html

相关文章:

  • Elasticsearch 集群节点下线方案
  • 新市场环境下新能源汽车电流传感技术发展前瞻
  • 开源项目实战学习之YOLO11:项目结构及功能分析(一)
  • Shell编程学习笔记1-Shell入门
  • 【漫话机器学习系列】219.支持向量机分类器(Support Vector Classifier)
  • Java并发编程之CompletableFuture原理与实践
  • Linux系统编程 day10 接着线程(中期头大,还要写论文)
  • 钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)
  • C++入门基础知识110—【关于C++嵌套 if 语句】
  • 使用 LangChain 掌握检索增强生成 (RAG) 的终极指南:6、索引
  • Linux:41线程控制lesson29
  • Linux安全防护:全方位服务安全配置指南
  • gem5教程第六章 为ARM扩展gem5 这也是改进gem5的一个基础
  • STM32F103 “BluePill” 上的 DMA 原理与实践
  • 「ES数据迁移可视化工具(Python实现)」支持7.x索引数据互传
  • unity游戏开发之 拖放教程2D
  • 代理ip池有哪些类型?代理IP池的定义、特点与使用场景
  • leetcode0099. 恢复二叉搜索树- medium
  • 在基于Transformer的LLM中,将越重要的提示词前置,对生成效果越好吗
  • LeetCode算法题(Go语言实现)_58
  • 122.在 Vue3 中使用 OpenLayers 实现图层层级控制(zIndex)显示与设置详解
  • CIFAR-10图像分类学习笔记(一)
  • vim的.vimrc配置
  • 【Java面试笔记:基础】11.Java提供了哪些IO方式? NIO如何实现多路复用?
  • 哪些心电图表现无缘事业编体检呢?
  • Linux程序地址空间
  • 【maven-7.1】POM文件中的属性管理:提升构建灵活性与可维护性
  • 《Cesium 中两点绘制线的实现:实线、虚线、动态线、流动线详解》
  • 元素滚动和内容垂直居中同时存在,完美的 html 元素垂直居中的方法flex + margin: auto
  • Java 中 String 转 Integer 的方法与底层原理详解