关闭FTZ和DAZ
前文分析过FTZ和DAZ对非规定浮点数转化为0的处理会带来精度上差异,因此不使能FTZ选项会带来更好的精度。icc编译器中-ftz会在除了-O0的其他-O优化等级上默认打开,可以使用-no-ftz编译选项选择关闭;毕昇编译器在-ffast-math或-Ofast下使能FTZ,也可以通过-fflushz或-Mflushz(仅对flang有效)选项单独开启FTZ功能;gcc只在-ffast-math下使能FTZ。
修改建议
- 毕昇编译器去掉-ffast-math、-fflushz和-Mflushz其中一个编译选项。
- icc编译器增加编译选项-no-ftz,或者去掉-ftz编译选项。
- gcc编译器去掉-ffast-math编译选项。
父主题: 消除计算结果差异措施