Jetson调用triton inference server详细笔记

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

系列文章目录

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在这里插入图片描述

### Triton Inference Server 与 PyTorch 在推理服务方面的特性与性能对比 Triton Inference ServerNVIDIA 推出的高性能推理服务框架,专为生产环境中的大规模模型部署而设计。它支持多种深度学习框架(如 TensorFlow、PyTorch、ONNX 等),并能高效利用 GPU 资源,显著提升推理性能[^1]。相比之下,PyTorch 是一个广泛使用的深度学习框架,主要用于模型训练和研究,但其在推理服务方面的功能较为有限。 #### 模型部署支持 Triton Inference Server 支持多种模型格式,包括 PyTorch、TensorFlow、ONNX 和自定义 C++/Python 后端。它允许用户将多个模型组合成一个推理流水线,并支持动态批处理和模型并行执行,从而最大化 GPU 利用率[^1]。PyTorch 则主要通过 TorchScript 和 `torchserve` 提供推理支持,虽然可以将模型转换为 `.pt` 或 `.pth` 文件进行部署,但其在生产环境中的灵活性和性能优化不如 Triton。 ```python # PyTorch 模型导出为 TorchScript import torch import torchvision model = torchvision.models.resnet18(pretrained=True) model.eval() example = torch.rand(1, 3, 224, 224) traced_script_module = torch.jit.trace(model, example) traced_script_module.save("resnet18.pt") ``` #### 性能优化 Triton Inference Server 的核心优势在于其推理性能优化能力。它支持动态批处理(Dynamic Batching),可以将多个请求合并为一个批次进行推理,从而提高吞吐量并降低延迟。此外,Triton 还支持模型并行执行、GPU 内存优化以及多模型流水线等高级功能,这些特性使其在大规模部署场景中表现优异。 PyTorch 的推理性能优化主要依赖于用户手动调整模型结构、使用 `torch.compile` 或 `torchscript` 进行优化。虽然 PyTorch 2.0 引入了 `torch.compile` 以提升推理速度,但在生产级部署方面,其自动优化能力仍不如 Triton。 #### 易用性与集成 Triton Inference Server 提供了 REST/gRPC 接口,支持远程调用推理服务,并可通过配置文件(如 `config.pbtxt`)定义模型部署参数。这种方式便于集成到 Kubernetes、Kubernetes-based 云服务(如 AWS SageMaker、Azure ML)等生产环境。此外,Triton 还提供了模型仓库管理、版本控制和自动加载等功能,简化了模型的上线和维护流程[^2]。 PyTorch 的推理服务主要依赖于 `torchserve`,它提供了模型打包、REST API 支持和模型版本管理等功能。然而,`torchserve` 的配置和部署流程相对繁琐,且在高并发、多模型部署场景下的性能和稳定性不如 Triton。 #### 多模型与多实例支持 Triton Inference Server 可同时部署多个模型,并支持多个模型实例并行执行。它允许用户为每个模型指定 GPU/CPU 资源分配、批处理大小和优先级,从而实现灵活的资源调度和负载均衡[^3]。这种能力使其特别适合多任务推理场景,例如同时运行图像分类、目标检测和语音识别等任务。 PyTorch 在多模型部署方面较为受限,通常需要为每个模型单独启动推理服务实例。虽然可以通过多线程或多进程方式实现一定程度的并行,但在资源调度和负载均衡方面不如 Triton 灵活。 #### 社区与生态系统支持 Triton Inference ServerNVIDIA 维护,并与主流深度学习框架和硬件平台(如 Jetson、TensorRT)深度集成。其开源社区活跃,文档完善,适合企业级 AI 推理部署[^3]。PyTorch 拥有庞大的研究社区和丰富的模型库(如 HuggingFace Transformers),但在生产推理服务方面,其生态系统支持仍处于发展阶段。 ###
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI小笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值