AIハードウェアとソフトウェアスタック

1つのGPUのメモリに収まらない大きな層の行列の積を、複数のGPUで分けて計算するテンソル並列の説明として正しいものはどれか。

  1. A各GPUがモデル全体の複製を持ち、データを分ける
  2. B重みの行列を行や列の方向に分けて各GPUに持たせ、部分的な積を求めてから通信で結果をまとめる
  3. C層ごとに違うGPUに置き、順番に処理する
答えと解説を見る

正解:B. 重みの行列を行や列の方向に分けて各GPUに持たせ、部分的な積を求めてから通信で結果をまとめる

テンソル並列では、例えば重みの行列を列の方向に4つに分けて4つのGPUに持たせ、各GPUが同じ入力と自分の担当の列の積を計算します。最後に結果をつなげたり足し合わせたりするための通信が層ごとに必要なので、GPUどうしを非常に速い接続で結んだ、同じサーバの中のGPUで使うのが一般的です。データ並列やパイプライン並列と組み合わせて、巨大なモデルを学習します。

  • A. それはデータ並列です。
  • B. 正しい。層の中の計算を分けます。
  • C. それはパイプライン並列です。
この分野を解く 分野ページへ

AIハードウェアとソフトウェアスタックのほかの問題

  1. モデルの層を順に複数のGPUに分けて受け持つパイプライン並列で、バッチを小さなマイクロバッチに分けて流す理由として正しいものはどれか。
  2. 分散学習で使われるオールリデュース(All-Reduce)の通信の働きとして正しいものはどれか。
  3. 学習で使われる勾配チェックポイント(活性化の再計算)の説明として正しいものはどれか。
  4. AI向けのアクセラレータで使われるシストリックアレイが、行列の積を効率よく計算できる主な理由はどれか。
  5. AI向けのアクセラレータが、チップの上に大きなSRAM(数十〜数百MB)を載せることがある主な理由はどれか。