計算機算術

FMA(融合積和演算)命令で a × b + c を計算する利点として正しいものはどれか。

  1. A途中の積を丸めず最後に1回だけ丸めるので、誤差が小さく速い
  2. B掛け算の結果を必ず整数にしてから足すので、誤差がまったく生じない
  3. C足し算を省略して掛け算だけを行うので、計算が半分になる
答えと解説を見る

正解:A. 途中の積を丸めず最後に1回だけ丸めるので、誤差が小さく速い

掛け算と足し算を別々の命令で行うと、a × b の結果をいったん丸め、さらに c を足した結果を丸めるので、丸めが2回起こります。FMAは積を丸めずに内部で保持したまま c を足し、最後に1回だけ丸めるので、誤差が小さくなります。1命令で済むため速く、行列の積や多項式の計算、AIの計算などで多用されます。積を整数にするわけでも、足し算を省くわけでもありません。ただし丸めの回数が違うため、別々に計算した結果とわずかに異なることがあります。

  • A. 正しい。丸めが1回で済み、誤差が小さく速くなります。
  • B. 積を整数にするわけではありません。
  • C. 足し算も1命令の中で行います。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. bfloat16がAIの学習で使われる主な理由はどれか。
  2. FP16(半精度:符号1・指数部5・仮数10ビット)でニューラルネットワークを学習させるときに問題になりやすく、損失の値を何倍かに拡大して計算する工夫(ロススケーリング)で対策するのはどれか。
  3. FP16(符号1・指数部5ビット(バイアス15)・仮数10ビット)で表せる最大の有限の値はいくらか。
  4. FP8の2つの形式、E4M3(指数部4・仮数3ビット)とE5M2(指数部5・仮数2ビット)の使い分けとして一般的なものはどれか。
  5. AIの推論で、重みをFP32からINT8に変換(量子化)する主な利点はどれか。