計算機算術
FMA(融合積和演算)命令で a × b + c を計算する利点として正しいものはどれか。
- A途中の積を丸めず最後に1回だけ丸めるので、誤差が小さく速い
- B掛け算の結果を必ず整数にしてから足すので、誤差がまったく生じない
- C足し算を省略して掛け算だけを行うので、計算が半分になる
答えと解説を見る
正解:A. 途中の積を丸めず最後に1回だけ丸めるので、誤差が小さく速い
掛け算と足し算を別々の命令で行うと、a × b の結果をいったん丸め、さらに c を足した結果を丸めるので、丸めが2回起こります。FMAは積を丸めずに内部で保持したまま c を足し、最後に1回だけ丸めるので、誤差が小さくなります。1命令で済むため速く、行列の積や多項式の計算、AIの計算などで多用されます。積を整数にするわけでも、足し算を省くわけでもありません。ただし丸めの回数が違うため、別々に計算した結果とわずかに異なることがあります。
- A. 正しい。丸めが1回で済み、誤差が小さく速くなります。
- B. 積を整数にするわけではありません。
- C. 足し算も1命令の中で行います。