計算機算術

固定小数点、IEEE 754浮動小数点(正規化・非正規化数・丸め・特殊値)、丸め誤差と桁落ち、bfloat16やINT8、乗算器と桁上げ先見加算器を3択問題で学べます。

—あなたの正答率
0 / 50解いた問題
この分野を解くこの分野の問題をすべて、ランダムな順で出題します 苦手問題直近で間違えた問題だけを解き直します

計算機算術の要点

コンピュータは数を有限のビットで表すため、表せる範囲と精度に限りがあります。小数点の位置を固定する固定小数点に対し、IEEE 754の浮動小数点は数を符号・指数・仮数に分けて、非常に小さい数から大きい数までを表します。正規化、非正規化数、丸めモード、無限大やNaNといった特殊値の扱いを知ることが大切です。

浮動小数点の計算では丸め誤差が生じ、近い数どうしの引き算で有効な桁が減る桁落ちも起こります。AIではbfloat16・FP16・FP8・INT8のような短い形式が使われます。数の表し方とともに、乗算器や除算器、桁上げ先見加算器など、算術をハードウェアで実現する回路の構成も学びます。

計算機算術の問題一覧(50問)

  1. 8ビットのうち下位4ビットを小数部とする固定小数点(符号なし)で、ビット列 0011 1000 が表す値はいくらか。
  2. IEEE 754の浮動小数点数を構成する3つの部分の組み合わせとして正しいものはどれか。
  3. IEEE 754の単精度(32ビット)の浮動小数点数で、符号・指数部・仮数に割り当てられるビット数の組み合わせはどれか。
  4. IEEE 754の倍精度(64ビット)の浮動小数点数で、指数部と仮数のビット数の組み合わせとして正しいものはどれか。
  5. IEEE 754の単精度で、指数部に記録される値が130のとき、実際の指数(2の何乗か)はいくつか。
  6. IEEE 754の正規化数で、仮数の先頭の1を記録しない(隠れビット)ことの効果として正しいものはどれか。
  7. 10進数の1.0を、IEEE 754の単精度で表したビット列を16進数で書くとどれか。
  8. −6.25 を単精度に変換するとき、符号・指数部・仮数を並べたビット列を16進数で表すとどれか。
  9. 10進数の0.1を2進数の浮動小数点数で表したときの説明として正しいものはどれか。
  10. 多くのプログラミング言語で、倍精度の 0.1 + 0.2 == 0.3 という比較が偽になる理由として正しいものはどれか。
  11. IEEE 754の単精度のマシンイプシロン(1と、1の次に大きい表せる数との差)はいくらか。
  12. 単精度と倍精度の浮動小数点数で信頼できる10進数の有効桁数の目安の組み合わせとして正しいものはどれか。
  13. IEEE 754の非正規化数(サブノーマル数)の役割として正しいものはどれか。
  14. 非正規化数を多く含む計算で、一部のプロセッサでは処理が大きく遅くなることがある。そのため性能を優先する場面で使われる設定はどれか。
  15. IEEE 754の浮動小数点数の演算で、正の数を0で割ったときの結果として規格で定められているものはどれか。
  16. x がNaNのとき、多くのプログラミング言語で x == x を評価した結果はどれか。
  17. IEEE 754の単精度で、指数部がすべて1(255)のビット列が表すものの説明として正しいものはどれか。
  18. IEEE 754の浮動小数点数で、+0と−0についての説明として正しいものはどれか。
  19. IEEE 754で既定の丸めの方法として定められているものはどれか。
  20. 最近接偶数丸めで整数に丸めるとき、2.5 と 3.5 はそれぞれいくつになるか。
  21. ほぼ等しい2つの浮動小数点数を引き算したとき、有効な桁が大きく減ってしまう現象を何と呼ぶか。
  22. x が非常に大きいとき、√(x + 1) − √x を浮動小数点で計算すると桁落ちが起こる。結果を精度よく求めるための書き換えとして正しいものはどれか。
  23. 単精度の浮動小数点数で、1億(10⁸)に1を足しても結果が1億のまま変わらない。この現象の説明として正しいものはどれか。
  24. 大量の浮動小数点数を足し合わせるときに使われるカハンの加算(補正つき加算)の目的として正しいものはどれか。
  25. FMA(融合積和演算)命令で a × b + c を計算する利点として正しいものはどれか。
  26. bfloat16がAIの学習で使われる主な理由はどれか。
  27. FP16(半精度:符号1・指数部5・仮数10ビット)でニューラルネットワークを学習させるときに問題になりやすく、損失の値を何倍かに拡大して計算する工夫(ロススケーリング)で対策するのはどれか。
  28. FP16(符号1・指数部5ビット(バイアス15)・仮数10ビット)で表せる最大の有限の値はいくらか。
  29. FP8の2つの形式、E4M3(指数部4・仮数3ビット)とE5M2(指数部5・仮数2ビット)の使い分けとして一般的なものはどれか。
  30. AIの推論で、重みをFP32からINT8に変換(量子化)する主な利点はどれか。
  31. 値の範囲が −6.35〜6.35 のデータを、0を中心にした対称なINT8(−127〜127)に量子化する。スケールを「最大の絶対値 ÷ 127」とすると、1.0 はどの整数で表されるか。
  32. 小さなマイコンやDSPで、浮動小数点ではなく固定小数点の演算がよく使われる主な理由はどれか。
  33. 16ビットの符号付き固定小数点のQ15形式(小数部15ビット)で表せる値の刻み(分解能)と範囲の組み合わせとして正しいものはどれか。
  34. 小数部8ビットの固定小数点数どうしを、整数の掛け算器で掛けたときの結果の扱いとして正しいものはどれか。
  35. 信号処理で使われる飽和演算の説明として正しいものはどれか。
  36. 桁上げ先見加算器で使う、各桁の生成信号 g と伝搬信号 p の定義(a、bはその桁の入力)と、上の桁への桁上げ c(i+1) の式の組み合わせとして正しいものはどれか。
  37. 乗算器で多数の部分積を足し合わせるのに、桁上げ保存加算器が使われる主な理由はどれか。
  38. 高速な乗算器で使われるウォレスツリーの特徴として正しいものはどれか。
  39. 乗算器で基数4のブースのアルゴリズム(ブース符号化)を使う主な効果はどれか。
  40. 符号なしの8ビットの数どうしを掛けたとき、結果を桁あふれなく表すのに必要なビット数はどれか。
  41. 整数 x を10倍する計算を、掛け算の命令を使わずにシフトと足し算で行う式として正しいものはどれか。
  42. 一般的な整数の除算器(1ビットずつ商を求める回復型・非回復型など)が、乗算器より遅くなりやすい理由として正しいものはどれか。
  43. 8ビットの符号付き整数で −8(1111 1000)を算術右シフトで1ビット右にずらした結果はどれか。
  44. C言語で、int型の −7 / 2 と −7 >> 1(算術右シフトの場合)の結果の組み合わせとして正しいものはどれか。
  45. C言語で、32ビットの符号なし整数(unsigned int)の 0 から 1 を引いた結果はどれか。
  46. 符号なしの整数どうしの足し算で、結果が表せる範囲を超えた(桁あふれした)ことを判定する方法として正しいものはどれか。
  47. 浮動小数点数で、隣り合う表せる値どうしの間隔についての説明として正しいものはどれか。
  48. IEEE 754の単精度の浮動小数点数で、0から始めてすべての整数を正確に表せる上限はどれか。
  49. 金額の計算で、2進数の浮動小数点数ではなく、最小の単位(1円や1セント)を1とする整数で扱うことが多い主な理由はどれか。
  50. AIの混合精度の学習で、計算の多くをFP16やbfloat16で行いながら、重みの元の値(マスターウェイト)をFP32で保持しておく主な理由はどれか。

コンピュータシステムのほかの分野