AIハードウェアとソフトウェアスタック
分散学習で使われるオールリデュース(All-Reduce)の通信の働きとして正しいものはどれか。
- A1つのGPUのデータを消して、メモリを空ける
- B全GPUが持つ値(勾配など)を合計し、その合計をすべてのGPUに配る
- C全GPUの電源を一斉に切る
答えと解説を見る
正解:B. 全GPUが持つ値(勾配など)を合計し、その合計をすべてのGPUに配る
オールリデュースは、各GPUが持つ同じ形のテンソルを要素ごとに足し合わせ(リデュース)、その結果を全GPUが受け取る通信です。GPUを輪のようにつないで、データを細かく分けながら隣へ渡していく方法(リングオールリデュース)では、GPUの数が増えても1台あたりの通信の量がほぼ一定に保たれます。データ並列の学習では、毎回の勾配の平均にこの通信を使います。
- A. データを消す処理ではありません。
- B. 正しい。データ並列の勾配の平均に使います。
- C. 電源の操作ではありません。