Deepytorch Inference是阿里云自研的AI推理加速器,专注于为Torch模型提供高性能的推理加速。通过对模型的计算图进行切割、执行层融合以及高性能OP的实现,大幅度提升PyTorch的推理性能。本文介绍Deepytorch Inference在推理加速方面的概念、优势及模型支持情况。
Deepytorch Inference介绍
Deepytorch Inference作为阿里云自研的AI加速器,提供了推理加速能力。针对PyTorch框架下的深度学习模型,在无需指定精度和输入尺寸的情况下,通过即时编译技术对该模型进行推理优化,从而实现高效、快速的推理加速效果。
Deepytorch Inference的架构图如下所示:
架构层 | 说明 | |
框架层 |
| |
Deepytorch Inference推理加速 | Deepytorch Inference组件 |
|
算子层 |
|
产品优势
推理性能显著提升
Deepytorch Inference通过编译加速的方式减少模型推理的延迟,从而提高模型的实时性和响应速度。能显著提升模型的推理加速性能。
例如,不同模型下的推理性能对比如下:
说明下列数据以A10单卡机器下的推理性能数据为例,相比模型默认的原配置推理功能,使用Deepytorch Inference进行模型推理优化,其推理性能显著提升。
model
input-size
deepytorch inference (ms)
pytorch float (ms)
Inference speed increase
source
Resnet50
1 x 3 x 224 x 224
0.47
2.92
84%
Mobilenet-v2-100
1 x 3 x 224 x 224
0.24
2.01
88%
SRGAN-X4
1 x 3 x 272 x 480
23.07
132.00
83%
YOLO-V3
1 x 3 x 640 x 640
3.87
15.70
75%
Bert-base-uncased
1 x 128, 1 x 128
0.94
3.76
75%
Bert-large-uncased
1 x 128, 1 x 128
1.33
7.11
81%
GPT2
1 x 128
1.49
3.82
71%
易用性好
Deepytorch Inference无需您指定精度和输入尺寸,通过即时编译的方式,提供较好的易用性,代码侵入量较少,从而降低代码复杂度和维护成本。
模型支持情况
目前支持在部分模型上进行Deepytorch Inference(推理加速)优化,模型支持情况如下:
支持推理加速的模型
场景 | 支持的模型名称 |
视觉场景 |
|
NLP场景 |
|
不支持推理加速的模型
由于Weight demodulation会根据输入动态生成weight,因此不支持例如StyleGan2模型中的Weight demodulation操作。
不支持存在动态设置属性(Attribute)的模型。例如torchvision.models.detection中的fasterrcnn_resnet50_fpn模型,此类模型在执行
torch.jit.freeze
时会出现错误。不支持例如demucs模型中的conv1d算子。
相关文档
相比模型默认的推理配置,使用Deepytorch Inference工具对模型进行推理优化,能够显著提升推理性能。具体操作,请参见安装和使用Deepytorch Inference。
使用Deepytorch Traning工具对模型进行训练优化,可实现端到端训练性能的显著提升,使AI研发人员可以轻松集成并享受训练加速效果。更多信息,请参见什么是Deepytorch Training和安装和使用Deepytorch Training。