一、环境

笔记本:dell g5511

显卡:RTX3060

系统:ubuntu18.04(win10上三者对应的版本太少了,强烈建议转ubuntu,后续会补一个ubuntu系统安装教程)

版本:Cuda11.3/Cudnn v8.2.1(for11.x)/TensorRT8.2

二、显卡驱动安装

首先ctrl+alt+t打开一个命令窗口

输入

ubuntu-drivers devices

ubuntu lxc 容器 显卡 ubuntu配置显卡_bash

可以看到推荐(recommended)使用-495版本,然后运行会自动安装推荐版本

sudo ubuntu-drivers autoinstall

安装完之后可用如下代码查看

nvidia-smi

如下图所示为安装成功

ubuntu lxc 容器 显卡 ubuntu配置显卡_深度学习_02

注:左上cuda11.5为该驱动可兼容的最大cuda版本。

在重启后出现了一个问题

ubuntu lxc 容器 显卡 ubuntu配置显卡_pycharm_03

 开机卡死在这里了,网上搜了一下,应该是nvidia驱动和核显冲突的问题(自己推断),改称显卡直连即可,个人感觉这个方法不是很好,应该在安装驱动的时候进行一定设置可以实现混合模式也可以正常允许,但是目前没有找到解决方法。

总之先改为显卡直连,顺利进行下一步。

三、Cuda安装及配置

首先点击以下连接选择CUDA Toolkit 11.3.0 (April 2021),

cuda各版本安装地址

按照下图选择出现如下命令

ubuntu lxc 容器 显卡 ubuntu配置显卡_pycharm_04

 ctrl+alt+t打开一个命令窗口

先运行第一条命令

wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

然后运行第二条命令

sudo sh cuda_11.3.0_465.19.01_linux.run

安装完成,然后配置环境变量

echo 'export PATH=/usr/local/cuda-11.3/bin:$PATH'>>~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH'>>~/.bashrc

更新一下

source ~/.bashrc

环境变量生效

然后用nvcc -V查看

nvcc -V

大功告成!cuda11.3

ubuntu lxc 容器 显卡 ubuntu配置显卡_ubuntu lxc 容器 显卡_05

 2021.12.16补充:

由于最近工作需要,要安装tensorrt,但是在安装过程中发现一个问题,cuda,cudnn,tensorrt的安装方式要一致。(比如cuda、cudnn是debian安装那么tensorrt也要debian安装,如果cuda .run安装,cudnn tar安装 tensorrt也用tar安装)

如果cuda .run安装,tensorrt debian安装会出现如下问题

下列软件包有未满足的依赖关系:
 tensorrt : 依赖: libnvinfer7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-plugin7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvonnxparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-bin (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-plugin-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvonnxparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-samples (= 7.0.0-1+cuda10.0) 但是它将不会被安装
            依赖: libnvinfer-doc (= 7.0.0-1+cuda10.0) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

错误原因:
如果安装tensorRT采用deb包安装,那么CUDA也必须采用deb包安装。

所以如果有tensorrt需求的同学下面cudnn tar方式安装,没有需求的同学两种方式随意。(我选择了cuda .run安装  cudnn  tar安装  tensorrt  tar安装/也可以三者都debian安装但是我没有用,因为debian安装cuda时会自动安装显卡驱动,考虑到版本对应可能要卸载掉自动安装的驱动再手动安装对应版本驱动)

四、Cudnn安装(debian方式)

cudnn各版本安装地址

从上述地址中选择图示3个包下载,然后安顺序安装这3个包

sudo dpkg -i libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-dev_8.2.1.32-1+cuda11.3_amd64.deb
sudo dpkg -i libcudnn8-samples_8.2.1.32-1+cuda11.3_amd64.deb

安装完后cd到如下文件夹

cd /usr/src/cudnn_samples_v8/mnistCUDNN/

然后依次运行如下命令进行编译

sudo make clean
sudo make

执行sudo make时可能会报错:

mnistCUDNN  sudo make
CUDA_VERSION is 11010
Linking agains cublasLt = true
CUDA VERSION: 11010
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 35 50 53 60 61 62 70 72 75 80 86
test.c:1:10: fatal error: FreeImage.h: No such file or directory
    1 | #include "FreeImage.h"
      |          ^~~~~~~~~~~~~
compilation terminated.

此时可运行

sudo apt-get install libfreeimage3 libfreeimage-dev

重新编译

sudo make clean
sudo make

然后运行

./mnistCUDNN

出现Test passed! 代表 cudnn 正常使用

查看Cudnn版本

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

五、Cudnn安装(tar方式)

官网下载

cuDNN Archive | NVIDIA Developer

cuDNN v8.2.1 (June 7th, 2021), for CUDA 11.x

ubuntu lxc 容器 显卡 ubuntu配置显卡_ubuntu lxc 容器 显卡_06

(注tar方法安装所有的linux系统都用这一个,而debian方式针对每个系统都有对应的包)

下载完成后cd到下载的地址,将文件解压,或通过代码的方式解压:下第一条。

#filename=下载的tgz文件名
tar -xzvf ${filename}.tgz

解压后会出现cuda文件夹如果时右键提取的话文件夹名为cudnn-linux-x86_64_。。。。。。。,改为cuda即可(同时将其中的lib文件夹改名为lib64)
#将下载的目录cuda/include/cudnn所有.h文件copy到cuda安装路径(默认如下)下include文件夹
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include 

#将下载的目录cuda/lib64/libcudnn所有文件copy到cuda安装路径(默认如下)下lib64文件夹
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 

#将刚copy的所有文件皆设为任何人可读取 :
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

添加cudnn环境变量

# cudnn init
export CUDNN_HOME=/usr/local/cuda
export CPLUS_INCLUDE_PATH=${CUDNN_HOME}/include:$CPLUS_INCLUDE_PAT

注意不是在命令行直接输入,先gedit ~/.bashrc打开记事本,export添加环境变量,保存后

source ~/.bashrc激活,不会可以搜一下ubuntu添加环境变量。

安装成功,同样可以用cat查看cudnn版本。

六、tensorrt安装

1、官网下载安装包

https://developer.nvidia.com/nvidia-tensorrt-8x-download

ubuntu lxc 容器 显卡 ubuntu配置显卡_ubuntu lxc 容器 显卡_07

2.解压 

filename=下载的tgz文件名
tar xzvf TensorRT-${filename}.tar.gz

3、配置环境变量

#打开环境变量记事本
gedit ~/.bashrc
#将下面代码copy到记事本下面
#installpath=刚解压的文件路径
export TENSORRT_HOME=${installpath}
export PATH=${TENSORRT_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${TENSORRT_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${TENSORRT_HOME}/targets/x86_64-linux-gnu/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${TENSORRT_HOME}/lib
export CPLUS_INCLUDE_PATH=${TENSORRT_HOME}/include:$CPLUS_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=${TENSORRT_HOME}/targets/x86_64-linux-gnu/include:$CPLUS_INCLUDE_PATH
#激活环境变量
source ~/.bashrc

安装完成!

tensorrt文件夹里sample文件夹自带了很多样例可供测试是否安装成功。