我正在開發一些數值軟件,它的性能很大程度上取決於數值精度(即浮點數,雙精度等)。 我注意到ARM NEON並不完全符合IEEE754浮點標準。有沒有辦法在x86 CPU上模擬NEON的浮點精度?例如模擬NEON SIMD浮點運算的庫。我可以在x86 C程序中模擬ARM NEON嗎?
3
A
回答
1
也許吧。
我對SSE不太瞭解,但是可以強制許多SSE模式的行爲像NEON。這將取決於您的編譯器和可用庫,但請參閱Visual Studio FP unit control functions。這可能足夠滿足您的要求。
此外,您可以使用arm_neon.h標頭確保您使用類似的內在函數來完成類似的操作。最後,如果你真的需要在這些邊界條件下達到這個精度,你將需要一個好的測試套件來驗證你是否按預期實現了你的結果。最後,即使使用純粹的「C」代碼(通常符合IEEE-754),並使用ARM上的VFP作爲其他評論者所述,您將得到不同的結果,因爲浮點非常不規則過程,並受到優化和操作順序的突發事件的影響。讓結果在不同的編譯器中相匹配是非常具有挑戰性的,更不用說硬件體系結構。例如,如果要在CL/MSVS上與/fp:precise
進行比較,要在英特爾上使用gcc獲得非常令人滿意的結果,通常需要使用-ffloat-store
標誌。
最後,您可能需要接受某種非零容錯。試圖達到零可能是困難的,但如果你到達那裏聽到你的結果會很棒。看起來有可能......但很難。
0
感謝您的回答。
最後,我使用了連接到桌面的android手機,並且手機上正在運行某些功能。
相關問題
- 1. ARM和NEON可以並行工作嗎?
- 2. 我可以在C程序中使用模式匹配嗎?
- 3. 我可以模擬SqlConnection.BeginTransaction c#?
- 4. 我可以在Perl中模擬C風格的宏嗎?
- 5. 我可以在JavaScript中模擬C類指針數組嗎?
- 6. SSE _mm_movemask_epi8 ARM NEON
- 7. X86庫可以在android上調用ARM庫嗎?
- 8. OS內核可以在x86和ARM上運行嗎?
- 9. 共享庫文件.so x86可以在ARM上工作嗎?
- 10. arm neon vst1.32 segfault
- 11. atan2近似11位尾數在x86(與SSE2)和ARM(與vfpv4 NEON)
- 12. 我可以在Xcode中更改模擬器的順序嗎?
- 13. Qemu中的ARM NEON支持
- 14. SSE(Intel)到NEON(ARM)數據類型模擬
- 15. 我可以在模擬器中運行舊的應用程序存檔嗎?
- 16. 可用嗎?我可以單獨下載模擬器/模擬器來測試metro應用程序嗎?
- 17. 我可以在C程序中使用C++庫嗎?
- 18. 我可以模擬NFC-V標籤嗎?
- 19. 可以在gcc中模擬nullptr嗎?
- 20. 我可以在Firefox 4.0中模擬以前的Firefox版本嗎?
- 21. 在Android模擬器中可以模擬未命中嗎?
- 22. JUnit可以模擬OutOfMemoryErrors嗎?
- 23. 我可以使用模擬對象來模擬串口嗎?
- 24. 我可以使用模擬器模擬特定手機嗎?
- 25. 模擬使用c運行的x86 32位程序集
- 26. 我可以在沒有模擬器的PC上運行android應用程序嗎?
- 27. 我們可以在android模擬器上測試shake應用程序嗎?
- 28. 是否有可能將針對iOS ARM編譯的.ipa轉換爲可以在模擬器上運行的x86?
- 29. 我可以在GCC上使用x86彙編的Intel語法嗎?
- 30. 我可以從C++程序中調用Objective-C類嗎?
http://meta.stackexchange.com/a/66378 – auselen 2015-03-25 08:06:15
請注意,NEON _arithmetic_應該是單精度754 - 「不符合」主要來自對754指定多個模式的某些方面具有固定值(舍入,異常陷印,非正常處理等)。如果精度比速度更重要,請考慮定位VFP而不是NEON。 – Notlikethat 2015-03-25 11:09:55
NEON沒有把非正常變爲零嗎?如果是這樣,我相信在x86中有一個設置可以做到這一點。 – EOF 2015-03-25 11:32:59