< 目次

デノーマルの操作

IEEE 754-2008 規格「An IEEE Standard for Binary Floating-Point Arithmetic」では、浮動小数点形式で最も小さな正規化数よりも小さな非ゼロの数を、denormal (または subnormal) 数として定義しています。本書では、どちらもデノーマル (非正規化) として扱います。デノーマル (非正規化) オペランドと結果は、通常ハードウェアで直接処理されるのではなく、ソフトウェアで処理されるため、デノーマル数の浮動小数点演算は正規化オペランドよりも遅くなります。このソフトウェア処理により、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) 関数でデノーマル数を使用する場合、正規化された浮動小数点数を使用する場合よりも実行が遅くなります。

このパフォーマンス問題に対応する方法として、MXCSR 浮動小数点制御レジスターの適切なビット・フィールドを設定する方法があります。FTZ はデノーマル数をゼロにフラッシュし、DAZ はメモリーからロードされたデノーマル数をゼロに置換します。コンパイラーで FTZ および DAZ を制御するオプションが用意されているかどうかは、コンパイラーのドキュメントを参照してください。これらのコンパイラー・オプションを使用すると精度に影響する可能性があることに注意してください。