Jetson调用triton inference server详细笔记

本文详细介绍了如何在Jetson平台上安装和配置Triton服务器,包括triton-inference-server的安装、模型文件生成、TensorRT支持及Yolov5模型部署。涵盖了从基础环境设置到实际应用的完整过程,适合初学者和开发者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

yolov5 win10 CPU与GPU环境搭建,亲测有效!
yolov5训练自己的数据集,详细教程!
yolov5转tensorrt模型
Jetson调用triton inference server详细笔记
yolov5模型部署:Triton服务器+TensorRT模型加速(基于Jetson平台)



一、jetson安装triton-inference-server

1.1 jtop命名行查看jetpack版本与其他信息

本机盒子jetpack信息如下:
在这里插入图片描述

1.2下载对应版本的安装包

下载地址:https://github.com/triton-inference-server/server/tags
我这里选用的是:V2.11.0版本
在这里插入图片描述
选这个版本也是有理由的:因为此版本支持 TensorFlow 2.4.0、TensorFlow 1.15.5、TensorRT 7.1、OnnxRuntime 1.8.0 以及集成。自带可用的backend会多一些。在网页最下面,下载安装包:
在这里插入图片描述

1.3解压刚刚下载的安装包,并进入到对应的bin目录下

tar tritonserver2.11.0-jetpack4.5.tgz
cd tritonserver2.11.0-jetpack4.5/bin/

1.4尝试运行一下tritonserver

./ tritonserver

如出现如下错误:

error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file or directory

可能存在以下两种情况:
1.4.1可能是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可。
只需要sudo apt-get install libXXX

1.4.2已经安装了该共享库, 但 执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件。

	1.4.2.1 如果不知道,请查找库的放置位置:`sudo find / -name libXXX.so.X`
	1.4.2.2检查动态库路径环境变量是否存在( LD_LIBRARY_PATH):echo $LD_LIBRARY_PATH
	1.4.2.3将`libXXX.so.X`文件复制到动态库路径环境中

注意以上两个步骤不是二选一的关系,可能同时存在,需要读者自己甄别。
若出现以下提示,说明动态库文件没问题了:
在这里插入图片描述


二、运行triton-inference-server

2.1下载相关文件包

下载地址: https://github.com/triton-inference-server/server,解压并把docs文件夹复制到tritonserver2.11.0-jetpack4.5下。
在这里插入图片描述

2.2 生成模型文件

进入到tritonserver2.11.0-jetpack4.5/docs/examples文件夹下运行

bash fetch_models.sh

会生成一个model_repository文件夹,里面包含如下内容:
在这里插入图片描述

2.3启动tritonserver

cd 进入tritonserver2.11.0-jetpack4.5/bin/
运行./tritonserver –model-repository=../docs/examples/model_repository
若出现如下提示:
在这里插入图片描述
需要把tritonserver2.11.0-jetpack4.5/backends复制到 /opt/tritionserver /opt/tritonserver下,再次运行./tritonserver –model-repository=../docs/examples/model_repository
在这里插入图片描述
出现以上系统提示,说明tritonserver启动成功了。

三、测试triton client demo

3.1安装客户端依赖项

要运行客户端,必须安装以下依赖项。

apt-get install -y --no-install-recommends \
        curl \
        pkg-config \
        python3 \
        python3-pip \
        python3-dev

pip3 install --upgrade wheel setuptools cython && \
pip3 install --upgrade grpcio-tools numpy future attrdict

3.2安装python 客户端库

python 客户端库的存在于tritonserver2.11.0-jetpack4.5/clients/python中,可以通过运行以下命令进行安装:

python3 -m pip install --upgrade clients/python/tritonclient-2.11.0-py3-none-linux_aarch64.whl[all]

3.3运行onnx分类模型demo

tritonserver2.11.0-jetpack4.5/clinets/python目录下,运行

python3 ./image_client.py -m densenet_onnx  -s INCEPTION ~/LH/tritonserver2.11.0-jetpack4.5/qa/images/mug.jpg

此处需根据自己的路径稍加修改。
在这里插入图片描述
到这里就说明运行成功了!!!

总结

Triton 部署真的很方便,苦于之前没做过部署,弄了有一个星期,感觉还挺吃力的,现在跑动一个demo也是很开心呢!!!继续加油呀!!!
如果阅读本文对你有用,欢迎关注点赞评论收藏呀!!!
2021年8月12日20:25:55在这里插入图片描述

<think>好的,我现在需要帮用户解析Triton Inference Server技术。首先,用户可能对Triton还不了解,所以我要先介绍它的基本概念和作用。TritonNVIDIA推出的一个推理服务器,支持多种框架和硬件,这点很重要,应该放在前面。 接下来,用户可能需要了解为什么选择Triton,比如它的跨框架支持,比如TensorFlow、PyTorch这些,还有异构计算的能力,比如同时用GPU和CPU。还有它的高并发和动态批处理,这些对性能提升有帮助,应该详细说明。 然后,核心架构部分需要分模块讲,比如模型仓库、调度器、后端这些,用户可能关心各个组件如何协同工作。模型生命周期管理也是重点,比如加载、卸载和版本控制,这些对实际部署很重要。 高级特性部分,比如并发模型、动态批处理和模型集成,这些功能让Triton更强大,需要举例说明应用场景。性能优化方面,硬件加速和模型分析工具是亮点,用户可能想知道如何提升效率。 应用场景部分,举一些实际例子,比如推荐系统、自动驾驶,帮助用户理解适用场景。最后,和同类产品的对比,比如TensorFlow Serving和TorchServe,突出Triton的优势,比如支持多框架和动态批处理。 还要注意用户可能的深层需求,比如如何部署、性能调优或者成本问题,虽然用户没直接问,但可能在解析中适当提及。结构要清晰,分点讲,避免技术术语过多,确保用户容易理解。</think>以下是对NVIDIA Triton Inference Server的技术解析,分模块进行说明: 一、核心定位与核心价值 Triton Inference ServerNVIDIA推出的开源推理服务化框架,主要解决AI模型生产部署的三大痛点: 1. 框架碎片化:支持TensorFlow/PyTorch/ONNX/TensorRT等10+框架模型 2. 硬件异构化:可部署在GPU/CPU/ARM/x86等异构计算环境 3. 服务高并发:通过动态批处理等技术实现高吞吐量推理 二、系统架构解析 1. 前端接口层: - HTTP/REST和gRPC协议支持 - 提供metrics接口对接Prometheus - 支持Kafka异步消息流 2. 模型调度层: - 动态批处理引擎(最大批处理大小可配置) - 多模型并行执行(Model Pipelines) - 优先级调度队列 3. 后端运行时: - 框架后端:TF-TRT/PyTorch-TRT等加速方案 - 硬件加速:集成TensorRT/CUDA/cuDNN库 - 自定义后端:C-API支持用户扩展 三、关键技术特性 1. 并发执行模型: - 支持同一模型多个实例并行(Instance Groups) - 支持不同模型间并行推理 - GPU共享模式(CUDA MPS) 2. 模型集成: ```python # 示例模型组合配置 ensemble { step [ { model_name: "preprocessing" model_version: -1 input_map { key: "raw_data" value: "input" } output_map { key: "processed" value: "preprocessed" } }, { model_name: "inference" model_version: -1 input_map { key: "preprocessed" value: "input" } output_map { key: "prediction" value: "final_result" } } ] } ``` 3. 动态批处理: - 时间窗口控制(max_queue_delay_microseconds) - 形状自适应(允许可变尺寸输入) - 跨请求拼接(多个client请求合并batch) 四、性能优化手段 1. 硬件级加速: - GPU Direct技术减少数据拷贝 - FP16/INT8量化支持 - 使用TensorRT进行图优化 2. 模型分析工具: - 内置perf_analyzer性能剖析工具 - 生成延迟-吞吐量曲线 - 提供内存占用分析报告 五、生产实践建议 1. 部署模式选择: - Kubernetes部署:使用NVIDIA GPU Operator - 云原生方案:集成Prometheus+Grafana监控 - 边缘部署:支持Jetson系列嵌入式设备 2. 调优要点: - 根据模型特性调整instance_count - 设置合理的max_batch_size - 启用response_cache减少重复计算 同类产品对比: - 相较于TensorFlow Serving:支持更多框架类型 - 相较于TorchServe:提供更完善的动态批处理 - 相较于OpenVINO:硬件支持范围更广 典型应用场景: 1. 在线推荐系统(毫秒级响应) 2. 自动驾驶感知处理(多模型级联) 3. 工业质检(高吞吐量处理) 4. 医疗影像分析(大模型部署) 该系统的演进方向包括对新兴模型架构(如Diffusion Model)的优化支持,以及与Kubernetes生态的深度集成。最新版本已支持Multi-GPU Multi-Node分布式推理能力。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI小笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值