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++ 和兩種主要的技術概念來達成其目標:

  1. 基於分塊的程式設計模型:將運算組織成塊,以優化資料移動與處理。
  2. 張量座標轉換:一種用於降低複雜機器學習運算子演算法複雜度的技術。

該函式庫分為四個層級:模板化分塊運算子、模板化內核與呼叫器、實例化內核與呼叫器,以及客戶端 API。

適用對象

專為需要在多個硬體目標上高效執行的效能關鍵型 ML 內核開發者設計。

主要亮點

  • 效能可移植性:支援多種 GPU 架構(例如 gfx908、gfx90a、gfx1100)和 CPU。
  • 多層架構:將模板化邏輯與實例化內核分離,以提升可維護性。
  • 廣泛的資料類型支援:支援多種精度,包括 fp64、fp32、tf32、fp16、fp8、bf16 和 int8。
  • 整合工具鏈:包含分析器(ckProfiler)與程式碼產生系統。

相關

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