我目前正在嘗試使用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