什么是Deepytorch Inference(推理加速)
Deepytorch Inference是阿里云自研的AI推理加速器,專注于為Torch模型提供高性能的推理加速。通過對模型的計(jì)算圖進(jìn)行切割、執(zhí)行層融合以及高性能OP的實(shí)現(xiàn),大幅度提升PyTorch的推理性能。本文介紹Deepytorch Inference在推理加速方面的概念、優(yōu)勢及模型支持情況。
Deepytorch Inference介紹
Deepytorch Inference作為阿里云自研的AI加速器,提供了推理加速能力。針對PyTorch框架下的深度學(xué)習(xí)模型,在無需指定精度和輸入尺寸的情況下,通過即時編譯技術(shù)對該模型進(jìn)行推理優(yōu)化,從而實(shí)現(xiàn)高效、快速的推理加速效果。
Deepytorch Inference的架構(gòu)圖如下所示:
架構(gòu)層 | 說明 | |
框架層 |
| |
Deepytorch Inference推理加速 | Deepytorch Inference組件 |
|
算子層 |
|
產(chǎn)品優(yōu)勢
推理性能顯著提升
Deepytorch Inference通過編譯加速的方式減少模型推理的延遲,從而提高模型的實(shí)時性和響應(yīng)速度。能顯著提升模型的推理加速性能。
例如,不同模型下的推理性能對比如下:
說明下列數(shù)據(jù)以A10單卡機(jī)器下的推理性能數(shù)據(jù)為例,相比模型默認(rèn)的原配置推理功能,使用Deepytorch Inference進(jìn)行模型推理優(yōu)化,其推理性能顯著提升。
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無需您指定精度和輸入尺寸,通過即時編譯的方式,提供較好的易用性,代碼侵入量較少,從而降低代碼復(fù)雜度和維護(hù)成本。
模型支持情況
目前支持在部分模型上進(jìn)行Deepytorch Inference(推理加速)優(yōu)化,模型支持情況如下:
支持推理加速的模型
場景 | 支持的模型名稱 |
視覺場景 |
|
NLP場景 |
|
不支持推理加速的模型
由于Weight demodulation會根據(jù)輸入動態(tài)生成weight,因此不支持例如StyleGan2模型中的Weight demodulation操作。
不支持存在動態(tài)設(shè)置屬性(Attribute)的模型。例如torchvision.models.detection中的fasterrcnn_resnet50_fpn模型,此類模型在執(zhí)行
torch.jit.freeze
時會出現(xiàn)錯誤。不支持例如demucs模型中的conv1d算子。
相關(guān)文檔
相比模型默認(rèn)的推理配置,使用Deepytorch Inference工具對模型進(jìn)行推理優(yōu)化,能夠顯著提升推理性能。具體操作,請參見安裝和使用Deepytorch Inference。
使用Deepytorch Traning工具對模型進(jìn)行訓(xùn)練優(yōu)化,可實(shí)現(xiàn)端到端訓(xùn)練性能的顯著提升,使AI研發(fā)人員可以輕松集成并享受訓(xùn)練加速效果。更多信息,請參見什么是Deepytorch Training和安裝和使用Deepytorch Training。