中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

使用精度友好的编译选项

icc编译器的-fp-model编译选项用来控制浮点运算的优化,其影响程序的运行性能和结果的准确性。选用性能更好的优化选项,必然会带来精度上的损失。

在优化等级为-O2及以上时,-fp-model默认选项是fast=1,在优化等级为-Ofast时,-fp-model默认选项是fast=2,这表示编译器对浮点运算应用更多的性能优化。为了获取更高的浮点计算精度,设置-fp-model=precise,保证运算过程中浮点数是值安全的(value-safe),即编译器不会进行在数学逻辑上相等的运算转换,如前文提到的A + B + C转换为A + ( B + C )。当然,更改后可能影响程序性能,这需要开发人员作出权衡。

毕昇编译器同样有编译选项-ffp-contract= off/on/fast控制浮点运算优化。-ffp-contract默认选项是fast,使能浮点数乘加操作,将乘法和加法合并为一条乘加运算从而提升性能。为了获得更高的浮点计算精度,可以设置-ffp-contract= off

另外毕昇编译器还有一系列编译选项来控制浮点数的优化策略,详细解释请参见《鲲鹏编译器 用户指南(毕昇编译器)》中“浮点运算控制选项”的相关内容。

修改建议

  • 毕昇编译器增加编译选项-ffp-contract=off
  • icc编译器增加编译选-fp-model=precise。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词