本月初,NVIDIA 在發佈 CUDA 13.1 時宣佈了 CUDA Tile 編程模型,稱其為“自 CUDA 平台誕生二十年來規模最大、最全面的更新”。如今,CUDA Tile 的中間表示 (intermediate representation,IR) 已在 Apache 2.0 協議下開源。
CUDA Tile IR 基於 LLVM 項目中的 MLIR 中間表示。CUDA Tile IR 源自 Multi-Level Intermediate Representation (MLIR) 意義重大,有助於在非 NVIDIA 環境中實現 CUDA Tile IR 的支持。
AMD 在其 AI/計算環境中不同程度地使用了 MLIR,谷歌的 IREE 在不同廠商中發揮着重要作用,英特爾也為其硬件開發了 MLIR 方言等等。此外,還有 ONNX-MLIR、MLIRE-AIE、Torch-MLIR 等各種 IR 框架。CUDA Tile IR 基於 MLIR,有助於降低其門檻,最終推動 CUDA Tile IR 目標軟件向其他 GPU/加速器擴展。至少,CUDA Tile IR 的開源特性最終將有助於 ZLUDA 等項目的開展。
CUDA Tile 代碼由 Tile MLIR 方言、Python API 綁定、字節碼錶示和一致性測試套件組成。
CUDA Tile IR 是一個基於 MLIR 的 CUDA 內核優化中間表示和編譯器基礎架構,專注於基於分塊的計算模式和針對 NVIDIA 張量核心單元的優化。該項目提供了一個全面的生態系統,用於表達和優化 NVIDIA GPU 的分塊計算,通過對常見分塊模式、內存層次結構管理和 GPU 特定優化的抽象,簡化高性能 CUDA 內核的開發。