高层 API 底层有多种优化实现,我们称之为 engine;不同 engine 的切换通过传递不同的 Config 实现重载。
NativeConfig
- 原生 engine,由 paddle 原生的 forward operator 组成,可以天然支持所有paddle 训练出的模型
AnalysisConfig
- 特性
- 支持计算图的分析和优化
- 支持最新的各类 op fuse,性能一般比 NativeConfig 要好
- 支持 TensorRT mixed engine 用于 GPU 加速,用子图的方式支持了 [TensorRT] ,支持所有paddle 模型,并自动切割部分计算子图到 TensorRT 上加速
- 我的理解
- 我知道的op融合:conv+bn融合、relu融合
- 我记得trt的融合:多路conv层横向融合、单路多个conv层纵向融合。TensorRT在推断期间能够进行Op的横向和纵向融合,过滤掉冗余的Op,并对特定平台下的特定的Op选择合适的kenel等进行优化,能够加快模型的预测速度
- AnalysisConfig和trt关系:AnalysisConfig才支持trt,当然也可以不使用trt
TensorRT
NVIDIA TensorRT 是一个高性能的深度学习预测库,可为深度学习推理应用程序提供低延迟和高吞吐量。PaddlePaddle 采用了子图的形式对TensorRT进行了集成,即我们可以使用该模块来提升Paddle模型的预测性能。该模