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
- 專案