编译支持cuda的opencv
环境
ubuntu 18.04
opencv 4.5.2
opencv_contrib 4.5.2
nvidia_driver 460.*
nvidia_cuda_version 11.2
cudnn 8.1
安装驱动
ubuntu-drivers devices
查看可以支持的驱动版本
sudo apt install nvidia-driver-460
安装 cuda
https://developer.nvidia.com/cuda-downloads
下载对应驱动 run 文件
sudo chmod u+x ./****.run
安装cudnn
https://developer.nvidia.com/rdp/cudnn-download
找和你的cuda 版本匹配的 cudnn版本。
下载并解压
sudo cp /cuda/include/* /usr/local/cuda/include
sudo cp /cuda/lib64/* /usr/local/cuda/lib64
编译opencv
cd opencv-4.5.2
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_LIBV4L=ON\
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=6.1 \
-D WITH_CUBLAS=1 \
-D CUDNN_VERSION=8.1 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so \
-D OPENCV_EXTRA_MODULES_PATH=/home/wen/HardDisk/SoftWare/opencv/opencv_contrib-4.5.2/modules ..
make -j 8
sudo make install
以上cmake 参数中值得注意的是
-D CUDA_ARCH_BIN 6.1
这个 6.1 , 有两种获取方式
git clone https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps.git
cd deepstream_tlt_apps/TRT-OSS/x86
nvcc deviceQuery.cpp -o deviceQuery
./deviceQuery | grep Capability
CUDA Capability Major/Minor version number: 6.1
dnn网络使用cuda 加速
dnnnet.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
dnnnet.setPreferableTarget(cv::dnn::DNN_BACKEND_CUDA);
|