【TensorRT 10 C++ inference example】最新版本TensorRT c++ api的推理部署教程

  TensorRT是英伟达推出的部署框架,我的工作经常需要封装我的AI算法和模型给到桌面软件使用,那么tensorRT对我来说就是不二之选。TensorRT和cuda深度绑定,在c++版本的推理教程中需要使用cuda进行数据的显存绑定,由于10之前的写法比较固定,我自己基于tensorRT和cuda写了一套部署框架,将模型转换和核心推理部分都封装了起来。

  但是最近在一个新项目上,我把cuda升级到了12.4,随着的tensorRT也用上了最新的10.11版本,然后我发现原来的代码报错了,仔细检查发现tensorRT10修改了很多原来的api,我在网上查询了一些方案,大部分都没有解决或者不是很清楚,还有些文章需要付费所以也看不了。后来我发现英伟达自己在tensorRT项目中给了很多sample,但是这些sample有点臃肿,所以在这里我分享一下我的方案。

  【关于如何生成trt的引擎文件我这里就不写了,tensorRT10和之前的版本在这里区别不大,而且tensorRT都会给一个转换的可执行文件。所以我直接从模型推理开始。】

  首先,我将回顾一个tensorRT的推理流程,然后会将一些最新版本和之前版本的区别,最后会给上最新版本推理的示例代码。

  TensorRT首先需要初始化模型引擎和执行会话,这个新旧版本都一样,这里放一下我的代码:

// 核心头文件
#include <NvOnnxParser.h>
#include <NvInfer.h>
#include <cuda_runtime_api.h>
// 首先定义cuda stream
cudaStream_t stream;
// 初始化变量
nvinfer1::IRu
作者:萧霍之原文地址:https://www.cnblogs.com/xiaohuozhi/p/18879627

%s 个评论

要回复文章请先登录注册