Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tracking issue] Paddle-TensorRT 算子开发 #48292

Closed
DrRyanHuang opened this issue Nov 23, 2022 · 9 comments
Closed

[tracking issue] Paddle-TensorRT 算子开发 #48292

DrRyanHuang opened this issue Nov 23, 2022 · 9 comments
Assignees
Labels
PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc status/close 已关闭 type/new-feature 确认的新需求

Comments

@DrRyanHuang
Copy link
Member

DrRyanHuang commented Nov 23, 2022

任务描述

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
range TRT Layer映射 中等 Range API Range OP @sanbuphy
eye TRT Layer映射 简单 Eye API Eye OP @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性能优化。

trt_engine

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映射。

paddle_trt

2. 目标

完成 Paddle-TensorRT 算子开发及映射工作;通过通用plugin机制基于Phi算子库,完成对 Paddle-TensorRT 不支持的算子添加。

3. 算子开发示例

4. 参考链接

飞桨官网-贡献指南-代码贡献流程

5. mentored

This project will be mentored by @zhangjun

@PaddlePaddle PaddlePaddle deleted a comment from paddle-bot bot Nov 24, 2022
@Ligoml Ligoml added type/new-feature 确认的新需求 PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc and removed status/new-issue 新建 type/others 其他问题 labels Nov 24, 2022
@paddle-bot paddle-bot bot added the status/close 已关闭 label Nov 24, 2022
@paddle-bot paddle-bot bot closed this as completed Nov 24, 2022
@Ligoml Ligoml reopened this Nov 25, 2022
@paddle-bot paddle-bot bot added status/reopen 重新打开 and removed status/close 已关闭 labels Nov 25, 2022
@Ligoml Ligoml removed the status/reopen 重新打开 label Nov 25, 2022
@codecookinging
Copy link

算子名称:reduce_prod/reduce_min/reduce_max/reduce_any
认领人:codecookinging

@Aran-Guo
Copy link

算子名称:range
认领人:Aran-Guo

@zrr1999
Copy link
Member

zrr1999 commented Nov 28, 2022

算子名称:one_hot_v2
认领人:zrr1999

@sanbuphy
Copy link
Contributor

算子名称:not equal
认领人:sanbuphy

@luotao1
Copy link
Contributor

luotao1 commented Dec 20, 2022

算子名称:reduce_prod/reduce_min/reduce_max/reduce_any
认领人:codecookinging

@codecookinging 请问这个进展如何?可以联系 活动中的群 进行讨论。

@sanbuphy
Copy link
Contributor

算子名称:reduce_prod reduce_min reduce_any
认领人:sanbuphy

@sanbuphy
Copy link
Contributor

sanbuphy commented Jan 7, 2023

算子名称: reduce_all reduce_any
认领人:sanbuphy

@sanbuphy
Copy link
Contributor

算子名称:range
认领人:sanbuphy

@luotao1
Copy link
Contributor

luotao1 commented Feb 7, 2023

使用TRT 8.0+,以下PR的 TRT部分逻辑正确,GPU算子存在问题导致单测无法正常通过。 GPU算子在单独PR修复后该PR可合入。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc status/close 已关闭 type/new-feature 确认的新需求
Projects
Development

No branches or pull requests

9 participants