Tutel

Tutel是微軟亞洲研究院於2021年發布的高性能混合專家模型(MoE)庫,旨在最佳化大規模深度神經網路訓練效率。該庫針對MoE模型的計算與通信瓶頸,通過最佳化GPU核心、all-to-all通信算法及多樣化算法支持,兼容PyTorch等主流框架,並集成至Fairseq、DeepSpeed等工具包。

其核心技術包括:將輸出選通調度時間複雜度從O(N)降至O(N),提升運算速度24倍;最佳化GPU間通信策略,在512個A100 GPU集群中實現2.56-5.93倍加速;支持動態自適應並行技術,在2048個GPU環境下單層MoE獲得5.75倍提速。該庫已套用於SwinV2-MoE等模型,訓練與推理速度分別較Fairseq提升1.55倍和2.11倍,並在Meta萬億參數語言模型中實現40%端到端加速。

基本介紹

  • 外文名:Tutel
  • 發布單位:微軟亞洲研究院
三大優勢,算法支持,

三大優勢

與現有的 MoE 解決方案相比,Tutel 具有以下三個主要優勢:
最佳化面向 MoE 的計算。由於缺乏高效的實現方法,目前基於 MoE 的 DNN 模型依賴於深度學習框架(如 PyTorch、TensorFlow 等)提供的多個現成 DNN 運算符的拼接來組成 MoE 計算。由於需要冗餘計算,這種做法會導致顯著的性能開銷。Tutel 設計並實現了多個高度最佳化的 GPU 核心,為面向 MoE 的計算提供了運算符。例如,Tute l 將調度“輸出選通(gating output)”的時間複雜度從 O (N^3) 降低到 O (N^2),顯著提高了數據調度的效率。Tutel 還實現了快速 cumsum-minus-one 運算符(fast cumsum-minus-one operator),與 fairseq 實現方式相比,達到了 24 倍的加速。此外,Tutel 還利用 NVRTC(CUDA C++ 的運行時編譯庫)進一步實時最佳化了定製的 MoE 核心。
在 Azure NDm A100 v4 群集上實現底層 all-to-all 通信最佳化。Tutel 針對 Azure NDm A100 v4 群集上的大規模 MoE 訓練,最佳化了 all-to-all 聚合通信(collective communication),其中包括 CPU-GPU 綁定和自適應路由(AR)調整。在非一致存儲訪問結構(NUMA)系統上,尤其是在 NDv4 VM 上,正確的 CPU-GPU 綁定對於 all-to-all 性能非常關鍵。但是,現有的機器學習框架(TensorFlow、PyTorch 等)並未提供高效的 all-to-all 通信庫,導致大規模分散式訓練的性能下降。
Tutel 可以自動最佳化綁定,並為用戶微調提供簡潔的接口。此外,Tutel 在 NDm A100 v4 集群上使用了多路徑技術,即 AR。對於 MoE 中的 all-to-all 通信,每個 GPU 通信的總數據流量規模並不會發生變化,但每個 GPU 之間的數據規模會隨著 GPU 數量的增加而變小。而更小的數據規模會在 all-to-all 通信中產生更大的開銷,導致 MoE 訓練性能下降。藉助 Azure NDm A100 v4 集群提供的 AR 技術,Tutel 提高了小訊息組的通信效率,並在 NDv4 系統上提供了高性能的 all-to-all 通信。得益於 CPU-GPU 綁定和 AR 調整,Tutel 使用 512 個 A100 GPU,對通常用於 MoE 訓練的每次交換的數百兆位元組的訊息,實現了 2.56 倍到 5.93 倍的 all-to-all 加速。

算法支持

Tutel 為最先進的 MoE 算法提供了多樣化且靈活的支持,包括:
  • 為 Top-K gating 算法設定任意 K 值(大多數實現方法僅支持 Top-1 和 Top-2 )。
  • 不同的探索策略,包括批量優先路由、輸入信息丟失、輸入抖動。
  • 不同的精度級別,包括半精度(FP16)、全精度(FP32)、混合精度等(下一個版本中將支持 BF16)。
  • 不同的設備類型,包括 NVIDIA CUDA 和 AMD ROCm 設備等。

相關詞條

熱門詞條

聯絡我們