Disabling FTZ and DAZ
According to the preceding analysis, the precision varies when FTZ and DAZ convert denormalized floating-point numbers to 0. To achieve better precision, disable FTZ. For ICC, -ftz is enabled by default at all -O optimization levels except -O0. You can use the compilation option -no-ftz to disable FTZ. For the BiSheng Compiler, FTZ is enabled under -ffast-math or -Ofast. FTZ is also separately enabled under -fflushz or -Mflushz (valid only for Flang). For GCC, FTZ is enabled only under -ffast-math.
Suggestions
- Remove one of the -ffast-math, -fflushz, and -Mflushz compilation options from the BiSheng Compiler.
- Add the compilation option -no-ftz to or remove the compilation option -ftz from ICC.
- Remove the -ffast-math compilation option from GCC.
Parent topic: Measures for Eliminating Calculation Result Differences