我目前正在尝试使用CUDA 9.0RC编译OpenCV 3.3,但无法完成所有工作。 (在Windows上编译,用CMake 3.9和Visual Studio 2017,用于x64 Windows)使用CUDA 9.0RC编译OpenCV 3.3
首先,如果我尝试在没有CUDA的情况下编译OpenCV,那么一切正常。
在那之后,我加入C进行“WITH CUDA”选项,与所有正确的路径,和Visual Studio给我这个错误:
9>------ Build started: Project: opencv_world, Configuration: Release x64 ------
9>Building NVCC (Device) object modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
9>nvcc fatal : Unsupported gpu architecture 'compute_20'
9>CMake Error at cuda_compile_generated_gpu_mat.cu.obj.cmake:206 (message):
9> Error generating
9> C:/OpenCV-3.3.0/opencv-3.3.0/build/modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
想这是一个“牌坊”的问题,我试着改变,在CMake的:
CUDA_ARCH_BIN : 2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1
到:
CUDA_ARCH_BIN : 6.0 6.1
(由于我使用1080)
和Visual Studio给我现在这个错误:
6>------ Build started: Project: opencv_world, Configuration: Release x64 ------
6>Building NVCC (Device) object modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
6>gpu_mat.cu
6>'bin' is not recognized as an internal or external command,
6>operable program or batch file.
6>CMake Error at cuda_compile_generated_gpu_mat.cu.obj.cmake:206 (message):
6> Error generating
6> C:/OpenCV-3.3.0/opencv-3.3.0/build/modules/world/CMakeFiles/cuda_compile.dir/__/core/src/cuda/Release/cuda_compile_generated_gpu_mat.cu.obj
我不知道这个“箱子”是由正在添加的,我真的不知道我应该怎样做才能使其发挥作用。 。
感谢您的回复!
在CUDA 9.0辗转在计算能力2.x的支持,之后是在CUDA 8.0中不推荐使用,这是您的第一个错误。如果您从架构列表中删除“2.0”来构建?会发生什么情况?您应该b通过研究CMAKE(一个功能强大的混淆工具)的输出,能够找出“bin”来自哪里:推测它是不正确构建的路径的一部分,因此被视为可执行文件的调用。 – njuffa
从ARCH Build中移除2.0可以解决第一个错误,但是后来给了我第二个错误。我已经设法将这个错误视为weel(这确实是一个路径问题),但现在当我试图编译OpenCV时,它抱怨“__half2float()”没有声明..我尽我所能,但不能找到答案... – TmZn