Zaneham/Booth
Open-source CUDA, Triton and HIP compiler targeting multiple GPU and CPU architectures.
解决的问题
Booth 是一款旨在打破 GPU 特定语言锁定的编译器。它允许开发者使用 CUDA C、HIP 或 Triton 编写内核,并将其编译为多种硬件目标,包括 AMD GPU(RDNA 2/3/4)、NVIDIA GPU(通过 PTX 或原生 SASS/cubin)、Tenstorrent Metalium,甚至标准的 x86-64 CPU,适用于没有 GPU 的环境。
工作原理
Booth 作为一个跨编译器,接收来自 CUDA、HIP 或 Triton 的源代码,并将其降低为自身的内部表示(IR)。随后,它可以为目标架构生成机器码或低级指令。它支持多种前端,包括 LFortran 提供的 Fortran do concurrent 内核和 OCaml 函数,并实现了 SSA 寄存器分配和分歧分析等高级编译技术,以优化 GPU 执行。
适用人群
专为希望从单一代码库中针对多个 GPU 架构的 GPU 开发者、研究人员和爱好者设计,也适用于希望在 CPU 硬件上运行 GPU 风格内核以进行测试和开发的用户。
主要亮点
- 多 GPU 目标:支持 NVIDIA、AMD 和 Tenstorrent 硬件。
- Triton 到 CPU:无需 LLVM 即可将 Triton 内核直接编译为原生 x86-64 代码。
- 原生 NVIDIA 后端:可生成 GPU 可直接加载的 cubin 文件,绕过驱动的 JIT。
- 广泛的语言支持:支持 CUDA C、HIP、Triton、Fortran(通过 LFortran)、OCaml。
- 主框架式调试:包含结构化崩溃转储和内核故障时的参数快照。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目