ubuntu安装驱动+cuda+cudnn+nvcc+tensorRT

好的部署从安装好环境开始!!!

1.安装驱动

在安装驱动之前,首先确定GPU驱动和cuda的版本的对应关系。

参考:CUDA 12.3 Update 2 Release Notes

检查自己的电脑系统推荐的驱动:

ubuntu-drivers devices

如下是我的显示如下:

(base) xxxx@xxxx:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001E04sv00007377sd00001730bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU102 [GeForce RTX 2080 Ti]
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-520 - third-party non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-525 - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-525-open - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

系统推荐使用535版本的,在终端输入:

sudo apt install nvidia-driver-535

一定要重新启动:

sudo reboot
检查安装
nvidia-smi

我的输出如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03    Driver Version: 535.54.03    CUDA Version: 12.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 25%   33C    P8    11W / 250W |     10MiB / 11264MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1261      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      1883      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

可以看到当前安装的驱动版本是535.54.03,需要注意CUDA Version: 12.2指当前驱动支持的最高版本。

2.安装cuda

看前面的驱动和版本的对应关系,一定要选择驱动对应的版本:cuda下载链接CUDA Toolkit Archive | NVIDIA Developer

按照前面的提示,我这边选择安装cuda11.8,CUDA Toolkit 11.8 Downloads | NVIDIA Developer

选择好对应的选项,使用cuda官方的bash安装方式安装


wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

此时校验,nvidia-smi,我的输出显示如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05    Driver Version: 520.61.05    CUDA Version: 11.8     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 25%   33C    P8    11W / 250W |     10MiB / 11264MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1261      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      1883      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

这里发现安装完cuda以后,发现驱动的版本也发生变化了。这是正常的,不要担心,后面有空的会解释为什么。

3. 安装nvcc

NONONONONOONONONONONONONONONO!不要直接使用

sudo apt install nvidia-cuda-toolkit

这个命令安装!不要直接使用上面的命令直接安装!不要直接使用上面的命令直接安装!不要直接使用上面的命令直接安装!不要直接使用这个命令直接安装!不要直接使用上面的命令直接安安装!

如果直接使用上面的命令安装,有的电脑可以直接安装好,但是有些电脑会直接安装很低版本的cuda,这个命令会改变我们前面安装好的cuda11.8。巨坑勿踩!!!

1)查看是否有g++,gcc,

 ls /usr/local/cuda/bin/

此时下面的列表中没有g++,gcc。有nvcc,建立软连接:

sudo ln -s /usr/bin/gcc /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++ /usr/local/cuda/bin/g++

重启,然后验证

nvcc -V

,此时我的输出如下:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

如果不按照上面的要求来的话,很容易出现nvcc -V和nvidia-smi的驱动版本不一致;同时,后面编译程序的时候也会出现不一样不是自己想要的cuda版本哦。

如果使用nvcc -V出现 not found nvcc。此时将cuda的地址添加到环境变量中

# 打开配置文件
nano ~/.bashrc

# 将下面两行写入到文件末尾
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

如果使用的是 nano,可以按下 Ctrl+O 保存文件,然后按下 Ctrl+X 退出编辑器。如果你使用的是其他编辑器,请按照该编辑器的指令来保存和退出。

为了让这些更改生效,你需要重新加载 .bashrc 文件。这可以通过以下命令完成:

source ~/.bashrc
 

要验证环境变量是否正确配置,你可以在新的终端会话中运行以下命令来检查 PATHLD_LIBRARY_PATH

echo $PATH
echo $LD_LIBRARY_PATH
 

这样做就可以啦!!!(ubuntu内部原本就含有nvcc)

 

4. 安装cudnn

下载安装包,选择对应的版本。下载链接;CUDA 深度神经网络库 (cuDNN) | NVIDIA 开发者

我这边下载的是:Local Installer for Ubuntu20.04 x86_64 (Deb)

。安装完成以后,开始安装,参考链接为:Overview — NVIDIA cuDNN 9.0.0 documentation

我自己的安装步骤如下:

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.7.0.84_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8=8.7.0.84-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.7.0.84-1+cuda11.8
sudo apt-get install libcudnn8-samples=8.7.0.84-1+cuda11.8

注意上面的安装的版本要修改自己下载的版本哦

开始验证:

cp -r /usr/src/cudnn_samples_v8/ $HOME
cd  $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

可能出现如下的报错,解决如下

可能报错:test.c:1:10: fatal error: FreeImage.h: No such file or directory

解决办法:sudo apt-get install libfreeimage3 libfreeimage-dev

我的验证结果如下:

Testing cudnnFindConvolutionForwardAlgorithm ...
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 0.042912 time requiring 2450080 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 0.054208 time requiring 1433120 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 5: 0.056512 time requiring 4656640 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.109088 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.129248 time requiring 64000 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.170048 time requiring 51584 memory
^^^^ CUDNN_STATUS_NOT_SUPPORTED for Algo 6: -1.000000 time requiring 0 memory
^^^^ CUDNN_STATUS_NOT_SUPPORTED for Algo 3: -1.000000 time requiring 0 memory
Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000 
Loading image data/five_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006 

Result of classification: 1 3 5

Test passed!

5. 安装tensorRT

tensorRT和前面安装的cuda版本有对应关系哦,参考Log in | NVIDIA Developer

我选择的是 8.5.3版本,下载完文件名为:nv-tensorrt-local-repo-ubuntu2004-8.5.3-cuda-11.8_1.0-1_amd64.deb

安装参考链接:Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

我自己的安装命令如下:

sudo dpkg -i nv-tensorrt-local-repo-ubuntu2004-8.5.3-cuda-11.8_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2004-8.5.3-cuda-11.8/*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install tensorrt

要注意自己的系统和安装的版本哦

对安装的tensorRT验证

(base) xxx@xxxx:~$ dpkg -l | grep TensorRT
ii  libnvinfer-bin                                    8.5.3-1+cuda11.8                    amd64        TensorRT binaries
ii  libnvinfer-dev                                    8.5.3-1+cuda11.8                    amd64        TensorRT development libraries and headers
ii  libnvinfer-plugin-dev                             8.5.3-1+cuda11.8                    amd64        TensorRT plugin libraries
ii  libnvinfer-plugin8                                8.5.3-1+cuda11.8                    amd64        TensorRT plugin libraries
ii  libnvinfer-samples                                8.5.3-1+cuda11.8                    all          TensorRT samples
ii  libnvinfer8                                       8.5.3-1+cuda11.8                    amd64        TensorRT runtime libraries
ii  libnvonnxparsers-dev                              8.5.3-1+cuda11.8                    amd64        TensorRT ONNX libraries
ii  libnvonnxparsers8                                 8.5.3-1+cuda11.8                    amd64        TensorRT ONNX libraries
ii  libnvparsers-dev                                  8.5.3-1+cuda11.8                    amd64        TensorRT parsers libraries
ii  libnvparsers8                                     8.5.3-1+cuda11.8                    amd64        TensorRT parsers libraries
ii  tensorrt                                          8.5.3.1-1+cuda11.8                  amd64        Meta package for TensorRT

看了非常多非常多的博客,太多坑了。终于找到一条合适自己的安装方法了。至此,安装完成。坑太多,终于被我踩平了。

6.关于nvidia-smi和nvcc -V的问题

参考链接:NVIDIA-SMI 显示的cuda version 是指当前版本还是最大可以支持的 cuda 版本? - 知乎

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装-CSDN博客

  • 13
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值