Blog
ISCA 2025:迈向全系统异构模拟:将 gem5-SALAM 合并到 gem5 主线
by Akanksha Chaudhari, Matt Sinclair(UW-Madison).
迈向 gem5 中的全系统异构模拟
Read more...
在 gem5 上运行 Bao hypervisor
by Hidemasa Kawasaki1, Soramichi Akiyama1.
1 Ritsumeikan University
Read more...
gem5 版本 23.1 发布:计算机体系结构模拟的飞跃
by Jason Lowe-Power
gem5 计算机体系结构模拟工具已发布其最新里程碑——版本 23.1。 此发布标志着 gem5 开发的重要一步,因为它过渡到 GitHub 并引入了几项突破性功能和改进。 在这篇博客文章中,我们将深入了解 gem5 v23.1 带来的关键更改和增强。
Read more...
在 gem5 中对链接器进行基准测试
by Melissa Jost
tl;dr:构建 gem5 时使用 mold 链接器 以获得最快的链接时间
Read more...
迈向 GPU 应用的全系统模拟
by Matthew Poremba
十多年来,gem5 一直支持两种模拟模式:全系统 (FS) 模式,其中模拟器使用磁盘镜像和内核启动 Linux 实例并在磁盘镜像上运行应用程序;系统仿真 (SE) 模式,其中模拟器在主机上运行应用程序并拦截系统调用并为它们提供仿真。 直到几年前,在 SE 模式下运行的二进制文件需要静态链接才能运行。 现在可以运行动态链接的二进制文件,假设动态库在主机上可用。 对于越来越复杂和专业的应用程序,例如 GPU 应用程序,动态库可能在主机系统上不可用,或者可能是与模拟应用程序所需的版本不同的版本。 在这些情况下,首选使用 FS 模式。
Read more...
gem5-22.1 已发布!
by Bobby R. Bruce
2022 年下半年,gem5 收到了来自 48 位独特贡献者的 500 次提交
Read more...
gem5-22.0 已发布!
by Jason Lowe-Power
首先,感谢所有贡献者,他们使这成为又一个出色的 gem5 发布! 我们将在 与 ISCA 2022 的 gem5 研讨会 上讨论此发布以及 gem5 社区在过去几年中发生的许多其他很酷的事情。 您可以在我们的 YouTube 频道上找到直播和录制内容。
Read more...
使用 Guix 解决 gem5 打包问题的理由
by Christopher Batten1, Pjotr Prins2, Efraim Flashner2, Arun Isaac2,Ekaiz Zarraga2, Erik Garrison2, Tuan Ta1
1 School of Electrical and Computer Engineering, Cornell University, Ithaca, NY 2 The University of Tennessee Health Science Center, Memphis, TN 3 ElenQ Technology
Read more...
gem5 中的 LupIO 设备支持
by Joël Porquet-Lupine
全面开源 I/O 设备集合的理由
Read more...
gem5-21.2 已发布!
by Bobby R. Bruce
我们自豪地宣布 gem5 项目版本 21.2。 在此发布中,我们合并了来自 33 位独特作者(新作者和常客)的 790 次提交,他们来自学术界和工业界。 我们一如既往地感谢社区为维护和改进 gem5 所付出的所有时间。
Read more...
gem5-21.1 路线图
by Jason Lowe-Power
在每个发布的早期,我们喜欢向社区提供正在为下一个 gem5 发布开发的内容的路线图。 这是一个基于社区的文档,是不同开发人员当前正在工作的摘要。 如果您正在开发一些内容并计划在 gem5-21.1 发布之前贡献,我们很乐意将其包含在这里!
Read more...
gem5-21.0 已发布!
by Jason Lowe-Power
版本 21.0 标志着 gem5 发布整整一年,在这个周年纪念日,我认为我们有一些最大的新功能! 这是一个非常富有成效的发布,有 100 个问题,超过 813 次提交,以及 49 位独特的贡献者。
Read more...
gem5 中 Arm 的事务内存扩展支持
by Timothy Hayes
This post was originally posted on the Arm Research Blog: here
Read more...
gem5-20.1 已发布!
by Jason Lowe-Power
gem5-20.1 已发布! gem5 仓库的 stable 分支现在指向 gem5-20.1 发布,而不是 gem5-20.0 发布。 总的来说,20.1 发布比 gem5-19 和 gem5-20.1 发布顺利得多。 我认为我们正在学习如何做到这一点!
Read more...
gem5 O3CPU 后端文档更新
by Zhengrong Wang
关于 gem5 O3CPU 的文档有点抽象,与代码没有密切关联。因此,本文提取关键函数链以显示指令如何由后端处理,并提供一些基本描述以降低 O3CPU 后端(IEW 和 Commit 阶段)的学习曲线。
Read more...
gem5-20.1 路线图
by Jason Lowe-Power and Bobby Bruce
在我们成功发布 gem5-20 之后,是时候开始考虑 gem5 的下一个发布 gem5-20.1 了!
Read more...
Town Hall 会议记录
by Bobby R. Bruce
6 月 3 日星期三举行了 gem5 研讨会 Town Hall。
Read more...
迈向全系统独立 GPU 模拟
by Mattew Poremba, Alexandru Dutu, Gaurav Jain, Pouya Fotouhi, Michael Boyer, and Bradford M. Beckmann.
AMD Research 正在开发一个全系统 GPU(图形处理单元)模型,能够使用 amdgpu Linux 内核驱动程序和最新的软件堆栈。此前,AMD 更新了 gem5 [1] GPU 计算时序模型以执行 GCN(Graphics Core Next)第三代机器 ISA [2,3],但它仍然依赖于系统调用仿真。通过全系统支持,该模型可以在不修改的情况下运行最新的开源 Radeon Open Compute 平台 (ROCm) 堆栈。这允许用户运行用多种高级语言编写的各种应用程序,包括 C++、HIP、OpenMP 和 OpenCL。这为研究人员提供了评估多种不同类型工作负载的能力,从传统的计算应用程序到新兴的现代 GPU 工作负载,如任务并行和机器学习应用程序。由此产生的 AMD gem5 GPU 模拟器是一个周期级、灵活的研究模型,能够表示许多不同的 GPU 配置、片上缓存层次结构和系统设计。该模型在过去几年中被用于多篇顶级计算机体系结构出版物中。
Read more...
自适应流量配置文件:在 gem5 中建模异构系统的工具
by Matteo Andreozzi, Frances Conboy, Giovanni Stea, and Raffaele Zippo
由各种设备组成的异构系统特别难以为目标用例设计和确定规模。迫切需要能够促进其设计空间探索的工具,以便设计人员和测试人员能够预测或测量其目标用例的性能。另一方面,新一代应用程序,如自动驾驶或工业 4.0 应用程序,对异构系统提出了具有挑战性的要求。这些应用程序是时间关键的,意味着必须事先保证其执行时间的严格上界,否则它们将危及人类的安全和财产。 为了满足上述两个要求,Arm 最近发布了 AMBA 自适应流量配置文件 (ATP) 框架作为开源参考实现。ATP 是一种可移植的方式,用于为异构系统的验证和/或设计空间探索生成输入。ATP 通过简单的基于规则的语法模拟异构系统中主设备的流量注入模式,例如,GPU 访问一系列连续的 RAM 地址。ATP 应用程序可以在独立模式下运行,ATP 主设备与 ATP 从设备通信,或者在混合模式下运行,主机平台(如 gem5 模拟器)充当流量转发器。我们介绍 ATP 语法和功能的基础知识,然后展示我们如何使用后者,与 gem5 一起,为 First-Ready、First-Come-First-Served (FR-FCFS) DRAM 控制器设计准最坏情况场景。这使我们能够对分析技术的结果进行基准测试,以计算同一系统的最坏情况延迟 (WCD) 的上界:通过将(可能悲观的)分析上界与使用由 ATP 配置文件提供的 gem5 模拟获得的结果进行比较,我们可以限制分析技术的悲观性。 ATP 是一个合成流量建模框架,表示执行工作负载的设备。主 ATP 模拟主设备(例如,GPU)将做什么,即根据可配置的时序属性(例如,每 100 ns 一个新请求)和目标地址发送内存请求并接收响应。其对应物是从 ATP,它模拟从设备(例如,内存)将做什么,即根据固定延迟和带宽响应请求。两者都可以有未完成事务的限制,之后它们被锁定,即无法根据配置的时序继续执行。当未完成的事务再次低于限制时(例如,因为从设备已响应主设备的请求),ATP 恢复到其活动状态。 Figure 1. ATP 的基本构建块是 ATP FIFO。这些可以组合形成复杂的行为,就像基本谐波可以组合成复杂波形一样。ATP FIFO 是一个具有自己大小和速率的队列。写 FIFO 模拟生产者,读 FIFO 模拟消费者。在写 FIFO 中,内存请求操作将缓冲区填充到其大小,而内存响应则将其排空。如果发生缓冲区溢出,事件被记录,相应的配置文件被锁定。读 FIFO 是写 FIFO...
Read more...
在 gem5 中启用多 GPU 支持
by Bobbi W. Yogatama, Matthew D. Sinclair, Michael M. Swift
引言
Read more...
面向物联网的模块化和安全系统架构
by Nils Asmussen, Hermann Härtig, and Gerhard Fettweis
引言 “物联网 (IoT)” 已经在工业生产中普及,预计也将在许多其他领域变得无处不在。例如,此类连接设备在更好地自动化和优化关键基础设施(如电网和交通网络)方面具有巨大潜力,并且在医疗保健应用中也很有前景。然而,为所有这些设备的计算硬件和系统软件提供一刀切的解决方案是不可行的,主要是由于成本压力和能源限制,但也因为每个领域需要不同的计算能力、传感器和执行器。相反,硬件和驱动它的软件都需要定制解决方案。系统设计人员应该能够从可重用的构建块中轻松组装这些专用计算机及其操作系统 (OS),这需要在硬件和 OS 级别都具有模块化。 除了模块化之外,由于 IoT 设备与物理世界的交互以及它们与互联网的连接,安全性至关重要,这使得攻击者能够对环境或人类造成伤害。因此,使用加密通信是不够的,IoT 设备本身也需要得到保护。在软件层面,单体 OS 中子系统之间的高复杂性和缺乏隔离使它们不适合这种安全关键用例。相反,基于微内核的系统(如 L4 [1])由于其模块化架构和子系统之间的强隔离而成为有前景的候选者。事实上,已经表明,基于微内核的系统可以通过将影响限制在单个子系统内,至少降低 96% 的 Linux 关键 CVE 的严重性,并且可以完全消除 40% 的 CVE [2]。 我们认为,基于微内核的系统将系统拆分为多个隔离组件的想法可以也应该应用于硬件。例如,片上系统设计人员经常从第三方供应商购买硬件组件(IP 块)。然而,调制解调器或加速器等 IP 块可能很复杂,因此不应被信任。此外,最近发现的针对现代通用核心的侧信道攻击,如 Meltdown [3]、Spectre [4] 和 ZombieLoad [5],提出了我们是否仍应信任这些复杂核心来正确执行不同软件组件之间的隔离边界的问题。因此,我们相信硬件组件(如调制解调器、加速器和核心)应该像基于微内核系统中的软件组件一样被强烈分离。 系统架构 我们的系统架构 [6],如图 1a 所示,建立在瓦片架构之上,该架构已经允许以模块化方式将硬件组件集成到单独的瓦片中。然而,尽管瓦片在物理上是分离的,但它们通常仍然对连接瓦片的片上网络 (NoC) 具有无限制的访问。我们建议在每个瓦片和 NoC 之间添加一个新的简单硬件组件,以限制瓦片对 NoC 的访问。此硬件组件称为可信通信单元 (TCU)。除了将瓦片彼此隔离之外,TCU 还允许建立和使用瓦片之间的通信通道。 称为 M³ 的操作系统(如图 1b 所示)被设计为基于微内核的系统,并利用 TCU 来隔离硬件和软件组件,同时有选择地允许它们进行通信。M³ 的内核专门在专用的内核瓦片上运行,而服务和应用程序在用户瓦片上运行。内核作为系统中唯一的特权组件,是唯一可以在瓦片之间建立通信通道的组件。用户瓦片随后可以使用已建立的通道直接与其他用户瓦片通信,而无需涉及内核。但是,用户瓦片无法更改或添加新通道。由于瓦片之间的物理分离,M³ 对瓦片没有特定要求,例如用户/内核模式或内存管理单元。因此,不仅计算核心,而且任意硬件组件(如调制解调器、加速器或设备)都可以作为用户瓦片集成,内核可以以统一的方式控制它们的通信权限。 使用 gem5 进行模拟...
Read more...
gem5 GUI
by Shivam Desai, Rohit Dhamankar, Ravishdeep Singh, Ahmed Farooqui, Jason Lowe-Power, and Bobby R. Bruce
概述
Read more...
Ruby 内存系统的灵活缓存一致性协议
by Tiago Mück
gem5 的 Ruby 内存子系统提供了灵活的片上网络模型和详细建模的多种缓存一致性协议。然而,简单的实验有时很难完成。例如,仅通过添加另一个共享缓存级别来修改现有配置需要:
Read more...
在 gem5 中模拟现代 GPU 应用
by Kyle Roarty and Matthew D. Sinclair
2018 年,AMD 添加了对基于其 GCN3 架构的更新 gem5 GPU 模型的支持。拥有高保真 GPU 模型允许对优化现代 GPU 应用进行更准确的研究。然而,获取此模型在 gem5 中运行 GPU 应用所需的必要库和驱动程序的复杂性使其难以使用。本文描述了我们在提高 GPU 模型可用性方面所做的工作,通过简化设置过程、扩展可运行的应用程序类型以及优化 GPU 模型使用的软件堆栈部分。
Read more...
面向新 DRAM 技术、NVM 接口和灵活内存拓扑的内存控制器更新
by Wendy Elsasser and Nikos Nikoleris
为 DRAMCtrl 添加 LPDDR5 支持
Read more...
HeteroGarnet - 多样化互连系统的详细模拟器
by Srikant Bharadwaj, Jieming Ying, Bradford Beckmann, and Tushar Krishna
随着片上系统 (SoC) 异构性的增加,片上网络 (NoC) 不可避免地变得更加复杂。芯片堆叠和 2.5D 芯片集成的最新进展引入了封装内网络异构性,这可能使互连设计复杂化。对此类复杂系统的详细建模需要准确建模其特性。不幸的是,当今的 NoC 模拟器缺乏对这些多样化互连进行建模所需的灵活性和功能。
Read more...
gem5art 公告
by Hoa Nguyen
Read more...
gem5-20.0 已发布!
by Jason Lowe-Power
经过漫长的等待和一些意外的问题,gem5-20.0 已发布! gem5 仓库的 master 分支现在指向 gem5-20 发布,而不是 gem5-19 发布。
Read more...
gem5 加入 Season of Docs!
by Bobby R. Bruce
Read more...
gem5-19 上的 X86 Linux 启动状态
by Ayaz Akram
Read more...
gem5-19 已发布!
by Jason Lowe-Power
gem5-19.0.0.0 已正式发布! 我们比计划晚了几个月,但未来的发布应该会更好。
Read more...
gem5 网站重新设计
by Jason Lowe-Power
欢迎来到 gem5 的新网站! 旧的 wiki 已经需要更新好几年了(见下面的截图),我们很高兴终于能与社区分享一些东西! 我们希望新网站具有更好的可用性,并让查找关于 gem5 的信息以及如何使用它变得更加容易。 如果您有任何问题或意见,请随时通过 gem5-dev 邮件列表联系我们!
Read more...
RE-gem5:构建可持续的研究基础设施
by Jason Lowe-Power and Matt Sinclair
注意:本文最初发表在 Computer Architecture Today 上。
Read more...
subscribe via RSS