4

正如我在英特尔网站上看到的:

Intel 编译器使用 /fp-model fast=1 作为默认值。这种优化有利于速度而不是标准合规性。您可以使用编译器选项 -mieee-fp 来获得兼容的代码。

我对 ICC 中的fp-model选项的理解是(如果我错了,请纠正我):

  • precise对应于 GCC 和 Clang 中的默认设置,
  • fast=2类似于-ffast-math,
  • fast=1介于两者之间。

GCC 或 Clang 中的哪些选项会使浮点数学与 Intel 的默认值最相似-fp-model fast=1

4

1 回答 1

2

正如 GCC 的 set_fast_math_flags 函数所遵循的那样,ffast-math选项(至少在 GCC 5.2 中)等价于

(1) 不安全的 opts 组:

-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

第一组缩写为 option -funsafe-math-optimizations

您应该弄清楚 ICC 中的内容并尝试组合这些标志以产生所需的效果。

于 2016-04-08T14:35:27.993 回答