什麼是FMA(融合乘加運算)
以一個指令計算 a × b + c,中間的乘積不捨入,只在最後捨入一次的運算。比分開進行乘法與加法更快,誤差也更小。大量用於矩陣計算等。
日文名稱: FMA(融合積和演算)
「FMA(融合乘加運算)」出現在2領域的2道練習題中(電腦算術, 編譯器等)。
這個名詞所屬的領域: 電腦算術
以一個指令計算 a × b + c,中間的乘積不捨入,只在最後捨入一次的運算。比分開進行乘法與加法更快,誤差也更小。大量用於矩陣計算等。
日文名稱: FMA(融合積和演算)
「FMA(融合乘加運算)」出現在2領域的2道練習題中(電腦算術, 編譯器等)。
這個名詞所屬的領域: 電腦算術
正確答案:A. 中間的乘積不做捨入,只在最後捨入1次,因此誤差小且快速
若以乘法與加法各別的指令進行,會先將 a × b 的結果捨入一次,再將加上 c 的結果捨入一次,因此發生2次捨入。FMA則是將乘積不經捨入而保留在內部,再加上 c,最後只捨入1次,所以誤差較小。由於1個指令即可完成,速度很快,廣泛用於矩陣乘法、多項式的計算以及AI的運算等。它並不會把乘積轉為整數,也不會省略加法。不過由於捨入次數不同,結果可能與分開計算的結果有些許差異。
FMA則是將乘積不經捨入而保留在內部,再加上 c,最後只捨入1次,所以誤差較小。
以FMA(融合乘加運算)指令計算 a × b + c 的優點,下列何者正確?即使是相同的計算,各CPU可用的指令也不同,例如 a * b + c,若CPU有乘加運算(FMA)指令,就以一條指令實現,若沒有,則以乘法與加法兩條指令實現。
關於程式碼產生階段之一的指令選擇(instruction selection)的說明,下列何者正確?定址模式 布斯演算法(Booth's algorithm) 先行進位加法器 有效位數損失(Catastrophic cancellation) 有效數(Significand) 定點數 非正規化數 指數欄位 捨入至最接近偶數 華里士樹(Wallace tree)