前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在NVIDIA Jetson上利用Triton简化部署并最大化推理性能?

如何在NVIDIA Jetson上利用Triton简化部署并最大化推理性能?

原创
作者头像
GPUS Lady
修改2021-09-22 14:24:23
2.9K0
修改2021-09-22 14:24:23
举报
文章被收录于专栏:GPUS开发者GPUS开发者

昨天NVIDIA美国针对Triton on Jetson有一个讲座,我们看看都讲了哪些:

在边缘进行模型部署会遇到哪些挑战?

  1.  多个框架——需要模型转换或添加新的框架支持
  2. 需要混合基础设施( 云、数据中心和边缘)——不同的服务解决方案增加了成本
  3. 实时模型更新——每次需要更新模型时都需要重新启动应用程序
  4. 不同类型的查询——实时、批处理、音频流、集成(Ensembles)
  5. 高性能、低延迟推理——增加延迟/吞吐量所需的硬件优化

用Trion对开发者的好处是什么?

开发人员可以专注于模型和应用程序,而Triton 负责部署推理模型。

Triton到底是个怎样的平台?

1. 标准的推理平台——支持所有主要框架后端以实现灵活性和一致性,实现标准 HTTP、gRPC 和C++ 通信

2. 支持混合架构——在 GPU、CPU 和混合工作负载上提供推理服务(云/数据中心/边缘)

3. 不同类型的查询——支持不同类型的推理查询和用例

4. 最大化硬件使用率——并发模型执行提高性能动态批处理在延迟约束下最大化吞吐量

轻松集成到应用程序工作流中,简化 AI 模型的生产部署:

1.性能优化和实时更新——使用动态模型加载启用实时模型更新,使用性能分析器进行基准测试和寻找最佳配置。

2. 开源和定制化——完全开源:检查、定制和扩展;可定制的构建:用于低内存占用的模块化后端

Triton on Jetson的架构

Triton Jetson构建——在边缘设备上运行推理

所有 Jetson 模块和开发人员套件都支持 Triton。官方支持已作为 JetPack 4.6 版本的一部分对外发布。

支持的功能:

• TensorFlow 1.x/2.x、TensorRT、ONNX 运行时和自定义后端

• 与 C API 直接集成• C++ 和 Python 客户端库和示例

• GPU 和 DLA 支持

• 包括完整的 Triton 功能集:并发模型执行、动态批处理、模型集成等。

文档:https://github.com/triton-inference-server/server/blob/main/docs/jetson.md

TRITON 嵌入——直接与C API集成

• 将 Triton 库插入现有应用程序的较小二进制文件

• 删除现有的 REST 和 gRPC 端点• 非常低的通信开销(相同的系统和 CUDA 内存地址空间)

• 仍然利用 GPU 优化,例如动态批处理和模型并发

• 向后兼容 C 接口

并发模型执行,提高吞吐量和利用率

Triton 可以运行并发推理:

1) 多种不同型号

2) 和/或在同一系统上并行运行同一模型的多个副本 ,最大化 GPU 利用率,实现更好的性能并降低推理成本

动态批处理,通过批处理请求增加吞吐量

将独立的推理请求动态分组到批处理中以提高吞吐量调度程序选项是可配置的:

1.Preferred batch size:要批处理的请求数

2.Delayed batching:等待创建批次的最大延迟时间

3.Priority levels:设置请求的优先级

4.Queue Policy:设置推理请求队列的排队策略

TRITON 自定义后端——使用任意 C++ 或 Python 代码扩展 Triton

开发人员可以自定义 Triton 并将其扩展到任何推理应用程序和工作流程;

Triton 后端 API 允许将 C++ 或 Python 中的自定义代码(例如预处理/后处理操作)集成到 Triton 中。

该 API 还允许用户在 Triton 中集成他们自己的执行引擎实现或对 AI 框架的支持,作为自定义后端。

好处:

● 使用向后兼容的 C API 将代码实现为共享库

● 利用完整的 Triton 功能集(与现有框架相同)

○ 动态批处理器、序列批处理器、并发执行等

● 提供部署灵活性;Triton 在模型和自定义组件之间提供标准、一致的接口协议

模型集成

• 链接多个模型的输入/输出并共享 GPU 内存以优化性能

• 流水线中的每个模型都可以在不同的后端和硬件上运行

• 避免传输中间张量的开销并最大限度地减少对 Triton 的请求数量

• 自定义业务逻辑(控制流逻辑、条件、循环机制),可以通过新的“业务逻辑脚本”功能以编程方式添加到集成中

TRITON 在 MLPERF 推理 V1.0 中的高性能

TRITON 客户案例研究

资源:

GitHub Docs: 

https://github.com/triton-inference-server/server/blob/main/docs/jetson.md

Download Link: 

https://github.com/triton-inference-server/server/releases

Blog: 

https://developer.nvidia.com/blog/simplifying-ai-model-deployment-at-the-edge-with-triton-inference-server/

Jetpack Website: 

https://developer.nvidia.com/embedded/jetpack

Q&A

问“我正在尝试在我的 jetson nano 2gb 上运行一个 Triton 服务器,它是否需要 Ubuntu 20.4 作为先决条件?

答:Ubuntu 20.04 不是先决条件。您可以使用 JetPack 4.6 在 Jetson 上使用 Triton。

问:Jetson nano 2GB 上的 ARM64 可执行文件是否与 Triton 二进制兼容?

答:是的,triton gitb 上发布的triton 二进制文件可以在Jetson Nano 上运行。

问:除了 GPU 之外,在其中一个 sldies 中提到的 DLA 是什么?

答:DLA、深度学习加速器出现在 Jetson Xavier NX 和 Jetson AGX Xavier 系列上。

问:每月构建版本包含哪些内容?它是否包含较新的 TF 和 Pytroch 版本?

答:每月发布的版本包含更新的 TF 和 Pytorch 版本以及新的 Triton 特性

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档