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 等基線進行效能對比。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案