安装 TensorRT

安装 TensorRT

查看版本对应:https://docs.nvidia.com/deeplearning/tensorrt/release-notes/index.html#rel-8-6-1

我的是:
在这里插入图片描述

下载:https://developer.nvidia.com/nvidia-tensorrt-8x-download

在这里插入图片描述

如果选 TensorRT 8.6 GA for Ubuntu 18.04 and CUDA 12.0 and 12.1 DEB local repo Package 的话,下载的文件是:nv-tensorrt-local-repo-ubuntu1804-8.6.1-cuda-12.0_1.0-1_amd64.deb

解压然后配置环境变量:

tar -zxvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz

vim ~/.bashrc
 
export LD_LIBRARY_PATH=$PATH:/home/wangguisen/projects/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$PATH:/home/wangguisen/projects/TensorRT-8.6.1.6/lib::$LIBRARY_PATH
source ~/.bashrc

安装相关依赖:

cd TensorRT-8.6.1.6/python
pip install tensorrt-8.6.1-cp310-none-linux_x86_64.whl

cd TensorRT-8.6.1.6/graphsurgeon
pip install graphsurgeon-0.4.6-py2.py3-none-any.whl

验证:

import onnxruntime as ort
import tensorrt
print(ort.get_device())
print(ort.get_available_providers())
print(tensorrt.__version__)
### 使用 TensorRT 8.6.1 进行性能优化与加速的方法 TensorRT 是 NVIDIA 提供的一个高性能深度学习推理库,旨在最大化 GPU 上的推理性能。以下是关于如何使用 TensorRT 8.6.1 实现性能优化的具体方法: #### 1. **模型转换** 在使用 TensorRT 前,需将原始框架中的模型(如 TensorFlow 或 PyTorch)转化为 ONNX 格式或直接导入到 TensorRT 中支持的格式。此过程可以通过 `torch.onnx.export` 函数完成[^3]。 ```python import torch from torch import nn class SimpleModel(nn.Module): def forward(self, x): return x * 2 model = SimpleModel() dummy_input = torch.randn(1, 3, 224, 224) torch.onnx.export(model, dummy_input, "simple_model.onnx", opset_version=11) ``` #### 2. **加载并解析模型** 通过 TensorRT 的 Python API 加载 ONNX 文件,并将其解析为内部表示形式。这一步骤涉及创建构建器和网络定义对象。 ```python import tensorrt as trt TRT_LOGGER = trt.Logger(trt.Logger.WARNING) def build_engine(onnx_file_path): with trt.Builder(TRT_LOGGER) as builder, \ builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) as network, \ trt.OnnxParser(network, TRT_LOGGER) as parser: with open(onnx_file_path, 'rb') as model: if not parser.parse(model.read()): for error in range(parser.num_errors): print(parser.get_error(error)) return None config = builder.create_builder_config() config.max_workspace_size = 1 << 30 # 设置最大工作空间大小 (1GB) profile = builder.create_optimization_profile() profile.set_shape('input', min=(1, 3, 224, 224), opt=(1, 3, 224, 224), max=(1, 3, 224, 224)) config.add_optimization_profile(profile) serialized_engine = builder.build_serialized_network(network, config) return runtime.deserialize_cuda_engine(serialized_engine) ``` #### 3. **启用 FP16 和 INT8 推理** FP16 半精度浮点数可以减少显存占用并提升吞吐量,而 INT8 则进一步降低计算复杂度。这两种模式都需要校准数据来调整权重范围。 ```python config.set_flag(trt.BuilderFlag.FP16) calibrator = MyCalibrator(calibration_data_loader, cache_file="calib_cache") config.int8_calibrator = calibrator ``` #### 4. **动态形状支持** 对于输入尺寸可变的情况,可通过设置优化配置文件指定最小、最佳以及最大批量大小及其对应的分辨率。 ```python profile.set_shape("input_tensor_name", min=(1, 3, 256, 256), opt=(4, 3, 512, 512), max=(8, 3, 1024, 1024)) ``` #### 5. **层融合和其他高级特性** TensorRT 自动执行许多底层优化操作,例如卷积层与激活函数之间的融合、共享内存分配等。开发者无需手动干预即可享受这些改进带来的好处[^1]^。 --- ### 结果评估 当采用上述策略后,通常可以获得显著的速度增益。例如,在未应用 TensorRT 的情况下,YOLOv10 模型可能仅能达到约 91 FPS;而在引入 TensorRT 后,则有望突破这一限制达到更高帧率水平[^2]^。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WGS.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值