AIハードウェアとソフトウェアスタック
1つのGPUのメモリに収まらない大きな層の行列の積を、複数のGPUで分けて計算するテンソル並列の説明として正しいものはどれか。
- A各GPUがモデル全体の複製を持ち、データを分ける
- B重みの行列を行や列の方向に分けて各GPUに持たせ、部分的な積を求めてから通信で結果をまとめる
- C層ごとに違うGPUに置き、順番に処理する
答えと解説を見る
正解:B. 重みの行列を行や列の方向に分けて各GPUに持たせ、部分的な積を求めてから通信で結果をまとめる
テンソル並列では、例えば重みの行列を列の方向に4つに分けて4つのGPUに持たせ、各GPUが同じ入力と自分の担当の列の積を計算します。最後に結果をつなげたり足し合わせたりするための通信が層ごとに必要なので、GPUどうしを非常に速い接続で結んだ、同じサーバの中のGPUで使うのが一般的です。データ並列やパイプライン並列と組み合わせて、巨大なモデルを学習します。
- A. それはデータ並列です。
- B. 正しい。層の中の計算を分けます。
- C. それはパイプライン並列です。