编译opencv 4.2支持cuda
作者:互联网
下载opencv_contrib 代码 下载地址 https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.2.0 ,这个仓库里是opencv扩展模块的代码(主要是cuda和dnn模块)
2.升级cmake
wget https://cmake.org/files/v3.17/cmake-3.17.1.tar.gz
tar -zxvf cmake-3.17.1.tar.gz
cd cmake-3.17.1
./configure
make && make install
查看cmake版本 cmake -version
编译时可能遇到找不到openssl的问题,执行yum -y install ncurses-devel,yum install openssl-devel
3.安装cuda cudnn cudnn-devel,cuda和cudnn,cudnn-devel的版本必须一致,下载地址https://developer.nvidia.com/ 安装包位置 安装包\云晁\Centos\centos_tool\新显卡驱动及不需联网的cuda 安装cuda 执行./cuda_10.0.130_410.48_linux_tensorflow.run 安装cudnn 执行rpm -ivh libcudnn7-7.6.5.32-1.cuda10.0.x86_64_tensorflow.rpm 安装cudnn-devel 执行rpm -ivh libcudnn7-devel-7.6.5.32-1.cuda10.0.x86_64.rpm 查看cuda版本 cat /usr/local/cuda/version.txt 4.编译opencv 注意:第一次编译时需要联网下载依赖,网络环境比较差,可能需要下载很多次才行 cd opencv-4.2.0 mkdir build cd build cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/root/ffmpeg/ld_lib/opencv4.2/opencv_4.2.0_gpu_install_dir -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_CUDA=ON -DWITH_CUDNN=ON -D CUDA_ARCH_BIN=5.3,6.0,6.1,7.0,7.5 -DCUDA_ARCH_PTX=7.5 -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DWITH_CUBLAS=1 -DOPENCV_EXTRA_MODULES_PATH=/root/ffmpeg/ld_lib/opencv4.2/opencv_contrib-4.2.0/modules CMAKE_CXX_FLAGS="-std=c++11" .. 别忘了改下面两个编译命令
-DCMAKE_INSTALL_PREFIX 指定安装位置 -DOPENCV_EXTRA_MODULES_PATH 指定opencv扩展库路径 cmake完了要看一下输出有没有检测到cuda 和cudnn
make -j 20 && make install
以上是编译呢能够使用cuda加速的opencv,如果不需要cuda加速 cmake命令改为cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. 即可 5.编译可能遇到的问题 1.某些.i文件找不到,解决方法,重新执行cmake命令下载 2. nppi库找不到,使用opencv 4.1一下的版本 cuda版本9.0以上会出现这个问题,原因是cuda9.0的nppi库拆分成了若干个库,解决方法查考https://blog.csdn.net/u014015324/article/details/111195780 还有一种可能时cmake版本过低,cmake查找cuda时会用到/usr/local/share/cmake-3.9/Modules/FindCUDA.cmake ,这个FindCUDA.cmake 有问题,需要升级cmake解决
3.安装cuda cudnn cudnn-devel,cuda和cudnn,cudnn-devel的版本必须一致,下载地址https://developer.nvidia.com/ 安装包位置 安装包\云晁\Centos\centos_tool\新显卡驱动及不需联网的cuda 安装cuda 执行./cuda_10.0.130_410.48_linux_tensorflow.run 安装cudnn 执行rpm -ivh libcudnn7-7.6.5.32-1.cuda10.0.x86_64_tensorflow.rpm 安装cudnn-devel 执行rpm -ivh libcudnn7-devel-7.6.5.32-1.cuda10.0.x86_64.rpm 查看cuda版本 cat /usr/local/cuda/version.txt 4.编译opencv 注意:第一次编译时需要联网下载依赖,网络环境比较差,可能需要下载很多次才行 cd opencv-4.2.0 mkdir build cd build cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/root/ffmpeg/ld_lib/opencv4.2/opencv_4.2.0_gpu_install_dir -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_CUDA=ON -DWITH_CUDNN=ON -D CUDA_ARCH_BIN=5.3,6.0,6.1,7.0,7.5 -DCUDA_ARCH_PTX=7.5 -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DWITH_CUBLAS=1 -DOPENCV_EXTRA_MODULES_PATH=/root/ffmpeg/ld_lib/opencv4.2/opencv_contrib-4.2.0/modules CMAKE_CXX_FLAGS="-std=c++11" .. 别忘了改下面两个编译命令
-DCMAKE_INSTALL_PREFIX 指定安装位置 -DOPENCV_EXTRA_MODULES_PATH 指定opencv扩展库路径 cmake完了要看一下输出有没有检测到cuda 和cudnn
make -j 20 && make install
以上是编译呢能够使用cuda加速的opencv,如果不需要cuda加速 cmake命令改为cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. 即可 5.编译可能遇到的问题 1.某些.i文件找不到,解决方法,重新执行cmake命令下载 2. nppi库找不到,使用opencv 4.1一下的版本 cuda版本9.0以上会出现这个问题,原因是cuda9.0的nppi库拆分成了若干个库,解决方法查考https://blog.csdn.net/u014015324/article/details/111195780 还有一种可能时cmake版本过低,cmake查找cuda时会用到/usr/local/share/cmake-3.9/Modules/FindCUDA.cmake ,这个FindCUDA.cmake 有问题,需要升级cmake解决
3.编译器可能中途退出,接着执行make即可
标签:cmake,opencv,4.2,devel,cudnn,cuda,DWITH 来源: https://www.cnblogs.com/lvyunxiang/p/15806610.html