什麼是FMA(融合乘加運算)

以一個指令計算 a × b + c,中間的乘積不捨入,只在最後捨入一次的運算。比分開進行乘法與加法更快,誤差也更小。大量用於矩陣計算等。

日文名稱: FMA(融合積和演算)

「FMA(融合乘加運算)」出現在2領域的2道練習題中(電腦算術, 編譯器等)。

這個名詞所屬的領域: 電腦算術

練習FMA(融合乘加運算)的題目

以FMA(融合乘加運算)指令計算 a × b + c 的優點,下列何者正確?

  1. A中間的乘積不做捨入,只在最後捨入1次,因此誤差小且快速
  2. B乘法的結果必定先轉為整數再相加,因此完全不會產生誤差
  3. C省略加法而只做乘法,因此計算減半
查看答案與解析

正確答案:A. 中間的乘積不做捨入,只在最後捨入1次,因此誤差小且快速

若以乘法與加法各別的指令進行,會先將 a × b 的結果捨入一次,再將加上 c 的結果捨入一次,因此發生2次捨入。FMA則是將乘積不經捨入而保留在內部,再加上 c,最後只捨入1次,所以誤差較小。由於1個指令即可完成,速度很快,廣泛用於矩陣乘法、多項式的計算以及AI的運算等。它並不會把乘積轉為整數,也不會省略加法。不過由於捨入次數不同,結果可能與分開計算的結果有些許差異。

解析中的「FMA(融合乘加運算)」

出現「FMA(融合乘加運算)」的題目(2題)

  1. 以FMA(融合乘加運算)指令計算 a × b + c 的優點,下列何者正確?
  2. 關於程式碼產生階段之一的指令選擇(instruction selection)的說明,下列何者正確?

相關名詞

定址模式 布斯演算法(Booth's algorithm) 先行進位加法器 有效位數損失(Catastrophic cancellation) 有效數(Significand) 定點數 非正規化數 指數欄位 捨入至最接近偶數 華里士樹(Wallace tree)

前往名詞解釋列表