電腦算術

在加總大量浮動小數時所使用的Kahan加法(帶補償的加法),其目的下列何者正確?

  1. A將加法的次數減半,使計算更快
  2. B先將浮點數全部轉換為整數再加總
  3. C記錄遺失的部分並在下一次補上,以抑制誤差
查看答案與解析

正確答案:C. 記錄遺失的部分並在下一次補上,以抑制誤差

每次將小值加到變大的總和上時,小值的低位數都會因資訊遺失而消失,累積起來就會成為很大的誤差。Kahan加法在加完之後,會計算「實際增加的量」與「原本要加的值」的差,把遺失的部分記錄在補償用的變數中,並在加下一個值之前先加上該補償。計算的工夫會增加數倍,但能大幅抑制誤差的累積。它既不是減少次數的方法,也不是轉換為整數的方法。

  • A. 計算的工夫反而會增加。
  • B. 並不是轉換為整數的方法。
  • C. 正確。記錄遺失的部分並加以補償,抑制誤差的累積。
練習這個領域 前往領域頁面

電腦算術的其他題目

  1. 以FMA(融合乘加運算)指令計算 a × b + c 的優點,下列何者正確?
  2. bfloat16主要被用於AI訓練的理由為下列何者?
  3. 以FP16(半精度:符號1・指數部分5・尾數10位元)訓練類神經網路時容易發生問題,而以將損失值放大數倍後再計算的方法(損失縮放,loss scaling)來因應的是下列何者?
  4. FP16(符號1・指數部分5位元(偏移值15)・尾數10位元)所能表示的最大有限值是多少?
  5. 關於FP8的兩種格式E4M3(指數部分4・尾數3位元)與E5M2(指數部分5・尾數2位元)的使用區分,下列何者是一般作法?