正如我在英特尔网站上读到的:
英特尔编译器使用/fp 模型 fast=1 作为默认值。此优化 速度优于标准合规性。您可以使用编译器选项 -mieee-fp 获取兼容代码。
我对ICC中的fp模型选项的理解是(如果我错了,请纠正我(:
-
precise
对应于 GCC 和 Clang 中的默认设置, -
fast=2
类似于-ffast-math
, -
fast=1
介于两者之间。
GCC 或 Clang 中的哪些选项会使浮点数学与英特尔的默认-fp-model fast=1
最相似?
根据 GCC 的 set_fast_math_flags 函数,ffast-math
选项(至少在 GCC 5.2 中(等效于
(1( 不安全的OPT组:
-fno-trapping-math
-fassociative_math
-fno-signed-zeros
-freciprocal-math
(2(其他人:
-ffinite-math-only
-fno-errno-math
-fno-signaling-nans
-fno-rounding-math
-fcx-limited-range
第一组缩写为选项 -funsafe-math-optimizations
。
您应该弄清楚ICC中的内容,并尝试组合这些标志以达到预期的效果。