-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Description
任务描述
TensorRT 是一个针对 NVIDIA GPU 及 Jetson 系列硬件的高性能机器学习推理 SDK,可以使得深度学习模型在这些硬件上的部署获得更好的性能。Paddle Inference 以子图方式集成了 TensorRT,保留 PaddlePaddle 即训即推的能力。目标:完成 Paddle-TensorRT 算子开发及映射工作;通过通用plugin机制基于Phi算子库,完成对 Paddle-TensorRT 不支持的算子添加。
⏰Remind
认领≠占坑,以合入pr的时间为准。任务在issue上被认领后不代表别的同学不可以做了,我们最后还是以【最终的PR合入时间】为准进行【奖励发放】。认领主要是为了防止撞车,但是认领了没看到提pr的话就可以自己做哦~
任务进展(4/6)
按 merge 的时间顺序,排名不分先后: @zrr1999 (1) @DrRyanHuang (1) @sanbuphy (2)
算子名称 | 类型 | 难度 | API定义 | OP定义 | 领取人 | PR |
---|---|---|---|---|---|---|
one_hot_v2 ✅ (2022/12/08) | TRT Layer映射 | 中等 | OneHot API | OneHot OP | @zrr1999 | #48655 |
@sanbuphy | ||||||
@Ryan | #48937 | |||||
reduce_prod reduce_min ✅(2023/01/10) | TRT Layer映射 | 简单 | Reduce API | Reduce OP | @sanbuphy | #49615 |
reduce_any | TRT Layer映射 | 简单 | Reduce API | Reduce OP | @sanbuphy | #49765 |
reduce_all | TRT Layer映射 | 简单 | Reduce API | Reduce OP | @sanbuphy | #49765 |
arg_min✅ (2022/12/20) | TRT Layer映射 | 简单 | ArgMin API | ArgMin OP | @DrRyanHuang | #49113 |
not_equal ✅(2023/1/3) | TRT Layer映射 | 简单 | NotEqual API | NotEqual OP | @sanbuphy | #49393 |
项目说明
说明摘自:Paddle-TensorRT 算子开发
1. 背景与意义
TensorRT 是一个针对 NVIDIA GPU 及 Jetson 系列硬件的高性能机器学习推理 SDK,可以使得深度学习模型在这些硬件上的部署获得更好的性能。Paddle Inference 以子图方式集成了 TensorRT,将可用 TensorRT 加速的算子组成子图供给 TensorRT,以获取 TensorRT 加速的同时,保留 PaddlePaddle 即训即推的能力。
当模型被 Paddle Inference 加载后,神经网络被表示为由变量和运算节点组成的计算图。在图分析阶段,Paddle Inference 会对模型进行分析同时发现图中可以使用 TensorRT 优化的子图,并使用 TensorRT 节点替换它们(如下图)。在模型的推理期间,如果开启TensorRT开关,遇到 TensorRT 节点,Paddle Inference 会调用 TensorRT 对该节点进行执行,其它节点调用 GPU 原生推理,充分利用TensorRT性能优化。
NVIDIA TensorRT提供了42类Layer,包括91+个算子。Paddle-TensorRT 已经支持其中大部分Layer和算子,并且由于NVIDIA TensorRT新版本在持续更新迭代,仍然存在缺失的情形,如控制流算子支持、TensorRT v8.5版本新增IOneHotLayer、INMSLayer。目前Paddle主要通过三种机制对TensorRT进行支持:(1)Tensor Layer映射;(2)通用plugin机制(文档参见 General plugin mechanism);(3)TensorRT OSS plugin映射。
2. 目标
完成 Paddle-TensorRT 算子开发及映射工作;通过通用plugin机制基于Phi算子库,完成对 Paddle-TensorRT 不支持的算子添加。
3. 算子开发示例
- TRT Layer映射示例,参见 where op映射示例
- 通用plugin开发示例参见 pad3d等算子开发示例,设计文档参见 General plugin mechanism #45355
4. 参考链接
5. mentored
This project will be mentored by @zhangjun
Metadata
Metadata
Assignees
Labels
Type
Projects
Status