如何通过万字长文从零基础掌握TVM Pass深度学习编译器?
- 内容介绍
- 文章标签
- 相关推荐
本文共计10815个文字,预计阅读时间需要44分钟。
0x01. 前言:本文基于TVM 0.8.0.dev版本。从零开始学习深度学习编译器,五,TVM+Relay及Pass简介。本文已简单介绍了Relay和Pass机制。但未对Pass的基础设施(Pass Infra)进行深入探讨。
0x0. 前言
这篇文章基于TVM 0.8.0.dev版本。在五,TVM Relay以及Pass简介 这篇推文中已经简单介绍了Relay和Pass机制。但对Pass的基础设施(Pass Infrastructure)和Relay树结构都没有详细介绍,所以这篇文章主要介绍一下Pass Infrastructure和Relay树结构,再基于这些关键的基础知识详细了解一下Constant Folding Pass,相信读者读完这篇文章会对TVM的Pass有更深的理解,并且在阅读其它Pass和实现自定义Pass时可以很Relax。
0x1. Pass Infrastructure
首先来看Pass Infrastructure,基于官方文档进行介绍。
在讲解Pass通用的注册和运行流程前,先来介绍一下TVM的Pass Infrastructure。参考官方文档:tvm.apache.org/docs/dev/pass_infra.html 。
Relay 和 TVM IR 都包含一系列优化passes,可提高模型的性能指标,例如平均推理速度、内存占用或特定设备的功耗。 TVM有一套标准优化方法以及特定于机器学习的优化方法,包括常量折叠、死代码消除、运算符布局更改、算符融合、缓冲区处理和循环变换等。 每一个Pass都使用在traversal期间和/或之前收集的分析结果来构造ir-to-ir的pass。
本文共计10815个文字,预计阅读时间需要44分钟。
0x01. 前言:本文基于TVM 0.8.0.dev版本。从零开始学习深度学习编译器,五,TVM+Relay及Pass简介。本文已简单介绍了Relay和Pass机制。但未对Pass的基础设施(Pass Infra)进行深入探讨。
0x0. 前言
这篇文章基于TVM 0.8.0.dev版本。在五,TVM Relay以及Pass简介 这篇推文中已经简单介绍了Relay和Pass机制。但对Pass的基础设施(Pass Infrastructure)和Relay树结构都没有详细介绍,所以这篇文章主要介绍一下Pass Infrastructure和Relay树结构,再基于这些关键的基础知识详细了解一下Constant Folding Pass,相信读者读完这篇文章会对TVM的Pass有更深的理解,并且在阅读其它Pass和实现自定义Pass时可以很Relax。
0x1. Pass Infrastructure
首先来看Pass Infrastructure,基于官方文档进行介绍。
在讲解Pass通用的注册和运行流程前,先来介绍一下TVM的Pass Infrastructure。参考官方文档:tvm.apache.org/docs/dev/pass_infra.html 。
Relay 和 TVM IR 都包含一系列优化passes,可提高模型的性能指标,例如平均推理速度、内存占用或特定设备的功耗。 TVM有一套标准优化方法以及特定于机器学习的优化方法,包括常量折叠、死代码消除、运算符布局更改、算符融合、缓冲区处理和循环变换等。 每一个Pass都使用在traversal期间和/或之前收集的分析结果来构造ir-to-ir的pass。

