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

GEM5学习(3):如何快速创建一个组件

通过一个图并行计算的测试用例,来学习如何快速构建一个目标组件

其核心思想是通过继承现有组件再拓展自定义参数

创建脚本

如何创建脚本,具体还可以看官方说明:gem5: Adding cache to configuration script

mkdir configs/tutorial/part1/touch configs/tutorial/part1/components.py

配置脚本中,实现了对cache大小,核数的配置。后面可以通过调整参数值进行结果对比。脚本内容如下:

描述的是一个ARM 架构,单核,主频为3Ghz ,支持两级cache 。运行了一个 并行图算法基准测试套件,一共跑10次,每次输出时间。

from gem5.components.boards.simple_board import SimpleBoard
from gem5.components.processors.simple_processor import SimpleProcessor
from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import (MESITwoLevelCacheHierarchy,
)
from gem5.components.memory.single_channel import SingleChannelDDR4_2400
from gem5.components.processors.cpu_types import CPUTypes
from gem5.isas import ISA
from gem5.resources.resource import obtain_resource
from gem5.simulate.simulator import Simulator
cache_hierarchy = MESITwoLevelCacheHierarchy(l1d_size="16KiB",l1d_assoc=8,l1i_size="16KiB",l1i_assoc=8,l2_size="256KiB",l2_assoc=16,num_l2_banks=1,
)
memory = SingleChannelDDR4_2400()
processor = SimpleProcessor(cpu_type=CPUTypes.TIMING, isa=ISA.ARM, num_cores=1)
board = SimpleBoard(clk_freq="3GHz",processor=processor,memory=memory,cache_hierarchy=cache_hierarchy,
)
board.set_workload(obtain_resource("arm-gapbs-bfs-run"))
simulator = Simulator(board=board)
simulator.run()

运行脚本

运行脚本

./build/ALL/gem5.opt configs/tutorial/part1/components.py

其平均耗时为 0.001 秒, 输出结果如下:

修改参数

修改CPU主频为6Ghz ,其平均时间由之前的0.001 ,变成了现在的0.0005

http://www.dtcms.com/a/362485.html

相关文章:

  • 【Maven】《十分钟搞清Maevn项目》
  • AI Agent 扣子介绍
  • 优选算法的映射之妙:哈希表专题
  • 固定资产管理系统核心功能拆解:批量导入、OCR 识别有多高效?
  • Linux内核O(1)调度算法
  • 云计算学习笔记——Linux系统网络配置与远程管理(ssh)篇
  • 二进制流进行预览pdf、excel、docx
  • 手把手教你学 Simulink (1.3):探索Simulink模块库的奇妙世界
  • QT6(QFileSystemModel和QTreeView)
  • 第三方软件测评:第三方组件(如 jQuery、Bootstrap)的 WEB安全测试方法
  • Element Plus 表格表单校验功能详解
  • 封装Element UI中el-table表格为可配置列公用组件
  • ubantu20.04 git clone 无法连接问题与解决方法
  • Hard Disk Sentinel:全面监控硬盘和SSD的健康与性能
  • SQLSERVER基本cmd操作命令
  • 2025含金量高的市场岗位证书有哪些?
  • 4种有效方法将联想手机数据传输到电脑
  • 设计软件启动失败?“找不到vcruntime140.dll,无法继续执行代码” 场景化解决方案来了
  • 【Stream API】高效简化集合处理
  • 智能数据采集实战:从爬取到分析一步到位
  • 【音视频】VP8 与 VP9 技术详解及与 H.264 H.265 的对比
  • FFmpeg命令行音视频工具:高效实现格式转换与批量处理,支持音频提取与精准视频剪辑
  • 【LeetCode牛客数据结构】单链表的应用——环形链表及链表分割问题详解
  • 【音视频】WebRTC-NACK
  • 苹果手机文本转音频,自行制作背诵素材
  • CentOS 创建站点
  • 从零开始学习C#上位机开发学习进阶路线,窥探工业自动化和物联网应用
  • Windows---DWORD与IPVOID
  • milvus-standalone启动失败unhealthy,错误日志context deadline exceeded
  • 2023知识图谱与大模型融合实践研究报告