0


tensorRT安装详解(linux与windows)

tensorRT介绍

有关tensorRT的介绍见

TensorRT简介-CSDN博客

前置准备

安装cuda与cudnn

安装理论支持

cuda的安装步骤比较统一,无论使用什么系统,其原理都是一样的

  • 使用nvidia-smi查看nvidia驱动支持的最高cuda版本
  • 进入官网下载对应的cuda安装包
  • 进行安装
  • 安装结束后修改环境变量(目的是让系统找到cuda里的头文件和lib文件以及nvcc) - 如果是linux系统,并且使用默认安装,则会安装/usr/local下,这个路径不用设置,系统会识别,而如果是自定义安装,则需要修改.bashrc配置文件配置环境变量- 如果是windows系统,编辑系统环境变量即可

cudnn的安装更加简单,因为我们一般是在编程的时候引用cudnn中的库文件,因此

  • 只需下载cudnn的tar包解压之后
  • 将cudnn中的头文件内容拷贝到cuda文件目录的头文件目录
  • 将cudnn中的库文件内容拷贝到cuda文件目录下的库文件目录

不同系统下的具体安装

以下是在不同系统下安装cuda与cudnn的操作步骤

linux

Linux下安装cuda和对应版本的cudnn_linux怎么在自己的环境中安装cuda和cudnn-CSDN博客

如果要安装在非root用户安装参考这篇:

Linux 服务器下非root用户安装CUDA完整流程(多次踩雷经验总结)_linux cuda安装-CSDN博客

windows

windows安装cuda与cudnn-CSDN博客

安装验证

cuda版本查看

linux与windows均可使用以下命令查看cuda版本

nvcc -V

TensorRT安装

下载安装包

进官网查看对应cuda版本的tensorRT

TensorRT Download | NVIDIA Developer

官网页面打开如下所示, 每个版本的tensorRT都有对应操作系统与cuda版本的说明

注意,win11只有tensorRT10支持

linux安装包下载

linux下我们以安装tensorRT8为例,如下图所示

  • 第一个红色框是cuda11(如图可支持cuda11.0、11.2、11.3、11.4、11.5、11.6、11.7)对应的安装包
  • 第二个红色方框是cuda12对应的安装包
  • 找到自己对应cuda版本的安装包即可,建议下载tar包,安装比较方便

windows安装包下载

由于windows11下只有tensorRT10支持,如下图所示,仍旧找到自己的安装包下载(如果是windows10,也可安装其余版本,只要版本对应即可)

linux安装

安装

下载好安装包后,将文件解压至 /usr/local,如下所示

然后将tensorrt的头文件和库文件加入到环境变量中,配置~/.bashrc文件

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.5.3.1/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT-8.5.3.1/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT-8.5.3.1/include

添加完路径后使配置文件生效

source ~/.bashrc

安装验证

进入到 /usr/local/TensorRT-8.5.3.1/samples/sampleOnnxMNIST路径下,执行

sudo make

进入/usr/local/TensorRT-8.5.3.1/bin目录,运行可执行文件sample_onnx_mnist,如果编译和运行过程都没有问题则说明tensorrt安装成功,运行结果如下

windows安装

安装

首先找到自己cuda的安装路径,打开cmd命令行窗口,输入

which nvcc

如果cuda安装成功,会显示cuda的安装路径

/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/bin/nvcc

然后解压下载的tensorRT安装包,将tensorRT中lib目录和include目录中的文件内容都拷贝到cuda对应的目录文件下

环境变量配置

右键“此电脑”,点击"属性",点击“高级系统设置”,即可打开系统属性面板

也可以在搜索框输入“编辑系统环境变量”,也可打开下述面板

然后点击环境变量

用户变量一栏,点击Path

点击“新建”,将对应TensorRT解压的文件夹下的bin目录路径,以及cuda安装目录下的lib目录、include目录,以及lib下的x64目录路径设置进去,如下所示

然后逐步点击“确定”,直到所有面板关闭,一定不要直接点右上角关闭,否则配置会失败

安装验证

打开cmd命令窗口,输入

trtexec --help

如果显示以下帮助信息,说明TensorRT中的trtexec程序可用,否则检查trtexec程序(TensorRT解压安装包的bin目录下)的环境变量是否配置正确

接下来代码验证trtexec是否可成功执行,打开python,写下如下python代码,更多代码细节见

PyTorch模型转换ONNX 入门-CSDN博客

import torch
import torchvision.models as models
import onnx
import onnxruntime
 
# 加载 PyTorch 模型
model = models.resnet18(pretrained=True)
model.eval()
 
# 定义输入和输出张量的名称和形状
input_names = ["input"]
output_names = ["output"]
batch_size = 1
input_shape = (batch_size, 3, 224, 224)
output_shape = (batch_size, 1000)
 
# 将 PyTorch 模型转换为 ONNX 格式
torch.onnx.export(
    model,  # 要转换的 PyTorch 模型
    torch.randn(input_shape),  # 模型输入的随机张量
    "resnet18.onnx",  # 保存的 ONNX 模型的文件名
    input_names=input_names,  # 输入张量的名称
    output_names=output_names,  # 输出张量的名称
    dynamic_axes={input_names[0]: {0: "batch_size"}, output_names[0]: {0: "batch_size"}}  # 动态轴,即输入和输出张量可以具有不同的批次大小
)
 
# 加载 ONNX 模型
onnx_model = onnx.load("resnet18.onnx")
onnx_model_graph = onnx_model.graph
onnx_session = onnxruntime.InferenceSession(onnx_model.SerializeToString())
 
# 使用随机张量测试 ONNX 模型
x = torch.randn(input_shape).numpy()
onnx_output = onnx_session.run(output_names, {input_names[0]: x})[0]
 
print(f"PyTorch output: {model(torch.from_numpy(x)).detach().numpy()[0, :5]}")
print(f"ONNX output: {onnx_output[0, :5]}")

如果代码运行不成功,查看pytorch是否安装、onnx模块是否安装、onnxruntime模块是否安装

如果代码运行成功,会在本地输出一个mymodel.onnx文件

接下来打开该文件所在路径,打开cmd,输入

trtexec --onnx=mymodel.onnx --saveEngine=model.trt

如果运行成功,说明TensorRT安装成功

如果这里运行失败,**检查环境变量是否配置正确 **

参考

ubuntu20.04 安装TensorRT c++库 - Wangtn - 博客园 (cnblogs.com)

TensorRT安装部署指南(Windows10) - 知乎 (zhihu.com)

标签: linux

本文转载自: https://blog.csdn.net/qq_58158950/article/details/143061098
版权归原作者 你好,此用户已存在 所有, 如有侵权,请联系我们删除。

“tensorRT安装详解(linux与windows)”的评论:

还没有评论