之前有网友提问说,,比如我同时装了cuda8和cuda9,opencv总是找到cuda9,我想用cuda8怎么办?实际上,手头上要配置的工程是基于opencv3.1.0的,这个版本没有对cuda9.0的支持,与其去改opencv的cmake脚本源码,不如切换一下cuda版本。
查看了源码知道,调用cmake时指定CUDA_TOOLKIT_ROOT_DIR
即可,例如
set CUDA_TOOLKIT_ROOT_DIR="D:/soft/NVIDIA GPU Computing Toolkit/CUDA/v8.0"cmake ^ -G "Visual Studio 14 2015 Win64" ^ -D CMAKE_BUILD_TYPE=Release ^ -D CMAKE_INSTALL_PREFIX=%cd%/install ^ -D WITH_CUDA=ON ^ -D CUDA_TOOLKIT_ROOT_DIR=%CUDA_TOOLKIT_ROOT_DIR% ^ -D WITH_VTK=OFF ^ -D WITH_MATLAB=OFF ^ -D BUILD_DOCS=ON ^ -D OPENCV_EXTRA_MODULES_PATH=D:/lib/opencv_contrib_310/modules ^ ../sourcescd ..
顺带吐槽一下FindCUDA.cmake的注释,写的误导人:一上来说要指定CUDA_BIN_PATH
来切换cuda版本,但是试了下并没卵用,还是找到9.0而不是8.0。仔细看了后面find_path
等相关源码才发现是要指定CUDA_TOOLKIT_ROOT_DIR
。