如何解决ARMv8 是否内置了 NEON 和 VFPV3?
我一直在研究如何在 ARMv8 系统上最佳地使用 OpenCV。
通过谷歌搜索几个教程,我发现从源代码构建 OpenCV 时,很多时候 VFPV3 或 NEON 选项没有被激活。
然后我被告知“通常 GCC 将处理与处理器匹配的扩展。ARMv7 有不同的处理器版本,有些支持 VFPV3 和 NEON,因此是标志。所有 ARMv8,如 Xavier AGX,都有那些内置的 GCC足够聪明,可以在遇到它们时使用/编译它们。”
这是否意味着在为 ARMv8 系统构建 OpenCV 时不需要指定 VFPV3 或 NEON?这些默认情况下是否处于活动状态?
解决方法
根据ARM documentation - AArch64 Floating-point and NEON
:
Both floating-point and NEON are required in all standard ARMv8 implementations. However,implementations targeting specialized markets may support the following combinations:
No NEON or floating-point.
Full floating-point and SIMD support with exception trapping.
Full floating-point and SIMD support without exception trapping.
也就是说,如果您使用的 Armv8-a 实现是“标准”的,而且很可能是,它应该支持全浮点和 SIMD,并且如果您指定 {{1 }}。
似乎结果与 gcc 10.2.0 相同:
op.c:
-march=armv8-a+simd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。