AIハードウェアとソフトウェアスタック
複数のGPUで学習するデータ並列の説明として正しいものはどれか。
- A各GPUがモデル全体の複製を持ち、データを分けて計算し、求めた勾配を全GPUで平均してから重みを更新する
- Bモデルの層を分けて、各GPUが違う層を受け持つ
- C1つのGPUだけで計算し、残りのGPUは予備にする
答えと解説を見る
正解:A. 各GPUがモデル全体の複製を持ち、データを分けて計算し、求めた勾配を全GPUで平均してから重みを更新する
データ並列では、すべてのGPUが同じモデルを持ち、学習データのバッチを分けて、それぞれ順伝播と逆伝播を行います。各GPUの勾配は違うので、全GPUで勾配を合計して平均する通信(オールリデュース)を行い、全員が同じ勾配で重みを更新して、モデルの複製を同じに保ちます。モデルが1つのGPUに収まるなら簡単で効果的ですが、GPUの数が増えると通信が重くなります。
- A. 正しい。最も基本的な並列の方法です。
- B. それはパイプライン並列です。
- C. それでは並列になりません。