gpt4 book ai didi

arm - 如何检查 ARM 上是否存在NEON?

转载 作者:行者123 更新时间:2023-12-04 01:00:18 67 4
gpt4 key购买 nike

如何确定给定 ARM 处理器上是否存在 NEON 引擎?可以为此目的查询任何状态/标志寄存器吗?

最佳答案

我相信unixsmurf's answer如果使用具有特权内核的操作系统,这将与您获得的一样好。对于通用功能检测,似乎 ARM 要求从操作系统获取它,因此您必须使用操作系统 API 来获取它。

  • 在 Android NDK 上使用 #include <cpu-features.h>(android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM) && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) .请注意,这是针对 32 位 ARM 的。 ARM 64 位具有不同的标志,但想法是相同的。见 sources/docs .
  • 在 Linux 上,如果可用,请使用 #include <sys/auxv.h>#include <asm/hwcap.h>getauxval(AT_HWCAP) & HWCAP_NEON .
  • 在 iOS 上,我不确定是否有动态调用,方法似乎是您构建针对 NEON 的应用程序,然后确保您的应用程序被标记为需要 NEON,因此它只会安装在支持它的设备上。当然你应该使用预定义的预处理器标志 __ARM_NEON__确保在编译时一切正常。
  • 无论 Microsoft 做什么,或者您是否使用其他 RTOS...我不知道...

  • 实际上,您会看到很多 Android 实现,它们只是解析/proc/cpuinfo 以实现 android_getCpuFeatures(.... Heh。但它似乎仍在改进,最新版本使用 getauxval 方法。

    关于arm - 如何检查 ARM 上是否存在NEON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26701262/

    67 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com