• 教程 >
  • 什麼是分散式資料並行 (DDP)
快捷方式

引言 || 什麼是 DDP || 單節點多 GPU 訓練 || 容錯 || 多節點訓練 || minGPT 訓練

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

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

作者:Suraj Subramanian

你將學到什麼
  • DDP 的底層工作原理

  • 什麼是 DistributedSampler

  • 梯度如何在 GPU 之間同步

先決條件

觀看下方或 youtube 上的影片進行學習。

本教程是 PyTorch DistributedDataParallel (DDP) 的溫和介紹,DDP 能夠在 PyTorch 中實現資料並行訓練。資料並行是一種跨多個裝置同時處理多個數據批次以實現更好效能的方法。在 PyTorch 中,DistributedSampler 確保每個裝置獲得不重疊的輸入批次。模型在所有裝置上覆制;每個副本計算梯度,並使用環狀 All-Reduce 演算法與其他副本同時同步。

這個圖解教程從 Python 的角度更深入地介紹了 DDP 的機制。

為什麼應該優先選擇 DDP 而非 DataParallel (DP)

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

DataParallel

DistributedDataParallel

開銷更大;模型在每次前向傳播時都會被複制和銷燬

模型只複製一次

只支援單節點並行

支援擴充套件到多臺機器

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

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

進一步閱讀


評價本教程

© 版權所有 2024, PyTorch。

使用 Sphinx 構建,主題由 Read the Docs 提供。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並解答你的疑問

檢視資源