簡體   English   中英

如何在運行時檢測 NEON 和 Helium 指令集的可用性

[英]How do I Detect Availability of NEON and Helium Instruction Sets at Runtime

我正在開發一個跨平台的並行數學庫,並且在為 x86/amd64 實現 SSE、AVX、AVX2 和 AVX-512 方面取得了很大進展,包括 ISA 可用性的運行時檢測。

但是,我遇到了一個大問題。 MSVC 上沒有在運行時檢測 NEON 或 Helium 支持的文檔。 ARM 或 ARM64 上似乎沒有cpuid指令。 目前還不清楚是否有跨平台的方式來為 Linux 實現這一點。

您甚至需要手動檢測它還是可以只使用預處理器定義(例如_M_ARM64 )來檢查運行時支持? 我的理解是預處理器宏僅在編譯時進行評估。

我們是否應該假設每個 ARM CPU 都有 NEON? 氦氣呢?

我希望這里有人知道怎么做。 先感謝您。

NEONVFParmv8-a上是強制性armv8-a

因此,無需在運行時檢查aarch64上的aarch64

我會完全aarch32aarch32支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM