HazyResearch/HipKittens
Fast and Furious AMD Kernels
解決的問題
HipKittens 提供一組低階 C++ 程式設計原語,旨在協助開發者為 AMD GPU 寫出高效率的 AI 核心。它透過針對 AMD 的 CDNA3 與 CDNA4 芯片組架構的特定架構特性進行最佳化,解決了在多晶片未來中,AI 軟體能高效跨不同硬體平台移植的挑戰。
工作原理
此函式庫從硬體出發建構,專注於晶片實際運作方式。它實作了多個關鍵原語:
- Tile 原語:針對張量核心單元設計的記憶體操作,無銀行衝突且合併存取,以最小化位址計算成本。
- Python 風格函數:輕量級批量運算函數,封裝了組合語言與 HIP。
- 非同步載入/儲存:直接將緩衝區載入至共用記憶體,用於隱藏延遲與位址產生。
- uma 排程與重疊:特定模式(如 8 波 ping pong 與 4 波交錯)以重疊運算與記憶體操作。
適用對象
適用於針對 AMD 硬體(MI300X、MI325X、MI350X、MI355X)開發高效率 AI 核心(如 GEMM、Attention、Layernorm)的開發者與研究人員。
主要亮點
- 硬體導向設計:專為 CDNA3 與 CDNA4 架構最佳化。
- 廣泛的內核支援:包含 BF16 GEMM、多種 Attention 前向/反向(MHA、GQA、Causal)、Rotary 以及融合 Layernorm 的實作。
- AITER 集成:官方作為 AITER 的後端提供。
- 效能基準測試:包含腳本,可用於與 Triton、CK、HipBLASLT 和 Mojo 等基線進行效能對比。
相關
- 專案
- 專案
- 專案
- 專案
- 專案