使用多個 GPU 設備進行模型訓練常見分為以下兩種:
model parallel:當模型很大,單個 GPU 的 VRAM 放不下整個模型時,可以將模型分成多個部分,每個部份放到不同的 GPU 設備中,這樣可以將原本跑不了的模型利多快 GPU 跑起來。但這種情況一般不能加速模型的訓練。
data parallel:當模型不是很大,可以放入單個 GPU 時,可以將模型複製到多塊 GPU 上,進行平行加速訓練。
使用多 GPU 平行加速的訓練時間對比。從長條圖看出,使用多 GPU 加速並不是簡單的線性倍增關係,因為多 GPU 平行訓練時會受到 GPU 之間通訊的影響。