考慮加法模型上的維特比解碼器。它花時間做補充和比較。現在,考慮兩種:一種是C/C++ float
作爲數據類型,另一種是int
。在現代芯片上,你會期望int
的運行速度明顯快於float
?或者,流水線的奇蹟(以及不存在乘法和除法)是否會讓所有問題都出現?現代芯片上的浮點數與整數算術性能
3
A
回答
3
取決於你的意思是顯着。我通常期望看到整數執行速度快兩倍,但這一切都取決於還在發生什麼。可以處理AMD64(AMD/Core2)指令集的現代處理器通常可以在每個週期有效執行1次浮動操作,如果它們能夠保持流水線進給的話,它們通常也可以做相同數量的2或3個整數操作的時間。甚至可以同時做到這一點。
但是,編寫阻塞管道的代碼並不困難,您必須避免在計算完成後立即使用計算結果,否則管道將停止運行,並且每次乘法運算的結果更像3個週期而不是1個。
在大多數情況下,PowerPC的每個週期指令與AMD/Intel相同或更好。
附錄:
順便說一句,你可能會發現比較(或者說是攀比暗示的分支機構)最終花費了很多比增加更多。錯誤預測的分支是昂貴的,特別是在Pentium 4處理器上。
+1
一些編譯器使用'SETCC'指令而不是'Jcc'指令來實現比較,在這種情況下不涉及分支,並且不會導致分支預測失誤。 – 2010-01-09 17:14:21
相關問題
- 1. 浮點與整數性能
- 2. 浮點算術 - 尾數和指數
- 3. 如何使用整數算術將分數轉換爲python中的浮點數?
- 4. PHP意外整數/浮點數計算
- 5. 計算整數和一個浮點數
- 6. Python計算:浮點數和整數
- 7. 浮點運算性能C++
- 8. 浮點與整數數據類型的計算問題,用C
- 9. 整數轉換的浮點運算
- 10. Java的浮點整數運算
- 11. C思維:浮點數與整數和浮點數表示法
- 12. Android浮點數學性能
- 13. 一輪浮點數魔術
- 14. 64位上的按位與長整數與整數的性能
- 15. iphone浮點數與整數舍入?
- 16. 求和浮點數和整數與jquery
- 17. 顯示整數和整數浮點數作爲浮點數
- 18. 如何僅使用整數算術生成IEEE 754單精度浮點數?
- 19. SQL使用長浮點數的數學問題,算術
- 20. 浮點數和運算符詳細與浮點數
- 21. 與浮點運算一致的整數除法
- 22. 浮點算術運算不如預期
- 23. 計算對數表達而不浮點算術或日誌
- 24. 浮點數計算
- 25. 比較浮點數整數
- 26. 浮法算術
- 27. 數學計算 - 浮點數
- 28. 解決Javascript的浮點算術問題
- 29. 整數與浮點C++比較
- 30. 在J2ME中實現最高性能的浮點數據類型
通常,我會說你應該測量兩種方法,看看哪一種更快。但是,如果您可以訪問要定位的CPU,或者如果您有模擬器,則這更有用/更實際。 – 2010-01-06 00:58:49
我有CPU。我希望有人在這裏進行類似的計算,然後再去測量它的麻煩。 – bmargulies 2010-01-06 00:59:28