exo-lang/exo

Exocompilation for productive programming of hardware accelerators

解决的问题

Exo 是一种旨在提高硬件加速器编程效率的语言和编译器。它弥合了高级生产力与在专用硬件上优化性能所需的低级控制之间的鸿沟。

工作原理

Exo 允许开发人员编写可以通过 Python 直接执行的代码,或者使用 exocc 命令将其编译为 C 和头文件。它利用基于 CMake 和 Ninja 的构建系统来编译和链接生成的 C 代码。对于高级硬件功能测试(例如 AVX-512 或 AMX),它可以与 Intel Software Development Emulator (SDE) 集成。

适用对象

面向需要高效调度和优化计算,且不愿牺牲生产力的硬件加速器开发人员和研究人员。

亮点

  • Exocompilation:针对硬件加速器的专门编译过程。
  • C 代码生成:能够从 Exo 文件生成 C 和头文件。
  • 硬件支持:与 Intel SDE 等工具集成,用于测试 AMX 等 x86 特定功能。
  • 学术基础:基于在 PLDI 2022 和 ASPLOS 2025 上发表的研究。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目