TensorRT_Win10上WSL实践篇

1、查看电脑的GPU是否支持TensorRT 这篇

Compute Capability,记得这个关键词

各个显卡算力查询:CUDA GPUs - Compute Capability | NVIDIA Developer

例如,我的笔记本 NVIDIAGeForce RTX 3070 Laptop GPU 显卡:8.6

公司服务器算力:

GeForce RTX 30908.6

工程:
煤流检测 yolov8 的分割模型

环境:

首先打开WSL

wsl -d Ubuntu-22.04

1. WSL升级WSL2(必做)

WSL v1不支持直接使用Windows的GPU,就算做了下面的所有步骤也没办法用,torch.cuda.is_available()会永远返回FALSE,所以一定要检查使用的WSL版本,打开Powershell或者命令提示符输入:

wsl -l -v

查看VERSION下的数字,如果是1要升级到2,具体步骤请参考:Lighten:WSL1升级为WSL2

2. 安装 pytorch,cuda,cudnn

首先

因为yolov8 好像支持最新的pytorch 2.0.0系列,那我安装最新的

pytorch 2.1.1,需要 CUDA 11.8

通过 conda search cudatoolkit --info 查询存在 CUDA 11.8 安装包,

再看一下conda提供的所有cudatoolkit 查看cudnn版本:  conda search cudnn --info  ,也有

 CUDA 11.8 对应的 cudnn 版本,那就安装这个pytorch 2.1.1。

 cudatoolkit 11.8.0 h6a678d5_0
-----------------------------
file name   : cudatoolkit-11.8.0-h6a678d5_0.conda
name        : cudatoolkit
version     : 11.8.0
build       : h6a678d5_0
build number: 0
size        : 630.7 MB
license     : NVIDIA End User License Agreement
subdir      : linux-64
url         : https://repo.anaconda.com/pkgs/main/linux-64/cudatoolkit-11.8.0-h6a678d5_0.conda
md5         : 74f6c43e0670ebe1d1f8b7130d24030f
timestamp   : 2023-05-02 04:09:43 UTC
constraints :
  - __cuda >=11.0
dependencies:
  - libgcc-ng >=11.2.0
  - libstdcxx-ng >=11.2.0

然后安装你想要的cudatoolkit: conda install cudatoolkit==11.8.0

 CUDA 11.8 对应的 cudnn 版本: 

cudnn 8.9.2.26 cuda11_0
-----------------------
file name   : cudnn-8.9.2.26-cuda11_0.conda
name        : cudnn
version     : 8.9.2.26
build       : cuda11_0
build number: 0
size        : 469.4 MB
license     : Proprietary
subdir      : linux-64
url         : https://repo.anaconda.com/pkgs/main/linux-64/cudnn-8.9.2.26-cuda11_0.conda
md5         : e589bfd90e598c42a088794e61ad6be2
timestamp   : 2023-07-04 12:30:52 UTC
dependencies:
  - cudatoolkit 11.*

安装你想要的cudatoolkit: conda install cudnn==8.9.2.26

python

import torch
print(torch.cuda.is_available())

上面安装的cuda 在 WSL2 里好像好像用不了,还是得用下面的:

WSL2 的开发环境配置 (基础配置, 网络代理, CUDA, Python, Fortran, Latex, 服务器配置) - 知乎
  • 安装 CUDA Toolkit. 首先测试nvcc -V​​​, 应该是不能用的. 它会提示你用如下命令安装:
    sudo apt install nvidia-cuda-toolkit. 我知道你很急, 但是先别急.

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

配置环境变量,将cuda对应的路径添加进去。

vi /etc/profile
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

然后再nvcc -V 应该就可以正常显示了。

下载安装 cudnn

cuDNN Archive | NVIDIA Developer

比如我下载的是:Download cuDNN v8.9.6 (November 1st, 2023), for CUDA 11.x

Local Installer for Linux x86_64 (Tar)

下载,解压, 然后在  ~/.bashrc

vi ~/.bashrc

上面的cuda完事后,在
/mnt/d/TensorRT/TensorRT-8.6.1.6/samples/sampleOnnxMNIST
再次执行 make,就成功了。

或者:

vi ~/.bashrc

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


 

source ~/.bashrc

3. 安装 TRT 相关工具链

按照这篇文章来:yolov8 tensorrt模型加速部署[实战] - 知乎

2.2.4 下载 tensorrt8.6.1

下载地址: TensorRT SDK | NVIDIA Developer

tensorrt8.6.1开发官方文档:

4. 测试TensorRT可用

# 快速验证一下tensorrt+cuda+cudnn是否安装正常
cd /mnt/d/TensorRT/TensorRT-8.6.1.6/samples/sampleOnnxMNIST
make
cd ../../bin/
导出tensorrt环境变量(it is important!),注:将LD_LIBRARY_PATH:后面的路径换成你自己的!后续编译onnx模型的时候也需要执行下面第一行命令

sudo vi ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/d/TensorRT/TensorRT-8.6.1.6/lib
source ~/.bashrc

上面都OK后,打开 bin 目录,执行上一步编译得到的示例程序

cd /mnt/d/TensorRT/TensorRT-8.6.1.6/bin
./sample_onnx_mnist

运行结果 

总之,tensorrt安装完成后,在python环境下import tensorrt看能不能成功,并且编译一下官方的sampleMnist的例子,如果都可以的话,就安装成功了。

5. 后记

上面只是跑通了TRT加载 onnx模型做推理的代码,后续还有 怎么把 yolov8 的分割模型 转成 trt 适配的 engine模型,然后用 trt 推理。

见这篇:

yolov8模型转onnx模型 和 tensorRT 模型-CSDN博客

6. bug

1、CUDA lazy loading is not enabled

有说,trt 和 cuda 不匹配造成的,有说 没有开启造成的。也有 说 CUDA版本要大于11.8

CUDA lazy loading is not enabled-CSDN博客

2、前面一直跑 样例程序 sample_onnx_mnist 没跑通的主要原因

是 TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar 解压到 TensorRT-8.6.1.6 文件夹里的 的东西没 解压完整,没有 用 sudo 文件 解压,或者没有 给 某些文件夹 写入 等的权限。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事如yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值