ROCm/composable_kernel

[DEPRECATED] Moved to ROCm/rocm-libraries repo. NOTE: develop branch is maintained as a read-only mirror

何を解決するか

Composable Kernel (CK) は、機械学習ワークロード用の高性能カーネルを作成するためのプログラミングモデルを提供します。異なるハードウェアアーキテクチャ(さまざまなGPUやCPUなど)間でのパフォーマンスのポータビリティを維持しつつ、コードの保守性を保つという課題に対処します。

動作方法

CKはHIP C++と2つの主要な技術的概念を使用して目的を達成します:

  1. タイルベースのプログラミングモデル:計算をタイルに分割することで、データ移動と処理の最適化を図ります。
  2. テンソル座標変換:複雑な機械学習演算子のアルゴリズム的複雑性を低減するための技術です。

ライブラリは4つのレイヤーに構成されています:テンプレート化されたタイル演算子、テンプレート化されたカーネルとInvoker、インスタンス化されたカーネルとInvoker、クライアントAPI。

対象ユーザー

複数のハードウェアターゲットで効率的に実行される必要があるパフォーマンスが重要なMLカーネルを開発する開発者向けに設計されています。

主な特徴

  • パフォーマンスのポータビリティ:複数のGPUアーキテクチャ(例:gfx908、gfx90a、gfx1100)およびCPUをサポート。
  • 多層アーキテクチャ:テンプレート化されたロジックとインスタンス化されたカーネルを分離することで、保守性を向上。
  • 広範なデータ型サポート:fp64、fp32、tf32、fp16、fp8、bf16、int8など、さまざまな精度をサポート。
  • 統合ツールキット:プロファイラ(ckProfiler)とコード生成システムを内蔵。

関連

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