HazyResearch/HipKittens

Fast and Furious AMD Kernels

何を解決するか

HipKittens は、AMD GPU 専用に高パフォーマンスな AI カーネルを書くために設計された低レベル C++ プログラミングプリミティブのセットを提供します。AMD の CDNA3 および CDNA4 チップレットアーキテクチャの特定のアーキテクチャ的特徴を最適化することで、異なるハードウェアプラットフォーム間で効率的に AI ソフトウェアを移植できるマルチシリコン未来を実現する課題に対処します。

動作方法

このライブラリはハードウェアから構築されており、シリコンが実際にどのように動作するかに焦点を当てています。以下の主要なプリミティブを実装しています:

  • タイルプリミティブ:テンソルコアユニットに最適化されたメモリ操作で、バンクコンフリクトがなく、アドレス計算コストを最小限に抑えるコールセスド操作。
  • Python風関数:アセンブリおよび HIP をラップする軽量なバッチ計算関数。
  • 非同期ロード/ストア:共有メモリへの直接バッファロードで、レイテンシを隠蔽し、アドレス生成を最適化。
  • uma スケジューリングとオーバーラップ:8ウェーブのピンポンや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 などのベースラインと比較するためのスクリプトを含む。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト