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

入力が1つだけ(バッチサイズ1)のとき、全結合層の計算(重みの行列とベクトルの積)がメモリ律速になりやすい理由として正しいものはどれか。

  1. Aベクトルの要素の数が多すぎて、演算器に入りきらないから
  2. B行列とベクトルの積は、GPUでは計算できないから
  3. C重みの各要素をメモリから読んでも、1回の積和にしか使わないので、演算強度が非常に低いから
答えと解説を見る

正解:C. 重みの各要素をメモリから読んでも、1回の積和にしか使わないので、演算強度が非常に低いから

行列とベクトルの積では、重みの行列の各要素を1回読んで、入力の1つの要素と1回掛けて足すだけです。FP16なら2バイトにつき2回の演算で、演算強度は約1です。重みの読み込みに時間がかかり、演算器はほとんど待っています。同じ重みを複数の入力に使えるように入力をまとめる(バッチを大きくする)と、演算強度が上がります。

  • A. 要素の数は律速の理由ではありません。
  • B. 計算はできますが、メモリ待ちが長くなります。
  • C. 正しい。重みの再利用ができません。
この分野を解く 分野ページへ

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

  1. 推論でバッチサイズ(まとめて処理する入力の数)を大きくすると、処理全体の効率が上がりやすい理由はどれか。
  2. 推論でバッチサイズを大きくしすぎたときの欠点として正しいものはどれか。
  3. 大規模言語モデルの推論は、入力の文章をまとめて処理する段階(プリフィル)と、1トークンずつ出力を作る段階(デコード)に分かれる。それぞれの性能を主に決めるものの組み合わせとして正しいものはどれか(バッチが小さい場合)。
  4. 大規模言語モデルの推論で使われるKVキャッシュの役割として正しいものはどれか。
  5. 大規模言語モデルの推論で、長い文章や大きなバッチを扱うときに問題になりやすいことはどれか。