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

M×Kの行列とK×Nの行列の積を計算するときの浮動小数点の演算回数(掛け算と足し算を別々に数える)はおよそいくらか。

  1. AMNK
  2. BM+N+K
  3. C2MNK
答えと解説を見る

正解:C. 2MNK

結果の行列はM×N個の要素を持ち、各要素は長さKの内積なので、K回の掛け算とK回の足し算(ほぼK回)が必要です。合わせて約2MNK回の演算になります。AIの計算量はこの式で見積もることが多く、性能は1秒あたりの演算回数(FLOPS)で表します。積和を1回と数える場合は半分のMNKになるので、どちらで数えているかに注意が必要です。

  • A. これは積和を1回と数えた場合の数です。
  • B. 演算の数はずっと多くなります。
  • C. 正しい。各要素でK回の掛け算と足し算を行います。
この分野を解く 分野ページへ

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

  1. N×NのFP16(2バイト)の行列どうしの積で、2つの入力を1回ずつ読み、結果を1回書くとする。演算強度(1バイトあたりの演算数)はおよそいくらか。
  2. ピーク性能100 TFLOPS、メモリ帯域2 TB/sのアクセラレータで、演算強度が10 FLOP/バイトの処理を実行する。Rooflineモデルで見積もった達成できる性能はいくらか。
  3. 入力が1つだけ(バッチサイズ1)のとき、全結合層の計算(重みの行列とベクトルの積)がメモリ律速になりやすい理由として正しいものはどれか。
  4. 推論でバッチサイズ(まとめて処理する入力の数)を大きくすると、処理全体の効率が上がりやすい理由はどれか。
  5. 推論でバッチサイズを大きくしすぎたときの欠点として正しいものはどれか。