gem5-21.1 路线图
在每个发布的早期,我们喜欢向社区提供正在为下一个 gem5 发布开发的内容的路线图。 这是一个基于社区的文档,是不同开发人员当前正在工作的摘要。 如果您正在开发一些内容并计划在 gem5-21.1 发布之前贡献,我们很乐意将其包含在这里!
要为路线图做出贡献,您可以按照以下步骤操作:
- 在我们的问题跟踪器上创建问题或史诗。如果贡献很大且有许多不同的个人贡献,最好创建史诗以将所有单独的问题组合在一起。
- 将问题标记为”修复版本 21.1”并将自己分配为”受让人”。
- 通过下载网站源代码并在 gerrit 上创建变更集来更新此路线图文档。
21.1 路线图
我们计划在7 月(gem5-21.0 发布后约 4 个月)发布 gem5-21.1。 以下是我们目前计划在 21.1 中包含的主要功能。
gem5 组件库
如果使用 gem5 就像走进 Microcenter 并选择组件,那不是很酷吗? 此项目的目标是实现这一点!
我们将创建一个组件和”已知良好”配置的库。 使用组件,您可以选择不同的缓存系统(例如,私有 L1、共享 L2)、不同的 CPU 和不同的 RAM 等组件,将它们插入”板”以创建系统。
或者,您可以选择使用我们的预构建系统之一作为基线。 这些预构建系统将进行基准测试/测试,数据将在 gem5-resources 网页上公开提供:http://resources.gem5.org/。
对于组件,目标是它们始终可组合。 换句话说,任何内存都可以连接到任何缓存系统,而任何缓存系统都可以连接到任何 CPU。 并且,希望这适用于任何 ISA 等。
我们现在正在研究细节,并将在未来几周内在 gerrit 上提出提案。 如果您有反馈,请随时在 gem5-dev 邮件列表、Jira 问题或发布时的 gerrit 变更集上告知我们!
继续改进基于 Python 的统计
在 gem5-21.0 中,我们实现了一个基于 Python 的 API 用于访问统计。 但是,这默认未启用。 在 21.1 中,我们期望此 API 得到改进并添加更多功能。 请在 Jira 问题或邮件列表中告诉我们您希望从新的统计界面中看到什么!
SST 集成
我们已经为几个发布版本努力改进 gem5-SST 集成。 我们首先创建了一个文档化的稳定 API,它仍然有一些未解决的问题。 我们期望到 21.1 时,我们将有一个概念验证,其中 gem5 可以用作 SST 中的组件。
上游化 power-gem5
gem5 中的 POWER 支持多年来一直停滞不前。 但是,在 gem5 的分支 中已经做出了重大努力来更新到最新的 POWER 功能并改进支持。
目前在 gerrit 上有很多更改:例如,https://gem5-review.googlesource.com/c/public/gem5/+/40948 正在努力合并这两者。 我们非常感谢对这些更改的审查和反馈,特别是如果 POWER 支持对您很重要!
GPU 更新
全系统 GPU
目前,gem5 也仅在 SE 模式下支持 GPU 运行,而不是 FS 模式。 作为下一个发布的一部分,我们计划发布 gem5 GPU 模型的 FS 模式支持。
支持新的运行时和 GPU
目前 gem5 的 SE 模式 GPU 支持是针对 ROCm 1.6 和 Carrizo 级 GPU,现在已经相当过时了。 为了帮助解决这个问题,我们计划在 gem5 的下一个版本中发布对 ROCm 4.0 的支持。 此外,我们还将包括对 Vega 级 GPU 的支持,这些 GPU 更现代。
我们正在做的其他事情
以下是我们已经开始或想要做的其他一些事情,但它们要么较小,要么处于次要位置。 如果有人有兴趣贡献,选择这些问题之一可能是一个很好的方式!
- 改进多级 TLB 模型
- 目前没有活跃的开发,但许多不同的用户/开发人员有重大兴趣
- Pydoc 文档
- RISC-V PMP 支持
- 升级替换策略 API 以支持最先进的替换策略
- 启用 SimObject 的 GTesting(关键部分)并添加尽可能多的单元测试
- (相应的链)[https://gem5-review.googlesource.com/c/public/gem5/+/44109/3]
- 如果 GTesting 问题的关键更改被合并,改进探针
- 最后,添加 gem5 命名空间。更改本身不一定需要在下一个版本之前完成,但如果在那时做出决定并采取很少的第一步,那就太好了。