【问题标题】:controlling floating point optimizations OS X C++ compiler控制浮点优化 OS X C++ 编译器
【发布时间】:2017-12-28 16:24:25
【问题描述】:

Mac OS X (El Capitan) 的系统 C++ 编译器是否默认使用严格的 IEEE 浮点行为?我正在尝试调试 Mac OS X 和 Linux 之间的一些差异,我认为这可能与编译器优化有关。

编译器手册页似乎没有任何关于控制浮点行为的见解?

【问题讨论】:

  • 您希望控制“浮点行为”的哪些方面?你观察到的问题是什么?你的代码是什么样的?请发帖minimal reproducible example

标签: c++ macos floating-point floating-accuracy


【解决方案1】:

我希望硬件和编译器努力与 IEEE 754 兼容。当然可能存在一些错误。一般来说,我期望不同的平台产生相同的结果,特别是由于标准库数学函数的输出存在微小差异。

我认为“系统 C++ 编译器”是指 XCode 和 clang。 clang(和 g++)确实有一些优化可以生成会导致差异的代码,例如请参阅-ffast-math - GCC 的链接,但 clang 可能是相同的。

【讨论】:

  • 默认情况下,gcc 编译器往往是兼容的。必须明确打开有损数学优化。 Microsoft Visual Studio 和 Intel 编译器都进行了一些非常激进的优化,这些优化可能会导致数值精度损失。他们的标志被记录在案。我找不到任何适用于 Mac OS X 编译器的东西。
  • 我无法从我的工作计算机访问 pastebin。此页面clang.llvm.org/docs/ClangCommandLineReference.html 列出了 clang 的 -ffast-math。
  • 谢谢。我正在为 El Capitan 使用系统 c++ 编译器,它是 clang。我还没有看到 Apple 提供的关于它们对浮点行为所做的任何文档。
猜你喜欢
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
相关资源
最近更新 更多