【PyTorch】模型部署

Backto PyTorch Index

最佳实践 Best Practice

2020-07-03

Server/Nvidia :C++ / TensorRT
Mobile/Non-Nvidia : TVM

技术路径 Paths

TorchScript-Libtorch / offcial C++ frontend

官方推荐和主代码演进的方向

The PyTorch team is betting heavily on TorchScript/libtorch as the path for going from research to production. Our ideal workflow is for the user to prototype in Python/PyTorch eager, convert to TorchScript, then use our compiler infrastructure to optimize and potentially lower your model to specialized hardware.

Pro: 官方出品,覆盖面广
Con:当前主要是从 Python 到 C++ 的转写,利用的是C++语言的加速特性。而更为关键的硬件加速涉及不多。

TVM

【PyTorch】模型部署_第1张图片
【PyTorch】模型部署_第2张图片

【PyTorch】模型部署_第3张图片

TVM 需要已知输入 Tensor 的 dimensions,所以一般是作为JIT 使用,确实是比官方 JIT 要快。
但还是那个问题,无法激发硬件的性能。

TensorRT

Nvidia 官方出品,闭源,暴力。
官方转换组件: torch2trt, 官方提供了在 Jetson Nano 和 Xavier 平台上的测试,提速可谓暴力十足。

【PyTorch】模型部署_第4张图片


Ref

  • PyTorch C++ Deployment Story: 2019

  • 深度学习加速:算法、编译器、体系结构与硬件设计 - meton的文章 - 知乎

  • 2小时演讲,近140页PPT,这个NeurIPS Tutorial真是超硬核的AI硬件教程 - 机器之心的文章 - 知乎

你可能感兴趣的:(PyTorch,让AI飞,DL)