![](/img/trans.png)
[英]Weird LTO behavior with -ffast-math
概括 最近我遇到了一個關於 LTO 和-ffast-math的奇怪問題,我的“pow”(在cmath中)調用的結果不一致,具體取決於是否使用了-flto 。 環境: 最小的例子 代碼 fixed.hxx fixed.cxx test.cxx 編譯並運行 使用-ff ...
[英]Weird LTO behavior with -ffast-math
概括 最近我遇到了一個關於 LTO 和-ffast-math的奇怪問題,我的“pow”(在cmath中)調用的結果不一致,具體取決於是否使用了-flto 。 環境: 最小的例子 代碼 fixed.hxx fixed.cxx test.cxx 編譯並運行 使用-ff ...
[英]C++ gcc does associative-math flag disable float NAN values?
我正在使用具有大量浮點數據的統計函數。 我希望它運行得更快,但Ofast禁用 NAN( fno-finite-math-only標志),這在我的情況下是不允許的。 在這種情況下,只打開associative-math是否安全? 我認為這個標志允許向量數組的向量化總和之類的東西,即使數組包含 NAN ...
[英]Can this piece of code be modified such that it works with fast-math enabled?
是否可以修改下面的代碼,使其即使在啟用快速數學的 GCC 編譯時也能正常工作? 注意:我有它在 header 文件中,我還沒有設法關閉 header 的快速數學。 請參閱奇怪的 while 循環行為和如何禁用 header 文件 function 的快速數學 ...
[英]What does the “denormal input” exactly mean in assembly when we consider using DAZ flag for SSE Floating Points
我已經閱讀了這篇文章和do-denormal-flags-like-denormals-are-zero-daz-affect-comparisons-for-equality ,我了解 FTZ 和 DAZ 標志之間的用法和區別。 DAZ 適用於輸入,FTZ 適用於來自 FP 操作的 output ...
[英]__host__ __device__ functions calling overloaded functions
我不明白 Cuda 中是否存在 function 過載。 我想在以下兩個函數上解釋我的問題,我希望能夠在 GPU 和 CPU 上都使用它們,我不在乎精度: 其中 function 的abs ,分別。 cos我應該打電話,為什么? std::abs / abs / fabs / fabsf / a ...
[英]Can I determine at compile time whether --use_fast_math was set?
我正在編寫一些 CUDA 代碼,我希望它根據是否設置--use_fast_math來表現不同。 而且 - 我想在編譯時做出這個決定,而不是在運行時。 當設置--use_fast_math時,NVCC 似乎沒有添加或更改預處理器定義。 我通過比較以下輸出來檢查: 與輸出 它們完全一樣; 以至 ...
[英]Optimal implementation of iterative Kahan summation
介紹 Kahan求和/補償求和是一種解決編譯器無法尊重數字關聯屬性的技術。 截斷誤差導致(a + b)+ c不完全等於a +(b + c),從而在較長的和序列上積累了不希望的相對誤差,這是科學計算中的常見障礙。 任務 我希望最佳實現Kahan求和。 我懷疑使用手工匯編代碼可能會 ...
[英]Does GCC's ffast-math have consistency guarantees across platforms or compiler versions?
我想編寫跨平台的C / C ++,它在不同環境中的行為都可重現。 我知道gcc的快速數學可以實現各種浮點近似。 很好,但是我需要兩個單獨編譯的二進制文件才能產生相同的結果。 假設我一直使用gcc,但是對於Windows,Linux或其他任何版本,以及不同的編譯器版本,我都使用gcc ...
[英]Do denormal flags like Denormals-Are-Zero (DAZ) affect comparisons for equality?
如果我有2個具有不同位模式的非正規浮點數並將它們進行相等性比較,那么結果是否會受到Denormals-Are-Zero標志,Flush-to-Zero標志或常用處理器上的其他標志的影響? 或者這些標志只影響計算而不影響相等性檢查? ...
[英]Strict aliasing, -ffast-math and SSE
考慮以下程序: 如果我使用帶有和不-ffast-math Apple Clang 7.0.2進行編譯,我會得到預期的輸出0 0 0 0 : 但是在更新到8.1.0之后(抱歉我不知道Clang的哪個實際版本對應 - Apple不再發布該信息),- -ffast-math似乎打破了這 ...
[英]Why is std::inner_product slower than the naive implementation?
這是我對dot產品的天真實現: 這是使用C ++庫: 我運行了一些基准測試(代碼在這里https://github.com/ijklr/sse ),庫版本慢很多。 我的編譯器標志是-Ofast -march=native ...
[英]Can I make my compiler use fast-math on a per-function basis?
假設我有 我想用-ffast-math (對於nvcc是--use-fast-math )來編譯一個實例,而沒有它則編譯另一個實例。 這可以通過在單獨的翻譯單元中實例化每個變體,並使用不同的命令行(使用和不使用開關)來編譯每個變體來實現。 我的問題是是否可以指示流行的編譯器( ...
[英]AVX code segfaults when compiled with -ffast-math?
我正在嘗試使用GCC內置的simd支持編寫幾個內核。 我有這個代碼對AVX點產品內核進行基准測試: 奇怪的是,編譯時: 我第一次訪問avx_dot中的temp時遇到段錯誤。 但是,編譯時: IE,沒有-ffast-math,它運行正常。 我很困惑,因為快速數學不應該 ...
[英]What is GCC/Clang equivalent of -fp-model fast=1 in ICC
正如我在英特爾網站上讀到的那樣: 英特爾編譯器使用 /fp-model fast=1 作為默認值。 這種優化有利於速度而不是標准合規性。 您可以使用編譯器選項 -mieee-fp 來獲取兼容代碼。 我對 ICC 中的fp-model選項的理解是(如果我錯了,請糾正我): preci ...
[英]Curious result from the gcc linker behaviour around -ffast-math
我注意到在編譯器鏈接器的標志周圍有一種有趣的現象,它以我無法理解的方式影響正在運行的代碼。 我有一個庫,提供了相同算法的不同實現,以便測試這些不同實現的運行速度。 最初,我使用一對相同的實現對情況進行了測試,以檢查是否發生了正確的事情(兩者都以大致相同的速度運行)。 我首先使用以下 ...
[英]why -ffast-math option break my bool condition
這是導致問題的程序的關鍵部分,並且程序是完全順序的。 exist_是bool類的私有成員,而dbl_num_是class double私有成員 使用選項-ffast-math,我得到打印輸出“ 0 0 5” 沒有選項-ffast-math,我得到打印輸出“ 0 0 NAN” ...
[英]Why does GCC or Clang not optimise reciprocal to 1 instruction when using fast-math
有誰知道為什么 GCC/Clang 在使用快速數學選項時不會在下面的代碼示例中樂觀地使用函數test1來簡單地使用 RCPPS 指令? 是否有另一個編譯器標志會生成此代碼? 您可以在此處查看編譯后的輸出: https : //goo.gl/jXsqat ...
[英]How do I compile with “ffast-math”?
我正在嘗試對一些Rust代碼進行基准測試,但我無法弄清楚如何設置“ffast-math”選項。 % rustc -C opt-level=3 -C llvm-args='-enable-unsafe-fp-math' unrolled.rs rustc: Unknown command lin ...
[英]gcc -Ofast - complete list of limitations
我在我的程序中使用-Ofast gcc選項導致延遲要求。 我寫了簡單的測試程序: 我試圖用默認標志和-Ofast運行它: 所以!=和==的結果是不可信任的。 這是否意味着我應該==和!=只有當兩個值都知道不是nan時,否則我應該先測試isnan ? 是否保證isnan與 ...
[英]Does any floating point-intensive code produce bit-exact results in any x86-based architecture?
我想知道使用浮點運算的 C 或 C++ 中的任何代碼是否會在任何基於 x86 的體系結構中產生位精確的結果,而不管代碼的復雜性如何。 據我所知,自英特爾 8087 以來的任何 x86 架構都使用准備處理 IEEE-754 浮點數的 FPU 單元,我看不出結果在不同架構中會有所不同的任何原因。 但是 ...