NVIDIA/apex

A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch

解決的問題

Apex 提供一組工具,使 PyTorch 中的混合精度與分散式訓練更加高效且流暢。它作為在官方 PyTorch 程式碼庫正式整合之前,快速向使用者引入更新工具的捷徑。

工作原理

它實作多種自訂的 C++/CUDA 擴展,以優化常見的深度學習運算。這些擴展包括最佳化器的融合內核(如 FusedAdam)、歸一化層(如 FusedLayerNorm 和 FusedRMSNorm),以及分散式訓練的通訊原語(如 DistributedDataParallel 和 SyncBatchNorm)。使用者可作為純 Python 套件安裝,或透過建置特定的 CUDA 擴展以解鎖最大效能與數值穩定性。

適用對象

需要在 NVIDIA GPU 上優化模型訓練效能、記憶體使用與擴展性的 PyTorch 使用者,包括深度學習實務者與研究人員。

主要亮點

  • 混合精度訓練:工具可簡化混合精度的使用,加快訓練速度。
  • 分散式訓練:用於在多個 GPU 上擴展訓練的實用工具。
  • 融合內核:最佳化器與歸一化層的高效能 CUDA 實作,減少開銷。
  • 靈活安裝:支援多種建置設定,從簡單的純 Python 安裝到完整的 C++/CUDA 擴展套件。

相關

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