facebookincubator/AITemplate
AITemplate is a Python framework which renders neural network into high performance CUDA/HIP C++ code. Specialized for FP16 TensorCore (NVIDIA GPU) and MatrixCore (AMD GPU) inference.
解決的問題
AITemplate 是為最大化 NVIDIA 與 AMD GPU 上深度神經網路的推論速度而設計。它透過將模型轉換為高度優化、自我完備的 C++ 程式碼,克服通用執行環境的效能瓶頸,實現接近硬體理論最大效能(屋頂線)的推論服務。
工作原理
此框架將神經網路圖轉換為 CUDA 或 HIP C++ 程式碼。它採用多種先進的融合技術,以減少記憶體開銷並提升 GPU 使用率:
- 水平融合:將具有不同輸入形狀的平行運算(如 GEMM 或 LayerNorm)合併為單一核心。
- 垂直融合:將一系列運算(如元素運算與還原運算)直接融合至 TensorCore 或 MatrixCore 運算中。
- 記憶體融合:將串接、分割、切片等記憶體運算整合至其前序運算中。
它包含一個稱為 FX2AIT 的工具,可將 PyTorch 模型轉換為 AITemplate 引擎。若模型包含 AITemplate 尚未支援的運算,FX2AIT 可透過拆分模型實現部分加速。
適用對象
需要在 Ampere 世代 NVIDIA GPU(SM80+)或 CDNA2 AMD GPU(MI-210/250)上實現極致推論效能的開發者與工程師,特別適用於 BERT、Stable Diffusion 與 Vision Transformers 等模型。
特色亮點
- 硬體無關:可在 NVIDIA 與 AMD GPU 平台上運作。
- 零依賴:編譯後的模型為自我完備的二進位檔,執行時無需 cuBLAS、cuDNN 或 TensorRT 等第三方函式庫。
- PyTorch 整合:可直接使用 PyTorch 張量作為輸入與輸出,無需額外記憶體複製,亦可在完全無 PyTorch 的環境中執行。
- 可擴充:透過在 Python 中定義圖節點與後端程式碼產生,可輕鬆新增新運算或融合核心。
相關
- 專案
- 專案
- 專案
- 專案
- 專案