Linux/Debian/Ubuntu-OpenCV(4.5.4/4.6.0)+CUDA(11.3)配置编译全流程

这篇具有很好参考价值的文章主要介绍了Linux/Debian/Ubuntu-OpenCV(4.5.4/4.6.0)+CUDA(11.3)配置编译全流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文用来记录在linux环境下docker中编译OpenCV with cuda的过程,同时编译了4.5.4和4.6.0两个版本均可编译通过。

本地是linux环境也可参考本文完成编译。

系统:debian 11
CPU:i7
内存:16G
显卡:Nvidia Quadro M2000

相关资源下载

OpenCV

github直接下载连接:
OpenCV 4.5.4 source code
OpenCV 4.6.0 source code

如需下载其他版本可自行通过下述链接下载:
github release page

CUDA下载

对应CUDA版本最低显卡驱动要求1,最新527显卡驱动有点问题,我下载的是470版本linux驱动,顺利安装运行。

显卡驱动安装可参考下述文章:debian11安装Nvidia驱动及Docker运行

CUDA 11.3.1下载2

https://developer.nvidia.com/cuda-11-3-1-download-archive

wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run
sudo sh cuda_11.3.1_465.19.01_linux.run

历史版本下载汇总页面
ubuntu编译cuda程序,Docker,linux

CUDNN下载

CUDNN下载需要注册Nvidia账户。
Download cuDNN v8.8.0 (February 7th, 2023), for CUDA 11.x

解压指令:
tar -xvf cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz

如需其它版本,自行下载对应库:
历史版本下载

解压后复制到CUDA对应目录

sudo apt-get install gcc-9 g++-9

sudo ln -s /usr/local/cuda-11.3 cuda
sudo rsync -av /bing_ws/opencv_with_cuda/cudnn/cuda/lib64/* /usr/local/cuda-11.3/lib64/
sudo rsync -av /bing_ws/opencv_with_cuda/cudnn/cuda/include/* /usr/local/cuda-11.3/include/

NVIDIA显卡计算能力一览表
https://developer.nvidia.com/cuda-gpus

ubuntu编译cuda程序,Docker,linux

编译

compaile opencv 4.5.4

cmake -S ../opencv -B . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CONFIGURATION_TYPES=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_EXTRA_MODULES_PATH=/bing_ws/opencv_with_cuda/opencv_contrib-4.5.4/modules \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TEST=OFF \
-DBUILD_opencv_world=ON \
-DOPENCV_ENABLE_NONFREE=ON \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DWITH_EIGEN=ON \
-DWITH_OPENGL=OFF \
-DCMAKE_LIBRARY_PATH=/usr/local/cuda-11.3/lib64/stubs \
-DWITH_CUDA=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.3 \
-DOPENCV_DNN_CUDA=ON \
-DWITH_CUBLAS=ON \
-DWITH_CUDNN=ON \
-DCUDA_FAST_MATH=ON \
-DENABLE_FAST_MATH=ON \
-DCUDA_ARCH_BIN=5.2;6.1;7.5;8.6 \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_VTK=ON \
-DWITH_GTK=ON \
-DBUILD_JAVA=OFF

# 暂时不用,只需上述配置参数
-DCUDA_GENERATION=Auto \
-DCUDA_nppicom_LIBRARY=stdc++ \
-DWITH_GSTREAMER=ON \
-DVIDEOIO_PLUGIN_LIST=gstreamer \

compaile opencv 4.6.0

cmake -S ../opencv-4.6.0 -B . \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CONFIGURATION_TYPES=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_EXTRA_MODULES_PATH=/bing_ws/opencv_with_cuda/opencv_460/opencv_contrib-4.6.0/modules \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TEST=OFF \
-DBUILD_opencv_world=ON \
-DOPENCV_ENABLE_NONFREE=ON \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DWITH_EIGEN=ON \
-DWITH_OPENGL=OFF \
-DCMAKE_LIBRARY_PATH=/usr/local/cuda-11.3/lib64/stubs \
-DWITH_CUDA=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.3 \
-DOPENCV_DNN_CUDA=ON \
-DWITH_CUBLAS=ON \
-DWITH_CUDNN=ON \
-DCUDA_FAST_MATH=ON \
-DENABLE_FAST_MATH=ON \
-DCUDA_ARCH_BIN=5.2;6.1;7.5;8.6 \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_VTK=ON \
-DWITH_GTK=ON \
-DBUILD_JAVA=OFF

# 暂时不用,只需上述配置参数
-DCUDA_GENERATION=Auto \
-DCUDA_nppicom_LIBRARY=stdc++ \
-DWITH_GSTREAMER=ON \
-DVIDEOIO_PLUGIN_LIST=gstreamer \

install necessary lib

sudo apt install libgtk2.0-dev libgtk-3-dev
export PATH=${PATH}:/usr/local/cuda/bin
export C_INCLUDE_PATH=${C_INCLUDE_PATH}:/usr/local/cuda/include
export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:/usr/local/cuda/include
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
export LIBRARY_PATH=${LIBRARY_PATH}:/usr/local/cuda/lib64

vim /etc/ld.so.conf
# add lib
/usr/local/cuda/lib64

./predict --image ./images --model ./models/yolov5m-seg.onnx

错误异常

运行程序报错(-217:Gpu API call) cuDNN did not return a suitable algorithm for convolution.
原始错误如下所示:

[ WARN:0@0.317] global /bing_ws/opencv_with_cuda/opencv_460/opencv-4.6.0/modules/dnn/src/op_cuda.cpp (34) initCUDABackend The selected CUDA device does not support FP16 target; switching to FP32 target.
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.6.0) /bing_ws/opencv_with_cuda/opencv_460/opencv-4.6.0/modules/dnn/src/layers/../cuda4dnn/primitives/../csl/cudnn/convolution.hpp:303: error: (-217:Gpu API call) cuDNN did not return a suitable algorithm for convolution. in function 'ConvolutionAlgorithm'

  1. NVIDIA CUDA Toolkit Release Notes ↩︎

  2. CUDA Toolkit 11.3 Update 1 Downloads ↩︎文章来源地址https://www.toymoban.com/news/detail-690465.html

到了这里,关于Linux/Debian/Ubuntu-OpenCV(4.5.4/4.6.0)+CUDA(11.3)配置编译全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cuda 安装和卸载 Linux(Ubuntu、debian)详细图解

    cuda需要Nvidia显卡或计算卡,AMD或intel显卡不行(但是也有套他们的标准) 就算是亮机卡也可使用,比如GT710这种 建议使用ubuntu来装,因为cuda就是在这个平台上开发的,当然别的linux系统也行 以下操作在ubuntu server 2204、debian12、debian11中都操作过,如果没有安装linux系统,可以

    2024年02月03日
    浏览(41)
  • 安装库报错:No CUDA runtime is found, using CUDA_HOME=‘/usr/local/cuda-11.3‘

    安装库时报错: 查看cuda版本和pytorch版本 因此发现是由于该虚拟环境中CUDA与torch的版本不对应,发现在安装虚拟环境的environment.yml文件中只有指定cuda版本,而没有自动安装正确的torch版本: 重新安装torch,在 torch 官网中找到适配的版本,并安装 pip install torch 1.12.1+cu113 torch

    2024年02月12日
    浏览(41)
  • Win11下配置OpenCV with CUDA

    前些天在B站上看到用OpenCV调用CUDA加速目标检测和关键点检测的教程,较Pytorch推理速度提升很明显,最近整了个RTX4070,所以就也想来试一试。由于刚换了电脑,没有相关环境,配置过程中踩了一些坑,因此有了这篇记录文章。 系统:Windows11-22H2 显卡:RTX4070 驱动:CUDA-11.8,c

    2024年02月10日
    浏览(35)
  • cuda 安装和卸载 (Ubuntu、debian)详细图解

    cuda需要Nvidia显卡或计算卡,AMD或intel显卡不行(但是也有套他们的标准) 就算是亮机卡也可使用,比如GT710这种 建议使用ubuntu来装,因为cuda就是在这个平台上开发的,当然别的linux系统也行 以下操作在ubuntu server 2204、debian12、debian11中都操作过,如果没有安装linux系统,可以

    2024年02月09日
    浏览(40)
  • 【深度学习环境配置】ubuntu 20.04+4060 Ti+CUDA 11.8+pytorch(装机、显卡驱动、CUDA、cudnn、pytorch)

    【深度学习环境配置】ubuntu 20.04+4060 Ti+CUDA 11.8+pytorch(装机、显卡驱动、CUDA、cudnn、pytorch) 📆 安装时间 2023.11.08-2023.11.10 Windows 和 Ubuntu 双系统的安装和卸载 B站教程 【本文基本上跟这个详细教程一致,优先推荐看这个!】ubuntu20.04 下深度学习环境配置 史上最详细教程 【精

    2024年02月04日
    浏览(65)
  • cuda 安装和卸载 (Ubuntu 2204、debian12)详细图解

    cuda需要Nvidia显卡或计算卡,AMD或intel显卡不行(但是也有套他们的标准) 就算是亮机卡也可使用,比如GT710这种 建议使用ubuntu来装,因为cuda就是在这个平台上开发的,当然别的linux系统也行 以下操作在ubuntu server 2204、debian12、debian11中都操作过,如果没有安装linux系统,可以

    2024年02月13日
    浏览(43)
  • Ubuntu20.04下CUDA11.8、cuDNN8.6.0、TensorRT8.5.3.1的配置过程

    系统设置-软件和更新-附加驱动-选择NVIDIA驱动-应用更改。 NVIDIA官网CUDA下载页面下载CUDA11.8,按步骤进行安装,注意在安装CUDA的时候取消驱动安装这个选项。 安装完后配置环境变量,sudo gedit ~/.bashrc,添加: export PATH=$PATH:/usr/local/cuda-11.8/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/us

    2024年02月11日
    浏览(59)
  • Ubuntu 20.04 RTX 4090显卡 深度学习环境配置(Nvidia显卡驱动、CUDA11.6.0、cuDNN8.5)

    参考文献:从零到一保姆级Ubuntu深度学习服务器环境配置教程 看文献中“ 三、 NVIDIA驱动安装 ” 安装NVIDIA驱动,这也是安装CUDA10.0及其对应版本的CuDNN和tensorflow的重要步骤。 1.1.1 英伟达中国驱动官网 进入英伟达中国驱动官网 1.1.2 输入显卡型号查询 1.1.3 查看搜索结果 1.2.1 方

    2024年02月04日
    浏览(112)
  • Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置

    一、在 Debian 中添加 sudo 用户 1.创建新用户 首先,要创建用户,当前用户必须是 root 用户或者 sudo 用户。 使用下面adduser 命令创建一个用户名为test的sudo用户,按照提示输入密码,使用 adduser 命令,还会创建用户的主目录。 sudo adduser test 2.将用户成为 sudo 用户 创建test用户后,

    2024年02月05日
    浏览(67)
  • Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置!

    在Debian 11服务器上安装SSH并创建新用户允许SSH远程登录的步骤如下: 步骤1:安装SSH 为了安装SSH服务器,您需要以root用户或具有sudo特权的用户身份登录到您的Debian 11服务器。 在终端中执行以下命令来安装SSH服务器: 步骤2:创建新用户 要创建一个新用户,您可以使用  add

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包