Logo

ONNX-TensorRT: 高效实现ONNX模型到TensorRT的转换

onnx-tensorrt

ONNX-TensorRT简介

ONNX-TensorRT是一个开源项目,主要功能是将ONNX (Open Neural Network Exchange)格式的深度学习模型解析并执行于NVIDIA的TensorRT推理引擎上。它作为ONNX的TensorRT后端实现,可以将ONNX模型无缝转换为TensorRT引擎,充分利用TensorRT的优化功能来加速模型推理。

ONNX-TensorRT的主要特点包括:

  • 支持大多数常见的ONNX算子,可以解析各种类型的神经网络模型
  • 利用TensorRT的优化技术,如层融合、精度校准等,显著提升模型推理性能
  • 支持动态shape和全维度张量,增强了模型的灵活性
  • 提供C++和Python两种编程接口,方便集成到不同的应用中
  • 持续更新以支持最新版本的ONNX和TensorRT

支持的TensorRT版本

当前分支开发针对的是最新的TensorRT 10.2版本,支持全维度和动态shape。对于之前的TensorRT版本,可以参考相应的历史分支。

支持的ONNX算子

ONNX-TensorRT支持大部分常用的ONNX算子,具体支持列表可以参考项目文档中的算子支持矩阵。随着版本迭代,支持的算子还在不断扩充中。

安装与构建

依赖

  • Protobuf >= 3.0.x
  • TensorRT 10.2
  • TensorRT 10.2 开源库

构建步骤

  1. 克隆ONNX-TensorRT代码仓库
  2. 创建build目录并进入
  3. 运行cmake配置,指定TensorRT路径
  4. 执行make编译
cd onnx-tensorrt
mkdir build && cd build
cmake .. -DTENSORRT_ROOT=<path_to_trt> && make -j
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

注意需要正确设置CUDA路径,默认是/usr/local/cuda。

使用方法

C++接口

可以使用trtexec工具快速测试ONNX模型是否可以成功解析为TensorRT引擎:

trtexec --onnx=model.onnx

Python接口

可以使用polygraphy工具测试ONNX模型:

polygraphy run model.onnx --trt

ONNX-TensorRT的Python模块封装在.whl文件中,可以直接pip安装使用。

性能优化

ONNX-TensorRT提供了多种优化选项来提升模型性能,如:

  • 支持FP16和INT8精度
  • 层融合优化
  • 动态shape支持
  • 针对特定算子的优化实现

用户可以根据具体需求选择合适的优化策略。

总结

ONNX-TensorRT为将ONNX模型部署到TensorRT上提供了便捷的解决方案。通过将ONNX的灵活性与TensorRT的高性能相结合,可以显著提升深度学习模型在NVIDIA GPU上的推理效率。该项目仍在持续更新中,未来会支持更多ONNX算子和TensorRT的新特性。

相关项目

Project Cover
WhisperLive
WhisperLive是基于OpenAI Whisper模型开发的实时音频转写应用,能高效地将直播或预录音频转换成文本。支持多语言和自定义设置,适用于个人、教育及商业场景。项目还提供Docker部署,简化安装和服务部署过程。
Project Cover
jetson-inference
NVIDIA Jetson设备上的深度学习推理和实时视觉处理库。使用TensorRT优化GPU网络运行,支持C++和Python, 以及PyTorch模型训练。功能包括图像分类、物体检测、语义分割等,适用于多种应用场景,如实时摄像头流和WebRTC网络应用。
Project Cover
onnx-tensorrt
本项目实现对ONNX模型的高效解析,支持在最新TensorRT 10.2版本上运行。还覆盖了多个ONNX操作符,提供详细的安装和构建指南。项目中包含C++和Python的使用示例,方便用户集成和运行ONNX模型。常见问题解答和变更日志有助于解决使用中的问题。
Project Cover
YOLOv8-TensorRT
本项目通过TensorRT加速YOLOv8模型,提供在CUDA环境下的快速部署和高效推理解决方案。包括环境准备、模型导出、引擎构建和多种推理方法,支持Python和C++语言。特性涵盖ONNX模型导出、端到端引擎构建和模型推理,适用于图像和视频的不同输入源。支持Jetson设备,并附有详细的文档和脚本,便于操作,提升深度学习应用性能。
Project Cover
edgeyolo
EdgeYOLO为边缘设备优化,在Nvidia Jetson AGX Xavier上达34FPS,并通过RH loss提升小型和中型物体检测。支持COCO2017和VisDrone2019数据集,提供多种模型格式和部署代码,包括RKNN、MNN和TensorRT。项目定期更新,并集成了SAMLabeler Pro工具,支持多人远程标注。可快速上手和训练,适配不同设备和应用场景。
Project Cover
yolort
yolort项目致力于简化和优化YOLOv5的训练与推理。采用动态形状机制,结合预处理和后处理,支持LibTorch、ONNX Runtime、TVM、TensorRT等多种后端的轻松部署。项目遵循简洁设计理念,安装与使用便捷,支持通过PyPI和源码安装。提供丰富的推理接口示例和详细文档,使目标检测更为轻松,适用于广泛的应用场景。
Project Cover
tiny-tensorrt
tiny-tensorrt是一个简洁易用的nvidia TensorRT封装库,支持通过C++和Python API快速部署Onnx模型。依赖CUDA、CUDNN和TensorRT,兼容多个版本。项目已停止维护,建议使用TensorRT的Python API或trtexec/polygraphy工具。更多信息请参考项目Wiki。
Project Cover
Radiata
Radiata 是一个基于 diffusers 的稳定扩散 WebUI,提供稳定扩散、稳定扩散 XL 和 TensorRT 加速等功能。通过简单的 Git 和 Python 安装步骤,可以快速部署并享受高效的模型推理体验。同时支持 ControlNet 插件和 Lora & Lycoris 模型扩展,增强工具的灵活性和功能性。适用于 Windows 和 Linux 系统,详细文档参见官方网站。
Project Cover
TensorRT
NVIDIA TensorRT 开源软件提供插件和 ONNX 解析器的源码,展示 TensorRT 平台功能的示例应用。这些组件是 TensorRT GA 版本的一部分,并包含扩展和修复。用户可以轻松安装 TensorRT Python 包或根据构建指南编译。企业用户可使用 NVIDIA AI Enterprise 套件,并可加入 TensorRT 社区获取最新产品更新和最佳实践。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号