計算機算術

大量の浮動小数点数を足し合わせるときに使われるカハンの加算(補正つき加算)の目的として正しいものはどれか。

  1. A足し算の回数を半分に減らして、計算を速くするため
  2. B浮動小数点数をすべて整数に変換してから足し合わせるため
  3. C失われた分を記録して次に補い、誤差を抑えるため
答えと解説を見る

正解:C. 失われた分を記録して次に補い、誤差を抑えるため

大きくなった合計に小さな値を足すたびに、小さな値の下位の桁が情報落ちで失われ、それが積み重なると大きな誤差になります。カハンの加算では、足したあとに「実際に増えた量」と「足そうとした値」の差を計算して、失われた分を補正用の変数に記録し、次の値に加えてから足します。計算の手間は数倍になりますが、誤差の積み重なりを大きく抑えられます。回数を減らす方法でも、整数に変換する方法でもありません。

  • A. 計算の手間はむしろ増えます。
  • B. 整数に変換する方法ではありません。
  • C. 正しい。失われた分を記録して補い、誤差の積み重なりを抑えます。
この分野を解く 分野ページへ

計算機算術のほかの問題

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