Ubuntu20.04安装显卡驱动、CUDA、CUDNN、opencv使用CUDA加速

Best Megumi 2024-08-09 10:37:01 阅读 55

每台电脑的环境都有差异,出现的报错可能不尽相同,博客和视频仅供参考,希望能对大家有所帮助。

本文所用到的包都在云盘上可以下载

链接:https://pan.baidu.com/s/149EOhd4csxC_-QZJP1Jd9w 

提取码:0721

博客:https://blog.csdn.net/qq_64006507?spm=1011.2415.3001.5343

b站:https://space.bilibili.com/34693773?spm_id_from=333.1007.0.0

内容均在b站与博客上有演示

一、显卡驱动安装

<code>sudo apt-get update #更新

在左下角的九宫格里打开软件和更新,附加驱动里选择一个版本安装,最好不要装太高,建议安装470的,点击应用更改。

<code>reboot #重启

nvidia-smi #显示以下信息安装成功

sudo apt-get full-upgrade

二、CUDA安装

CUDA下载网址CUDA Toolkit Archive | NVIDIA Developer

选择与上面相应的CUDA版本进行下载

按照上面的选项后,下面的两行命令复制到终端执行例如:

<code>wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run

若出现这种情况

<code>wget -c https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run

sudo sh cuda_11.4.0_470.42.01_linux.run

第一项Enter键去掉

最后一项Install回车

<code>gedit ~/.bashrc #添加环境变量

在弹出的编辑器拉到最下面复制下面代码然后ctrl+s保存

export PATH=$PATH:/usr/local/cuda/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

source ~/.bashrc # 刷新环境变量

nvcc -V #显示信息

CUDA测试:

进入该文件夹后输入make

make完之后

cd 1_Utilities/deviceQuery

./deviceQuery

三、CUDNN安装

网址为:cuDNN Archive | NVIDIA Developer

下载CUDNN需要先注册一个账号

注册登陆后下载下面框选的四项“注意选择你的Ubuntu版本”(##注意如果你的CUDA安装的版本较高,可能会没有Runtime、Developer、Code测试的三项,如果没有则可以跳过CUDNN的测试步骤)。

下载好后把文件都拖到主文件夹下

解压(输入cudnn按Tab可直接补齐):

<code>tar -xvf cudnn-11.4-linux-x64-v8.2.4.15.tgz

进入这个文件夹打开终端

<code>sudo cp include/cudnn* /usr/local/cuda-11.4/include/

sudo cp lib64/libcudnn* /usr/local/cuda-11.4/lib64/

sudo chmod a+r /usr/local/cuda-11.4/include/cudnn*

sudo chmod a+r /usr/local/cuda-11.4/lib64/libcudnn*

CUDNN测试:(上面如果没有那三个文件则可跳过此步)

cd ~ #回到主目录

sudo dpkg -i libcudnn8_8.2.4.15-1+cuda11.4_amd64.deb

sudo dpkg -i libcudnn8-dev_8.2.4.15-1+cuda11.4_amd64.deb

sudo dpkg -i libcudnn8-samples_8.2.4.15-1+cuda11.4_amd64.deb

cp -r /usr/src/cudnn_samples_v8/ ~ # 拷贝例程到用户目录

cd ~/cudnn_samples_v8/mnistCUDNN

sudo make clean && make

若出现此问题

<code>sudo apt-get install libfreeimage3 libfreeimage-dev

sudo make clean && make

./mnistCUDNN

四、安装编译能使用CUDA的opencv

1、环境准备

<code>sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

常见问题:无法定位 libjasper-dev

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

sudo apt update

sudo apt install libjasper1 libjasper-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2、下载源码

这边建议直接找师兄师姐拉給你。

opencv下载地址:https://opencv.org/releases/

opencv_contrib下载地址:https://github.com/opencv/opencv_contrib/tree/4.5.5

如果有opencv源码则不用上面这一步。

3、编译安装

mkdir opencv4.5.5_cuda && cd opencv4.5.5_cuda

unzip opencv-4.5.5.zip

unzip opencv_contrib-4.5.5.zip

cd opencv-4.5.5

mkdir build && cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.5/modules -D BUILD_EXAMPLES=ON -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON WITH_TBB=ON WITH_V4L=ON WITH_QT=ON -D WITH_FFMPEG=ON -D WITH_LIBV4L=ON OPENCV_GENERATE_PKGCONFIG=YES BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D OPENCV_DNN_CUDA=ON -D CUDA_ARCH_BIN=8.6 -D WITH_CUDNN=ON -D CUDNN_INCLUDE_DIR=/usr/local/cuda/include/ -D WITH_ZLIB=ON -D BUILD_PNG=ON -D BUILD_JPEG=ON -D BUILD_TIFF=ON -D BUILD_TIFF=ON -D WITH_CUDA=ON -D WITH_OPENCL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=/usr/local -DPYTHON3_EXECUTABLE=$(which python) -DPYTHON3_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

##注意:”CUDA_ARCH_BIN=8.6“这里的数字可以去官网查看(网址:https://developer.nvidia.com/cuda-gpus#compute)按照自己电脑显卡的型号填写。如果实在不确定的可以在上面CUDA测试那一步查看。

<code>sudo make -j6 (RTX3050显卡以上的可以j8)

sudo make install

将opencv链接到系统路径

sudo ldconfig -v

sudo gedit /etc/ld.so.conf.d/opencv.conf

打开之后是一个空的文件,将下面这句复制进行保存

/usr/local/lib

使路径生效:

sudo ldconfig

配置环境变量:

sudo gedit /etc/bash.bashrc

在最末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

保存,执行如下命令使得配置生效

source /etc/bash.bashrc

测试:

cd ~

 unzip opencv-test.zip

cd opencv_cuda_yolov5

mkdir build && cd build

cmake .. (注意修改CMakeList.txt里opencv的路径)

make

./main

watch -n 1 nvidia-smi #实时查看GPU的使用情况。

若上面代码跑不通的话可以去CMakeList.txt里把main.cpp换成test.cpp然后重新编译。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。