Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
FluidDoc
提交
cfb21ae5
F
FluidDoc
项目概览
PaddlePaddle
/
FluidDoc
通知
5
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
23
列表
看板
标记
里程碑
合并请求
111
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FluidDoc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
23
Issue
23
列表
看板
标记
里程碑
合并请求
111
合并请求
111
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
cfb21ae5
编写于
11月 26, 2018
作者:
N
nhzlx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine trt doc
上级
33104272
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
14 deletion
+11
-14
doc/fluid/user_guides/howto/inference/native_infer.md
doc/fluid/user_guides/howto/inference/native_infer.md
+2
-2
doc/fluid/user_guides/howto/inference/paddle_tensorrt_infer.md
...luid/user_guides/howto/inference/paddle_tensorrt_infer.md
+9
-12
未找到文件。
doc/fluid/user_guides/howto/inference/native_infer.md
浏览文件 @
cfb21ae5
...
@@ -25,9 +25,9 @@ PaddleTensor 定义了预测最基本的输入输出的数据格式,常用字
...
@@ -25,9 +25,9 @@ PaddleTensor 定义了预测最基本的输入输出的数据格式,常用字
-
`NativeConfig`
原生 engine,由 paddle 原生的 forward operator
-
`NativeConfig`
原生 engine,由 paddle 原生的 forward operator
组成,可以天然支持所有paddle 训练出的模型,
组成,可以天然支持所有paddle 训练出的模型,
-
`
MixedRT
Config`
TensorRT mixed engine 用于 GPU
-
`
Analysis
Config`
TensorRT mixed engine 用于 GPU
加速,用子图的方式支持了 [TensorRT] ,支持所有paddle
加速,用子图的方式支持了 [TensorRT] ,支持所有paddle
模型,并自动切割部分计算子图到 TensorRT 上加速(WIP)
模型,并自动切割部分计算子图到 TensorRT 上加速(WIP)
,具体的使用方式可以参考
[
这里
](
http://paddlepaddle.org/documentation/docs/zh/1.1/user_guides/howto/inference/paddle_tensorrt_infer.html
)
。
## 预测部署过程
## 预测部署过程
...
...
doc/fluid/user_guides/howto/inference/paddle_tensorrt_infer.md
浏览文件 @
cfb21ae5
# 使用Paddle TensorRT预测
# 使用Paddle TensorRT预测
NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习推理应用程序提供低延迟和高吞吐量。Paddle 1.0 采用了子图的形式对TensorRT进行了初步集成,即我们可以使用该模块来提升Paddle模型的预测性能。该模块依旧在持续开发中,目前已支持的模型有:AlexNet, MobileNet, ResNet50, VGG19, ResNext, MobileNet-SSD等。在这篇文档中,我们将会对Paddle-TensorRT库的获取、使用和原理进行介绍。
NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习推理应用程序提供低延迟和高吞吐量。Paddle 1.0 采用了子图的形式对TensorRT进行了初步集成,即我们可以使用该模块来提升Paddle模型的预测性能。该模块依旧在持续开发中,目前已支持的模型有:AlexNet, MobileNet, ResNet50, VGG19, ResNext,
Se-ReNext, GoogleNet, DPN, ICNET,
MobileNet-SSD等。在这篇文档中,我们将会对Paddle-TensorRT库的获取、使用和原理进行介绍。
## 编译带`TensorRT`的预测库
## 编译带`TensorRT`的预测库
...
@@ -46,7 +46,7 @@ NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习
...
@@ -46,7 +46,7 @@ NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习
[
`paddle_inference_api.h`
](
'https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/fluid/inference/api/paddle_inference_api.h'
)
定义了使用TensorRT的所有接口。
[
`paddle_inference_api.h`
](
'https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/fluid/inference/api/paddle_inference_api.h'
)
定义了使用TensorRT的所有接口。
总体上分为以下步骤:
总体上分为以下步骤:
1.
创建合适的配置
MixedRTConfig.
1.
创建合适的配置
AnalysisConfig.
2.
根据配合创建
`PaddlePredictor`
.
2.
根据配合创建
`PaddlePredictor`
.
3.
创建输入的tensor.
3.
创建输入的tensor.
4.
获取输出的tensor,输出结果.
4.
获取输出的tensor,输出结果.
...
@@ -56,23 +56,20 @@ NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习
...
@@ -56,23 +56,20 @@ NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习
```
c++
```
c++
#include "paddle_inference_api.h"
#include "paddle_inference_api.h"
using
paddle
::
contrib
::
MixedRTConfig
;
namespace
paddle
{
namespace
paddle
{
using
paddle
::
contrib
::
AnalysisConfig
;
void
RunTensorRT
(
int
batch_size
,
std
::
string
model_dirname
)
{
void
RunTensorRT
(
int
batch_size
,
std
::
string
model_dirname
)
{
// 1. 创建MixedRTConfig
// 1. 创建MixedRTConfig
MixedRTConfig
config
;
AnalysisConfig
config
(
true
)
;
config
.
model_dir
=
model_dirname
;
config
.
model_dir
=
model_dirname
;
config
.
use_gpu
=
true
;
// 此处必须为true
config
->
use_gpu
=
true
;
config
.
fraction_of_gpu_memory
=
0.2
;
config
->
device
=
0
;
config
.
device
=
0
;
// gpu id
config
->
fraction_of_gpu_memory
=
0.15
;
// TensorRT 根据max batch size大小给op选择合适的实现,
config
->
EnableTensorRtEngine
(
1
<<
20
/*work_space_size*/
,
batch_size
/*max_batch_size*/
);
// 因此max batch size大小和运行时batch的值最好相同。
config
.
max_batch_size
=
batch_size
;
// 2. 根据config 创建predictor
// 2. 根据config 创建predictor
auto
predictor
=
CreatePaddlePredictor
<
MixedRTConfig
>
(
config
);
auto
predictor
=
CreatePaddlePredictor
(
config
);
// 3. 创建输入 tensor
// 3. 创建输入 tensor
int
height
=
224
;
int
height
=
224
;
int
width
=
224
;
int
width
=
224
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录