計算機算術

非正規化数を多く含む計算で、一部のプロセッサでは処理が大きく遅くなることがある。そのため性能を優先する場面で使われる設定はどれか。

  1. A非正規化数になる結果や入力を0とみなす設定(フラッシュ・トゥ・ゼロ)
  2. Bすべての計算を倍精度から単精度に自動で変換する設定
  3. C非正規化数を見つけたらプログラムを停止させる設定
答えと解説を見る

正解:A. 非正規化数になる結果や入力を0とみなす設定(フラッシュ・トゥ・ゼロ)

非正規化数は先頭の1を仮定しない特別な形なので、一部のプロセッサでは高速な回路で処理できず、マイクロコードなどで時間をかけて処理し、通常の何十倍も遅くなることがあります。音声処理やAIなど、0にごく近い値を正確に扱う必要がない場面では、非正規化数を0として扱うフラッシュ・トゥ・ゼロの設定にして速度を保ちます。その代わり、0の近くの精度と、漸進アンダーフローの性質は失われます。精度を一律に変えたり、停止させたりはしません。

  • A. 正しい。非正規化数を0とみなして遅くなるのを防ぎます。
  • B. 精度を一律に変える設定ではありません。
  • C. 停止させてしまっては計算が進みません。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. IEEE 754の浮動小数点数の演算で、正の数を0で割ったときの結果として規格で定められているものはどれか。
  2. x がNaNのとき、多くのプログラミング言語で x == x を評価した結果はどれか。
  3. IEEE 754の単精度で、指数部がすべて1(255)のビット列が表すものの説明として正しいものはどれか。
  4. IEEE 754の浮動小数点数で、+0と−0についての説明として正しいものはどれか。
  5. IEEE 754で既定の丸めの方法として定められているものはどれか。