gem5-22.0 已发布!


首先,感谢所有贡献者,他们使这成为又一个出色的 gem5 发布! 我们将在 与 ISCA 2022 的 gem5 研讨会 上讨论此发布以及 gem5 社区在过去几年中发生的许多其他很酷的事情。 您可以在我们的 YouTube 频道上找到直播和录制内容。

gem5 版本 22.0 略有延迟,但我们有一个非常强大的发布! 此发布有来自 48 位独特贡献者的 660 项更改。 虽然没有太多大型功能,但社区在此发布中做了大量工作来改进稳定性和添加错误修复。 也就是说,我们有一些很酷的新功能,如全系统 GPU 支持、大量 Arm 改进和改进的 HBM 模型。

请参见下面的更多详细信息!

新功能

添加了许多 RISC-V 指令

以下 RISCV 指令已添加到 gem5 的 RISC-V ISA:

stdlib 自动资源下载器的改进

gem5 标准库的下载器已重新设计,以更高效地获取 resources.json 文件。 它现在被缓存,而不是在每次资源检索时检索。

resources.json 目录已移动到更永久的 URL http://resources.gem5.org/resources.json

还添加了测试以确保资源模块继续正常工作。

gem5 in SystemC 支持改进

gem5 in SystemC 已改进以适应新的研究需求。 这些更改包括稳定性改进和错误修复。 gem5 测试套件也已扩展,包括 gem5 in SystemC 测试。

改进的 GPU 支持

用户现在可以使用 ROCm 4.2 计算堆栈在全系统模式下模拟 AMD GPU 设备。 直到 v21.2,gem5 仅在系统调用仿真模式下支持 GPU 模拟,使用 ROCm 4.0。 有关运行 GPU 全系统模拟的示例脚本,请参见 gem5-resources 中的 src/gpu-fs/README.mdconfigs/example/gpufs/ 中的示例脚本。

已添加 GPU Ruby 随机测试器 以帮助验证 CPU 和 GPU Ruby 一致性协议的正确性,作为每个 kokoro 签入的一部分。 这有助于在新更改签入之前验证协议的正确性。 目前测试器专注于与 GPU 一起使用的协议,但这些想法可以扩展到其他协议。 这项工作基于 “Autonomous Data-Race-Free GPU Testing”, IISWC 2019, Tuan Ta, Xianwei Zhang, Anthony Gutierrez, and Bradford M. Beckmann。

Arm 板已添加到 gem5 标准库

通过此更改,ARM 板 ArmBoard 已添加到 gem5 标准库。 这允许使用 gem5 stdlib 组件运行 ARM 系统。

使用此板的示例 gem5 配置脚本可以在 configs/example/gem5_library/arm-ubuntu-boot-exit.py 中找到。

createAddrRanges 现在支持 NUMA 配置

当系统配置为 NUMA 时,它有多个内存范围,每个内存范围映射到相应的 NUMA 节点。为此,此更改使 createAddrRanges 能够将地址范围映射到仅给定的 HNF。

Jira 工单:https://gem5.atlassian.net/browse/GEM5-1187。

API(面向用户的)更改

CPU 模型类型不再是简单的模型名称,而是针对每个 ISA 专门化

例如,O3CPU 现在是 X86O3CPUArmO3CPU 等。 如果您有自己的 CPU 模型,这需要进行许多更改。 有关详细信息,请参见 https://gem5-review.googlesource.com/c/public/gem5/+/52490。

此外,这需要任何从旧 CPU 类型继承的配置脚本进行更改。

在许多情况下,如果只编译了单个 ISA,旧名称仍然有效。 但是,这并非 100% 正确。

最后,CPU_MODELS 不再是 build_opts/ 中的参数。 现在,如果您想为特定 ISA 编译 CPU 模型,您必须在 arch/ 目录中为 CPU 模型添加新文件。

CPU 和 ISA API 的许多更改

如果您有任何专门的 CPU 模型或任何不在主线中的 ISA,在基于此发布进行变基时期望会有许多更改。

错误修复

构建相关更改

其他更改