FMAdd命令のエミュレーション:32ビット浮動小数点数への深い探求
2025-01-02
この記事では、ネイティブサポートがないハードウェアでFMAdd(融合乗算加算)命令をエミュレートする方法、特に32ビット浮動小数点数のSIMD実装に焦点を当てて解説します。FMAdd命令の動作と、中間浮動小数点計算に伴う二重丸め誤差を回避する方法を説明します。「奇数への丸め」という巧妙な手法と、倍精度浮動小数点数の追加精度を利用して丸め誤差を排除し、正確なFMAdd結果を得る方法を詳しく説明します。正確な加算結果と誤差項の計算についても簡単に触れ、64ビット浮動小数点数への対応については続編で扱うことを約束します。
続きを読む