![](/img/trans.png)
[英]Do I need to make multiple executables for targeting different instruction sets?
[英]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? 氦氣呢?
我希望這里有人知道怎么做。 先感謝您。
NEON
和VFP
在armv8-a
上是強制性armv8-a
。
因此,無需在運行時檢查aarch64
上的aarch64
。
我會完全aarch32
對aarch32
支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.