我有一個C++程序,做了很多數學(主要是調用sin(),sqrt()等常規操作)。我知道在理論上,使-msse,-msse2和-mfpmath = sse能夠爲GCC/G ++使用更多的寄存器以便使我的程序運行更快,實際上它總是這樣做?在最糟糕的情況下,它能讓我的代碼運行得更慢嗎?啓用-msse,-msse2和-mfpmath = sse總是會讓我的程序運行得更快嗎?
16
A
回答
16
如果擔心性能,你應該總是輪廓。
SSE指令使用不同的CPU資源,因此他們可能會導致性能下降(例如,由於這些資源是不可用於超線程),但在現實生活中,這應該是非常罕見的確實。
12
都能跟得上:它不會總是使程序速度更快。
雖然它可能,我真的不會期望在可憐的情況下放緩很多;然而,正如Ben所提到的,簡介,簡介簡介。
你的運氣可能會有所不同。此外,如果您正在編譯運行代碼的相同類型的CPU,則使用-march=native
通常會更好。
特別是與SIMD指令,看調整和處理器親和力(即高速緩存局部性的影響)
+0
是「不」。 「總是讓我的程序跑的更快?」或者「它能讓我的代碼運行得更慢嗎?」 OP要求... – 2011-06-08 22:52:35
+0
澄清[...] – sehe 2011-06-08 22:55:56
相關問題
- 1. 使用-parallel或(和)-vec會使我們的程序運行得更快嗎?
- 2. 有沒有辦法讓我的Python程序運行得更快?
- 3. 讓geoserver運行得更快
- 4. 如果我們在RTOS設備中使用gcc的msse和msse2選項,那麼會好嗎
- 5. OpenMP和SSE,我的程序不加快
- 6. 我該怎麼做才能讓我的程序運行得更快?
- 7. 如何讓PHPUnit + Selenium運行得更快?
- 8. 如何讓這個程序運行得更快?
- 9. 如何讓我的虛擬機運行得更快?
- 10. 如何讓我的程序運行得更快:是否使用線程解決方案?
- 11. 爲什麼刪除這個還會讓我的代碼運行得更快?
- 12. -msse,-msse2,-mssse3,-msse4 rtc的cflgs sse選項有什麼不同?以及如何確定?
- 13. 如何讓我的循環在R中運行得更快?
- 14. 讓我的R代碼運行得更快(嵌套循環)
- 15. 我如何使用CLANG將-mfpmath = sse傳遞給LLVM
- 16. 如何讓我的rexml/nokogiri腳本運行得更快
- 17. 爲什麼在使用多線程時該程序不會運行得更快?
- 18. 讓Zend-Framework運行更快
- 19. 運行進程WMI或System.Diagnostics.Process更快嗎?
- 20. iphone - 我怎麼讓線程運行更快
- 21. 從以前運行的應用程序獲得總和
- 22. 如何讓Piwik日誌導入程序在Windows/IIS上運行得更快?
- 23. 這可以通過線程運行得更快嗎?
- 24. 如果應用程序已經運行,它會啓動嗎?
- 25. 不讓我運行應用程序
- 26. cs231n:如何讓程序運行速度更快?
- 27. 如何讓這個clojure代碼運行得更快?
- 28. 如何讓我的Android應用程序在啓動屏幕後更快加載?
- 29. 運行Valgrind會減慢我的應用程序嗎?
- 30. 如何讓python上的這段代碼運行得更快?
只是一個側面說明,如果你真的需要快速數學,你應該考慮使用優化的函數,完全符合您的精度要求,甚至是預先計算的值表。這可以帶來幾個數量級的加速。 – 2011-06-08 23:04:10