【问题标题】:is VFPV3 necessary (or suitable) for ARM64?ARM64 需要(或适合)VFPV3 吗?
【发布时间】:2021-07-29 11:54:37
【问题描述】:

我正在尝试使用选项 VFPV3 为 Jetson AGX Xavier (ARM64) 编译 OpenCV 并得到错误

CMake Error at cmake/OpenCVCompilerOptimization.cmake:527 (message)
Required baseline optimization is not supported: VFPV3
(CPU_BASELINE_REQUIRE=;VFPV3;NEON)

然后在网上看了几篇帖子,似乎VFPV3是用于ARMv7的。所以我的问题是,在 ARMv8 平台中是否支持甚至需要设置 VFPV3?

【问题讨论】:

  • 您的问题似乎与您之前的问题重复,does ARMv8 come with NEON and VFPV3 built in?。为什么您决定不对之前的问题/答案集发表评论,而不是继续以略有不同的形式提出相同的问题?

标签: floating-point opencv4 armv8


【解决方案1】:

根据 opencv github 上的this entry,在使用 aarch64-linux-gcc 编译时,使用 -march=native -mcpu=native -mtune=native 足以使 opencv 优化为使用 NEON 和 VFPv3/VFPv4。

更具体地说,opencv/cmake/OpenCVCompilerOptimizations.cmake 没有为 AARCH64 使用任何特定选项,因为 NEON 和 VFP 再次隐含在任何标准 armv8-a 实现中 - 请参阅if(NOT AARCH64) 声明:

elseif(ARM OR AARCH64) 
   ocv_update(CPU_NEON_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_neon.cpp") 
   ocv_update(CPU_FP16_TEST_FILE "${OpenCV_SOURCE_DIR}/cmake/checks/cpu_fp16.cpp") 
   if(NOT AARCH64) 
     ocv_update(CPU_KNOWN_OPTIMIZATIONS "VFPV3;NEON;FP16") 
     if(NOT MSVC) 
       ocv_update(CPU_VFPV3_FLAGS_ON "-mfpu=vfpv3") 
       ocv_update(CPU_NEON_FLAGS_ON "-mfpu=neon") 
       ocv_update(CPU_NEON_FLAGS_CONFLICT "-mfpu=[^ ]*") 
       ocv_update(CPU_FP16_FLAGS_ON "-mfpu=neon-fp16 -mfp16-format=ieee") 
       ocv_update(CPU_FP16_FLAGS_CONFLICT "-mfpu=[^ ]*") 
     endif() 
     ocv_update(CPU_FP16_IMPLIES "NEON") 
   else() 
     ocv_update(CPU_KNOWN_OPTIMIZATIONS "NEON;FP16") 
     ocv_update(CPU_NEON_FLAGS_ON "") 
     ocv_update(CPU_FP16_IMPLIES "NEON") 
     set(CPU_BASELINE "NEON;FP16" CACHE STRING "${HELP_CPU_BASELINE}") 
   endif() 
 elseif(MIPS) 

所以,againis VFPV3 supported in a ARMv8 platform 的答案是肯定的,is it even necessary to set VFPV3 active in a ARMv8 platform? 的答案是否定的。

【讨论】:

  • 如果此答案无济于事,我们将不胜感激就为什么以及如何改进它进行某种互动 - 谢谢。
  • 感谢您的回答。我会慢慢阅读,如有任何问题,请发表评论并标记为已解决。
  • 感谢您的反馈。
猜你喜欢
  • 1970-01-01
  • 2012-01-22
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多