我们正在迅速接近百亿亿次计算时代,但几乎没有工具和基础设施来帮助我们为未来构建软件/硬件共同设计的生态系统。我们不能再等待新硬件来开发软件。同样,为了满足这些百亿亿级及以上系统的性能和功率目标,我们必须以协同设计系统的形式利用专业化,这意味着硬件和软件必须一起设计,而不是孤立地设计。
专业化还将开源生态系统扩展到具有开放式 ISA 的硬件,例如 RISC-V,它定义了软件级别互操作性的基本标准,同时还可以灵活地将架构专业化以包括新的应用程序功能和硬件支持。这种新功能正在开启一个令人兴奋的系统设计新时代,全栈研发,包括构建专用硬件。MareNostrum Exascale 实验平台 (MEEP) 是实现灵活硬件平台的第一步,我们可以使用该平台来映射或模拟各种不同的开发架构,包括硬件和软件。
BSC 正在构建各种软件和硬件组件,以支持开源软件和硬件 HPC 生态系统。我们正在构建开源软件的丰富历史,并将其扩展到基于 RISC-V 指令集架构 (ISA) 的开源硬件。MEEP 支持使用 FPGA 快速评估硬件架构。这是通往开放 HPC 生态系统(包括硬件和软件)的众多步骤之一。此外,与软件模拟不同,MEEP 还是一个软件开发工具,它允许我们以合理的速度运行整个软件堆栈以进行交互式开发。MEEP 是我们的数字实验室,用于设计、测试和评估未来的百亿亿次加速器和系统,真正的软件/硬件协同设计。
与软件不同,硬件开发成本非常昂贵,错误也非常昂贵,尤其是在芯片制造中。MEEP 提供了一种以灵活性换取性能的机制。我们正在使用 FPGA 构建 MEEP,FPGA 是一种灵活的硬件组件或结构,可以一遍又一遍地重新编程。它使我们能够像对待软件一样对待硬件,具有与软件相同的灵活性,我们可以重新编译硬件描述语言来创建新的硬件设计以映射到 FPGA 架构上。MEEP 基础设施软件和 FPGA 使硬件仿真更像传统的软件开发。此外,MEEP 不仅可以用于单个仿真项目,例如,MEEP 的第一个演示器,一个百亿亿次加速器。MEEP 可以模拟其他加速器设计以及 CPU。
构建一个 Exascale 加速器模拟器
MEEP 结合了软件、架构和 RTL 三个主要组件以及硬件组件,形成了一个完整的系统仿真平台。第一个部署将是用于 HPC 和高性能数据分析 (HPDA) 应用程序的 exascale 加速器。因此,我们组装了一组 HPC、AI、ML 和 DL 应用程序,以实现加速。
基于此基准套件,我们分析应用程序并定义针对这些应用程序优化的架构。通过定义的架构,我们可以编写 RTL,即描述硬件的代码。在真正的协同设计实践中,我们可以灵活地在堆栈的任何级别、软件堆栈的任何层和硬件上进行更改。这是一个新的灵活性水平,可以为问题提供最佳的整体解决方案,而不是受限于仅软件更改和/或仅模拟验证。
最后,我们将软件和架构以及 RTL 结合起来,并将其映射到模拟器上。这是一个由大约 100 个 CPU 和 FPGA 组成的系统。这种规模可以实现超出正常单芯片评估的更大规模系统研究。CPU 和 FPGA 的组合为将逻辑仿真器映射到物理资源提供了额外的灵活性。我们可以用 exascale 加速器或我们映射到 MEEP 的任何其他系统的逻辑定义来模糊物理硬件的界限。此外,我们正在使用传统的加速器架构,该架构可用于在这个初始项目之外的大规模研究。FPGA 是提供这种灵活性的基本构建块。我们基本上以两种不同的方式部署 FPGA:FPGA Shell 和 FPGA Emulator。我们将 FPGA Shell 定义为与内存和 I/O 的 FPGA 接口。FPGA Shell 包含所有 FPGA 设计中的所有通用基础设施。FPGA 架构其余部分中剩余的 FPGA 资源可用于仿真和/或加速器设计。
HPC 应用程序包括新兴的 AI、ML 和 DL 工作负载。MEEP 将使我们能够展望未来,并在新硬件可用之前演示事情是如何工作的。这种硅前验证将通过提高 RTL 的质量和消除错误来节省大量资金。
MEEP 为新硬件及其相关硬件的系统级软件开发提供了独特的机会。我们正在构建一个紧密耦合的加速器,它超越了传统的 HPC 应用程序,包括新兴的 AI、ML 和 DL 工作负载。MEEP 将使我们能够展望未来,并在新硬件可用之前演示事情是如何工作的。这种硅前验证将通过提高 RTL 的质量和消除错误来节省大量资金。MEEP 还将支持新系统的软件开发,实现新硬件和软件的并行开发。这对于必须等待新硬件可用的软件开发尤其重要。在这两种情况下,
审核编辑:郭婷
-
FPGA
+关注
关注
1625文章
21648浏览量
601485 -
HPC
+关注
关注
0文章
309浏览量
23667 -
模拟器
+关注
关注
2文章
864浏览量
43150
发布评论请先 登录
相关推荐
评论