问题标签 [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.
opencl - OpenCL 快速轻松数学
OpenCL 编译器选项-cl-fast-relaxed-math
有什么作用?
从阅读文档来看——它看起来-cl-fast-relaxed-math
允许内核对任何变量进行浮点数学运算——即使这些变量指向错误的数据类型、导致被零除或其他一些非法行为。
这个对吗?这个编译器选项在什么情况下有用?
gcc - 什么时候应该使用 gcc 的 -Ofast 优化级别?
在 xcode 5 中,优化级别引入了一个名为-Ofast
(Fastest,Aggressive Optimizations)的新级别。我应该何时以及如何使用这个级别?
gcc - 使用 gcc 编译时 -ffast-math 选项究竟做了什么
任何人都可以帮助我了解使用 gcc 编译时 -ffast-math 选项的作用。与仅使用 -O3 相比,使用 -O3 和 -ffast-math 执行的程序执行时间相差 20 秒
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 的性能改进机会
gcc - 是否有与 Visual Studio C++ 编译器等效的 -ffast-math 标志
/Ox
我正在使用带有标志(完全优化)的 Visual Studio 2013 附带的默认 C++ 编译器(我猜它被称为“Visual Studio C++ 编译器” )。由于浮点副作用,我必须在使用编译器-ffast-math
时禁用该标志。gcc
在 Visual Studio C++ 编译器的配置中是否有此标志的等效选项?
c - 任何浮点密集型代码是否会在任何基于 x86 的体系结构中产生位精确的结果?
我想知道使用浮点运算的 C 或 C++ 中的任何代码是否会在任何基于 x86 的体系结构中产生位精确的结果,而不管代码的复杂性如何。
据我所知,自 Intel 8087 以来的任何 x86 架构都使用准备好处理 IEEE-754 浮点数的 FPU 单元,我看不出结果在不同架构中会有所不同的任何原因。但是,如果它们不同(即由于不同的编译器或不同的优化级别),是否有某种方法可以通过仅配置编译器来产生位精确的结果?
c++ - gcc -Ofast - 限制的完整列表
我-Ofast
在我的程序中使用 gcc 选项会导致延迟要求。我写了简单的测试程序:
我尝试使用默认标志和 -Ofast 运行它:
所以结果!=
并不==
能被信任。这是否意味着我应该==
且!=
仅当两个值都不是 nan 时,否则我应该在isnan
之前进行测试?
是否保证isnan
可以正常工作-Ofast
?double with 的正确性==
和!=
工作方式如何-Ofast
?有人可以提供由添加的限制的完整列表-Ofast
吗?
rust - 如何使用“ffast-math”进行编译?
我正在尝试对一些 Rust 代码进行基准测试,但我不知道如何设置“ffast-math”选项。
llvm-args='-ffast-math'
也llvm-args='-fast'
没有工作。我应该使用什么标志?
c++ - 为什么在使用快速数学时 GCC 或 Clang 不优化 1 条指令的倒数
有谁知道为什么 GCC/Clang 不会在下面的代码示例中优化函数test1以在使用快速数学选项时仅使用 RCPPS 指令?是否有另一个编译器标志会生成此代码?
您可以在此处查看编译后的输出:https ://goo.gl/jXsqat
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,但它破坏上述简单条件检查的确切原因是什么?