RE-gem5:构建可持续的研究基础设施
注意:本文最初发表在 Computer Architecture Today 上。
RE-gem5 是一项旨在重振 gem5 底层基础设施的定向工作。RE-gem5 不是新的模拟器或新项目;它是一个增强和支持当前 gem5 基础设施的项目。
社区开发的 gem5 基础设施是最受欢迎和广泛使用的周期级计算机体系结构模拟系统之一。它在学术界和工业界用于研究,并在世界各地的大学用于教学。gem5 论文在过去 8 年中获得了超过 3100 次引用。然而,大部分软件是 15 年前编写的,目前由学生和研究人员维护。如果不努力改进底层基础设施,gem5 的软件将变得越来越脆弱,用户的研究产出将因花费在临时维护而非研究上的时间而逐渐减少。
因此,我们正在启动 RE-gem5 项目,以重振 gem5 基础设施,为未来 15 年的计算机体系结构研究提供支持。该项目将通过改进底层 gem5 组件、社区推广和改进用户服务,以及开发用于评估重要应用所需的新兴设备的新模型,来增强和重振老化的 gem5 社区基础设施。该项目将通过提高代码测试覆盖率和增加硬件设备模型的健壮性,为 gem5 基础设施的未来创造一条可持续的道路。此外,社区推广工作将扩大社区,增加 gem5 的影响力,并在项目完成后提供更多贡献者来继续开发这一基础设施。
我们计划的一些亮点包括:一名全职程序员帮助 gem5 社区开发,每年多次稳定、标记、严格测试和文档化的发布,社区推广,已知良好配置,以及支持完整的机器学习堆栈。更多详细信息可以在我们目前正在征求反馈的路线图中找到。
社区推广
我们的主要目标之一是使 gem5 更容易使用,并为更广泛的用户提供访问,既增加 gem5 的影响力,又提供更多贡献者来继续开发基础设施。为此,我们将致力于扩展 gem5 的文档,并在未来三年内创建和运行两次 gem5 暑期学校。这些暑期学校将紧密遵循 Learning gem5 书籍中的内容,并增加新模块以涵盖其他主题,如 CPU-GPU 程序、调试复杂的缓存一致性协议,以及使用 gem5 时的最佳实践。
已知良好配置
大多数计算机体系结构研究,以及更广泛的计算机系统研究,都会问一个问题:”我的新想法与当前最先进的系统相比如何?”准确代表当前最先进水平的模型对于研究这些问题至关重要。作为该项目的一部分,我们将为社区提供一套经过公开验证的当前体系结构系统组件模型,包括 CPU 核心、GPU 计算单元 (CU)、缓存、主内存系统和设备。我们将努力实现与真实系统相比的准确性;然而,由于大多数系统是专有的且复杂的,对所有工作负载实现完美准确性将很困难。因此,在提供这些模型时,我们将广泛宣传相对性能、功耗和其他指标,以便用户在选择基线配置时能够做出明智的决定。
已知良好配置将提供三个主要好处:
- 它们将允许研究人员专注于系统的某一部分,并在创新上花费更多时间,而在配置基线上花费更少时间。
- 它们将使计算机体系结构之外的系统研究人员更容易使用 gem5。
- 它们将通过使在论文中编写良好的方法论部分变得更容易来提高研究的可重现性(例如,”我们的基线来自 gem5 的已知良好配置库中的桌面代理。”)。
我们将与计算机体系结构和更广泛的计算机系统社区合作,选择并优先考虑用作基线的特定最先进技术,并征求关于哪些工作负载和系统最重要的反馈。我们将包括真实硬件系统(例如,Intel Core i7 处理器的代理)和高影响力研究提案的验证配置。
支持机器学习堆栈
为了正确分析 ML 工作负载在未来体系结构上的表现以及协同设计的硬件-软件解决方案的好处,社区需要完全开源的模拟平台。广泛使用的高级框架,如 PyTorch、Caffe 和 TensorFlow,构建在优化的 ML 库(如 MIOpen)之上。我们将通过改进 gem5 的全系统支持并为 gem5 用户提供一套 Docker 容器来快速开始使用这些复杂的框架,从而将这些框架集成到 gem5 生态系统中。我们将探索多种减少模拟时间的方法,包括 SimPoints、统计模拟、检查点保存系统状态以便重新加载,以及虚拟化快速转发,并使这些框架公开和开源。我们还将把加速器模型集成到 gem5 主线代码中,以便丰富的真实 ML 工作负载也可以在加速器上运行和优化,包括 TPU。
gem5 路线图
作为该项目的初始步骤,我们正在寻求社区对我们近期和中期路线图的反馈。路线图的草案可在以下链接获得,任何人都可以评论和建议。
该路线图的目的有两个:
我们希望获得反馈,以了解社区认为哪些其他功能重要,以及我们当前的优先级是否与社区一致。 我们希望向社区广播,变化和改进即将到来。 gem5 在计算机体系结构社区中广泛使用。我们很乐意听取您对路线图的反馈!我们真正相信 gem5 是一个社区项目,这需要社区(阅读此博客文章的每个人)的贡献!对 gem5 的方向提供反馈是对 gem5 产生重大影响的简单方法。
致谢
RE-gem5 目前主要由 NSF CCRI 资助。我们正在积极寻找额外的赞助商,以扩大该项目的影响力,并在未来许多年实现可持续的 gem5 开发。如果您或您的公司有兴趣赞助 gem5 开发以进一步增强其研究潜力,请联系 Jason Lowe-Power (jlowepower@ucdavis.edu)。
gem5 是一个开源社区项目,本文和路线图中的许多想法都来自整个社区。有关 gem5 治理的详细信息可以在我们的网站上找到。如果您想加入讨论,请订阅 gem5 邮件列表。