cmake編譯opencv時指定cuda版本


之前有網友提問說,基於cmake編譯時如果切換cuda版本,比如我同時裝了cuda8和cuda9,opencv總是找到cuda9,我想用cuda8怎么辦?實際上,手頭上要配置的工程是基於opencv3.1.0的,這個版本沒有對cuda9.0的支持,與其去改opencv的cmake腳本源碼,不如切換一下cuda版本。

查看了FindCUDA.cmake源碼知道,調用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 ^
    ../sources

cd ..

順帶吐槽一下FindCUDA.cmake的注釋,寫的誤導人:一上來說要指定CUDA_BIN_PATH來切換cuda版本,但是試了下並沒卵用,還是找到9.0而不是8.0。仔細看了后面find_path等相關源碼才發現是要指定CUDA_TOOLKIT_ROOT_DIR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM