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

2023-05-16

文章目录

    • 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下。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01) 的相关文章

随机推荐

  • 推荐系统 Mahout入门之简单使用

    Mahout xff1a Apache Mahout 是 Apache Software Foundation xff08 ASF xff09 旗下的一个开源项目 xff0c 提供一些可扩展的机器学习领域经典算法的实现 xff0c 旨在帮助
  • Command CompileSwiftSources failed with a nonzero exit code

    报错 xff1a Command CompileSwiftSources failed with a nonzero exit code 原因 xff1a 可能是项目目录下存在 同名不同文件夹的文件 解决方法 xff1a 检查 同名不同文件
  • Flutter 自定义SwitchButton

    效果 xff1a xff08 AppBar中间的SwitchButton xff09 代码 xff1a span class token keyword import span span class token string literal
  • diff算法swift版

    前几天用chatgpt生成diff算法 xff0c 配上swift的简洁语法 xff0c 可以称之为锦上添花 下面是代码 xff1a span class token keyword func span span class token f
  • Flutter 调用摄像头扫描二维码插件

    原生平台如果想要实现二维码扫描很简单 xff0c 例如iOS可以根据Version库或者AVFoudation库很快定制出相应工具来 xff0c Flutter只能依赖第三方插件了 插件依赖 xff1a span class token k
  • 【Linux】搭建Yapi接口管理工具

    在年前员工访谈时发现 xff0c 前后端协作开发会出现一定的内耗现象 xff0c 在当前前后端分离的情况下前端往往会因为后端接口存在问题影响对接速度 xff0c 在接口设计不明确的情况下还需要反复确认和沟通 公司过往使用ApiManager
  • 树莓派3B安装VScode

    树莓派3B安装VScode sudo apt install code xff08 一句命令搞定 xff09 xff08 ps 本来想在树莓派3b上安装VScode 网上找半天 xff0c 结果又臭又长还不能解决问题 xff0c 直到翻了贼
  • Angular is running in the development mode. Call enableProdMode() to enable the production mode.

    控制台输出 xff1a Angular is running in the development mode Call enableProdMode to enable the production mode 解决方法 xff1a 在mai
  • Debian SSH免密登录

    安装服务后修改主配置文件 vim etc ssh sshd config 改这个配置文件 在第32行PermttRootLogin yes 允许root用户登录 systemctl restart sshd 然后再重启一下服务 修改端口号
  • HDFS编程实践(Hadoop3.1.3)

    一 利用Shell命令与HDFS进行交互 1 目录操作 在HDFS中为hadoop用户创建一个用户目录 span class token builtin class name cd span usr local hadoop bin hdf
  • 浅谈<<EOF作用与用法

    其实我对这个东西的用法理解也不深 xff0c 目前也只用过两次 xff0c 但真的可以解决大问题 先说一下 lt lt efo的作用 xff0c 官方的说法是这样的 xff1a 在shell脚本中 xff08 bash编程 xff09 xf
  • 斐讯 r1 起死回生

    此方法已无法使用 xff0c 请需要的网友留言 xff0c 并留邮箱 xff0c 我发新的方法 这里写不了外部连接 2022 7 2 昨天三哥给我这么个东西 xff0c 当初卖2499元 xff0c 因为公司没了 xff0c 现在只能当蓝牙
  • 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)(最全的wifimanager介绍))

    原文地址 xff1a https my oschina net u 4269090 blog 3329239 1 前言 废话少说 xff0c 本篇博文的目的就是深入学习 WifiManager 这个github上非常火爆的ESP8266 w
  • 华为p40pro NFC模拟加密小区卡详细教程

    先说点题外话 xff1a 我们小区的门禁卡是加密的 xff0c 去年小区强制使用门禁卡 xff0c 配一个卡要30块 xff0c 我们家附近的所有配门禁卡的店一听说我们小区都说做不了 我对这个东西有一点了解 xff0c 小区不可能用智能卡只
  • 求助帖:如何获取局部变量

    最近在做一个获取和风天气城市 ID的小东西 xff0c 大致内容如下 xff1a 通过 xff1a QWeather getGeoCityLookup MainActivity this inputct new QWeather OnRes
  • arduino esp-01s开发环境配置(备忘)

    很久没玩arduino了 xff0c 前天一个网友提了一个问题要我帮忙 xff0c 结果电脑重新做了系统 xff0c 又要重新设置环境 xff0c 结果忘记了 xff0c 做个备忘 xff0c 省得以后又要重新研究 1 附加开发板管理器网址
  • crontab设置定时重启Apache服务

    重启Apache方法 创建一个新的crontab文件 crontab rootcron root用户设定服务 同时 xff0c 文件副本在 var spool cron目录中 列出crontab文件 每天4点重启 crontab l 0 4
  • PVE安装画面灰白只显示鼠标解决方案

    PVE安装画面灰白只显示鼠标解决方案 最近喜欢到某鱼上折腾一下工控机主板回来搞PVE xff0c 发现不少小伙伴遇到与我一样的问题 xff0c 网上搜索文章 xff0c 并没有很完整 xff0c 于是整理了一下 出现这种情况一般是PVE5
  • 解决java poi之SXSSFWorkbook导出大数据量时自适应列宽效果异常问题

    场景 xff1a 使用SXSSFWorkbook导出大数据量 百万行 excel报表 xff0c 表格样式统一使用自适应列宽时 xff0c 发现导出表头行格式异常 xff0c 异常情况如下图所示 xff1a 分析 xff1a 从导出效果看
  • Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01)

    文章目录 2023 03 06 更新2023 03 05 更新前言TensorRT介绍环境配置CUDA Driver检查安装 安装CUDA安装nvcc安装cuDNN安装验证 安装TensorRT安装验证 2023 03 06 更新 如果有小