繁体   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