Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01)

文章目录

    • 2023-03-06 更新
    • 2023-03-05 更新
    • 前言
    • TensorRT介绍
    • 环境配置
      • CUDA Driver
        • 检查安装
      • 安装CUDA
      • 安装nvcc
      • 安装cuDNN
        • 安装
        • 验证
      • 安装TensorRT
        • 安装
        • 验证

2023-03-06 更新

如果有小伙伴看了2023-03-05更新,发现设置环境变量后运行cuda代码在链接过程中仍然会有报错问题啥的,那我这里建议,先别管2023-03-05更新的内容了,还是按照我博客里的安装步骤一步一步往下安装,用sudo apt install nvidia-cuda-toolkit命令去安装nvcc,也不需要配置环境变量了。因为博客里的安装步骤是我亲自执行过的,在我的WSL2环境里是一点问题都没有。

如果跟着我的博客步骤走,发现在测试./mnistCUDNN时有问题,那就再根据我2023-03-05更新的内容尝试一下。不过这里我觉得可以先别卸载nvidia-cuda-toolkit,先去配置环境变量,然后跑代码看有没有问题,没有问题的话那就最好啦,如果还有问题,那就卸载nvidia-cuda-toolkit,配置好环境变量,再重启下,然后再跑下代码看看~

目前根据小伙伴的反映,就先记录到这里吧,后面有新情况也会继续更新的~

2023-03-05 更新

有小伙伴反映,按照NVIDIA官网命令安装完CUDA后,nvcc实际上也是被成功安装啦,且nvcc的版本和我们选择CUDA的版本是保持一致的。但如果再运行sudo apt install nvidia-cuda-toolkit命令,就会导致nvcc的版本被覆盖为低版本。

比如,我们选择CUDA的版本是11.8,那安装完CUDA后,我们是可以在/usr/local/cuda/bin目录下找到nvcc可执行文件的,在那个目录下运行./nvcc -V就可以看到版本和CUDA保持一致,也是11.8。所以实际上我们不需要再运行sudo apt install nvidia-cuda-toolkit命令安装nvcc啦,只需要再安装完CUDA后,配置下环境变量即可,如下

export CPATH=/usr/local/cuda-11.8/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.8/bin:$PATH
export CUDA_ROOT=/usr/local/cuda-11.8

当然,如果你运行了sudo apt install nvidia-cuda-toolkit命令,从我博客里记录的图片可以看到nvcc的版本被覆盖为10.1啦,在我的WSL2环境里,10.1的nvcc版本并没有什么问题,后面用./mnistCUDNN测试也是成功哒~

但小伙伴测试说会报CUDA driver version is insufficient for CUDA runtime version版本不匹配的错误,所以后面的小伙伴可以参考下,先不要运行sudo apt install nvidia-cuda-toolkit命令,直接根据NVIDIA官网安装完CUDA,然后配置下环境变量即可~

如果已经用sudo apt install nvidia-cuda-toolkit命令安装完了,测试也真报错了,就卸载掉nvidia-cuda-toolkit,然后再配置下环境变量,再测试下看看吧~

前言

之前我写了一篇博客:Win11安装WSL2和Nvidia驱动,记录了在WSL2里安装CUDA,当时我选择了第二种安装方式,即用WSL2里的MiniConda去安装的PyTorch和CUDA等相关库,最近在使用中发现了这种方式的不足,即使用cudanvcc等命令时都要切换到conda相关环境下才能使用。比如我之前在py38环境下安装的,当我进入终端处于base环境下,nvcc命令是不能使用哒

最近也在跟着恩培老师学TensorRT,担忧用MiniConda安装的CUDA等库可能导致TensorRT安装失败,所以这次就试试直接在base环境下用之前写的Win11安装WSL2和Nvidia驱动博客的第一种方式安装cudacudnntensorrt吧~

结果也是很顺利的安装成功啦,便在此记录下来哈哈~

更多文章欢迎来我的博客小站看呀,会有更多的技术细节~

TensorRT介绍

  • NVIDIA® TensorRT™是一个用于高性能深度学习的推理框架,能够在NVIDIA GPU上实现低延迟、高吞吐量的部署
  • TensorRT包含用于训练好的模型的优化器,以及用于执行推理的runtime
  • 它可以与TensorFlow、PyTorch和MXNet等训练框架相辅相成地工作

环境配置

CUDA Driver

使用CUDA前,要求GPU驱动与cuda 的版本要匹配,匹配关系如下:

参考:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions__table-cuda-toolkit-driver-versions

这里的CUDA驱动配置可以参考我之前的WSL2博客:Win11安装WSL2和Nvidia驱动

检查安装

输入nvidia-smi命令,查看GPU驱动版本

(base) aayu@AayuComputer-Pro:~$ nvidia-smi
Tue Feb 28 00:58:02 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.65       Driver Version: 527.56       CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| 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  On |                  N/A |
| N/A   40C    P8    13W / 139W |   1668MiB /  6144MiB |      6%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A        23      G   /Xwayland                       N/A      |
+-----------------------------------------------------------------------------+

可以看到当前安装的驱动版本是527.56,后面的CUDA Version: 12.0是指当前驱动支持的最高CUDA版本~

安装CUDA

在Nvidia官网选择对应版本:https://developer.nvidia.com/cuda-toolkit-archive

比如我选择的是11.8版本,选择Linuxx86_64WSL-Ubuntu2.0deb(local),如下图

安装命令已经给出啦,如下,直接在WSL2终端执行就好~

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

成功安装如下图

安装nvcc

sudo apt install nvidia-cuda-toolkit

安装完后重启电脑,检查安装结果,成功如下图~

安装cuDNN

下载安装包:访问:https://developer.nvidia.com/zh-cn/cudnn,选择对应的版本,下载对应的安装包(建议使用Debian包安装)

比如我下载的是:Local Installer for Ubuntu20.04 x86_64 (Deb),下载后的文件名为cudnn-local-repo-ubuntu2004-8.7.0.84_1.0-1_amd64.deb

安装

参考链接:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

# 注意,运行下面的命令前,将下面的 X.Y和v8.x.x.x 替换成自己具体的CUDA 和 cuDNN版本,如我的CUDA 版本是11.8,cuDNN 版本是 8.7.0.84

# Enable the local repository.
sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
# 我的:sudo dpkg -i cudnn-local-repo-ubuntu2004-8.7.0.84_1.0-1_amd64.deb

# Import the CUDA GPG key.
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/

# Refresh the repository metadata.
sudo apt-get update

# Install the runtime library.
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
# 我的:sudo apt-get install libcudnn8=8.7.0.84-1+cuda11.8

# Install the developer library.
sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
# 我的:sudo apt-get install libcudnn8-dev=8.7.0.84-1+cuda11.8

# Install the code samples and the cuDNN library documentation.
sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
# 我的: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

成功验证如下图

安装TensorRT

访问:https://developer.nvidia.com/nvidia-tensorrt-8x-download 下载对应版本的TensorRT

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

安装

参考地址:https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-debian

# 替换成自己的OS和版本信息
os="ubuntuxx04"
tag="8.x.x-cuda-x.x"
sudo dpkg -i nv-tensorrt-local-repo-${os}-${tag}_1.0-1_amd64.deb
# 我的: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-${os}-${tag}/*-keyring.gpg /usr/share/keyrings/
# 我的: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

验证

输入dpkg -l | grep TensorRT

(base) aayu@HPSCIL:~/tensorrt_install$ 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

如果遇到unmet dependencies的问题, 一般是cuda cudnn没有安装好。TensorRT的INCLUDE 路径是 /usr/include/x86_64-linux-gnu/, LIB路径是/usr/lib/x86_64-linux-gnu/,Sample code在/usr/src/tensorrt/samples, trtexec/usr/src/tensorrt/bin下。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐