• 教學 >
  • 什麼是分散式資料平行 (DDP)
捷徑

簡介 || 什麼是 DDP || 單節點多 GPU 訓練 || 容錯能力 || 多節點訓練 || minGPT 訓練

什麼是分散式資料平行 (DDP)

建立於:2022 年 9 月 27 日 | 最後更新:2024 年 11 月 14 日 | 最後驗證:2024 年 11 月 05 日

作者:Suraj Subramanian

您將學到什麼
  • DDP 在底層是如何運作的

  • DistributedSampler 是什麼

  • 梯度如何在 GPU 之間同步

先決條件

請觀看下方或 youtube 上的影片。

本教學課程簡要介紹了 PyTorch DistributedDataParallel (DDP),它可在 PyTorch 中進行資料平行訓練。 資料平行是一種跨多個裝置同時處理多個資料批次,以實現更佳效能的方法。 在 PyTorch 中,DistributedSampler 確保每個裝置都獲得一個非重疊的輸入批次。 模型會在所有裝置上複製;每個副本計算梯度,並使用 ring all-reduce 演算法 與其他副本同時同步。

說明性教學課程提供了 DDP 機制的更深入的 python 檢視。

為什麼您應該偏好 DDP 而不是 DataParallel (DP)

DataParallel 是較舊的資料平行方法。 DP 非常簡單(只需額外一行程式碼),但效能要差得多。 DDP 在架構上進行了一些改進

DataParallel

DistributedDataParallel

更多額外負荷;模型在每次前向傳遞時都會複製並銷毀

模型僅複製一次

僅支援單節點平行

支援擴展到多台機器

速度較慢;在單個進程上使用多執行緒,並遇到全域直譯器鎖定 (GIL) 競爭

速度更快(沒有 GIL 競爭),因為它使用多處理

延伸閱讀

文件

取得 PyTorch 的完整開發人員文件

檢視文件

教學

取得初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得您的問題解答

檢視資源