问题标签 [fast-math]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1767 浏览

opencl - OpenCL 快速轻松数学

OpenCL 编译器选项-cl-fast-relaxed-math有什么作用?

从阅读文档来看——它看起来-cl-fast-relaxed-math允许内核对任何变量进行浮点数学运算——即使这些变量指向错误的数据类型、导致被零除或其他一些非法行为。

这个对吗?这个编译器选项在什么情况下有用?

0 投票
2 回答
2163 浏览

gcc - 什么时候应该使用 gcc 的 -Ofast 优化级别?

在 xcode 5 中,优化级别引入了一个名为-Ofast(Fastest,Aggressive Optimizations)的新级别。我应该何时以及如何使用这个级别?

0 投票
1 回答
6038 浏览

gcc - 使用 gcc 编译时 -ffast-math 选项究竟做了什么

任何人都可以帮助我了解使用 gcc 编译时 -ffast-math 选项的作用。与仅使用 -O3 相比,使用 -O3 和 -ffast-math 执行的程序执行时间相差 20 秒

0 投票
1 回答
4967 浏览

c++ - std::isinf 不适用于 -ffast-math。如何检查无穷大

示例代码:

在线编译器

使用-ffast-math,该代码打印“0, 0, 1, 1” - 没有,它打印“1, 1, 1, 1”。

那是对的吗?我认为std::isinf/在这些情况下std::isnan仍然可以使用。-ffast-math

另外,我如何检查无穷大/ NaN -ffast-math?您可以看到my_isnan这样做,它确实有效,但该解决方案当然非常依赖于架构。另外,为什么在my_isnan这里工作而std::isnan不是?__isnan和怎么样__isinf。他们总是工作吗?

与,和-ffast-math的结果是什么。它是否变得未定义,还是应该是 NaN / -Inf?std::sqrt(-1.0)std::log(0.0)

相关讨论:(GCC)[Bug libstdc++/50724] 新:isnan 在 g++ 中被 -ffinite-math-only 破坏(Mozilla)Bug 416287 - isNaN 的性能改进机会

0 投票
2 回答
6757 浏览

gcc - 是否有与 Visual Studio C++ 编译器等效的 -ffast-math 标志

/Ox我正在使用带有标志(完全优化)的 Visual Studio 2013 附带的默认 C++ 编译器(我猜它被称为“Visual Studio C++ 编译器” )。由于浮点副作用,我必须在使用编译器-ffast-math时禁用该标志。gcc在 Visual Studio C++ 编译器的配置中是否有此标志的等效选项?

0 投票
2 回答
1605 浏览

c - 任何浮点密集型代码是否会在任何基于 x86 的体系结构中产生位精确的结果?

我想知道使用浮点运算的 C 或 C++ 中的任何代码是否会在任何基于 x86 的体系结构中产生位精确的结果,而不管代码的复杂性如何。

据我所知,自 Intel 8087 以来的任何 x86 架构都使用准备好处理 IEEE-754 浮点数的 FPU 单元,我看不出结果在不同架构中会有所不同的任何原因。但是,如果它们不同(即由于不同的编译器或不同的优化级别),是否有某种方法可以通过仅配置编译器来产生位精确的结果?

0 投票
1 回答
12231 浏览

c++ - gcc -Ofast - 限制的完整列表

-Ofast在我的程序中使用 gcc 选项会导致延迟要求。我写了简单的测试程序:

我尝试使用默认标志和 -Ofast 运行它:

所以结果!=并不==能被信任。这是否意味着我应该==!=仅当两个值都不是 nan 时,否则我应该在isnan之前进行测试?

是否保证isnan可以正常工作-Ofast?double with 的正确性==!=工作方式如何-Ofast?有人可以提供由添加的限制的完整列表-Ofast吗?

0 投票
2 回答
1851 浏览

rust - 如何使用“ffast-math”进行编译?

我正在尝试对一些 Rust 代码进行基准测试,但我不知道如何设置“ffast-math”选项。

llvm-args='-ffast-math'llvm-args='-fast'没有工作。我应该使用什么标志?

0 投票
2 回答
2404 浏览

c++ - 为什么在使用快速数学时 GCC 或 Clang 不优化 1 条指令的倒数

有谁知道为什么 GCC/Clang 不会在下面的代码示例中优化函数test1以在使用快速数学选项时仅使用 RCPPS 指令?是否有另一个编译器标志会生成此代码?

您可以在此处查看编译后的输出:https ://goo.gl/jXsqat

0 投票
1 回答
111 浏览

c++ - 为什么 -ffast-math 选项会破坏我的布尔条件

这是导致问题的程序的关键部分,并且程序是完全顺序的。

exist_是类bool私有成员,并且dbl_num_是类double私有成员

使用选项 -ffast-math,我得到了打印输出“0 0 5”

没有选项 -ffast-math,我得到了打印输出“0 0 NAN”

此外,如果我将程序更改为

使用选项-ffast-math,我得到“0 0 NAN”

比我将 NAN 更改为 -5

使用选项-ffast-math,我得到“0 0 -5”

我知道 -ffast-math 破坏了 IEEE 标准,并且它不检查 NAN,但它破坏上述简单条件检查的确切原因是什么?