tvm学习笔记(五):tvm工作原理

时间:2024-04-01 15:27:41

    一、总体流程:

    TVM的工作流程:首先,将网络表示成统一的表示形式(Intermediate Representation),并进行一些可重用的图优化;然后,利用不同的后端生成对应设备代码,如图1所示。

tvm学习笔记(五):tvm工作原理

                                                                        图1 tvm 工作流程(摘自参考资料[1])

    首先,将不同的框架下的模型载入,并使用NNVM将模型转换成中间表示的计算图,并对图进行优化,如 算子融合、减枝、图变换等;然后,TVM对张量运算进行优化,这里,TVM将代码的调度和计算分开(计算:定义需要进行的运算,调度:具体如何来进行运算);最后,使用不同的后端,来生成对应设备代码,如图1所示,使用LLVM生成x86,ARM和Javescript/WASM系统代码,OpenCL、Metal和CUDA生成对应的GPU代码,通过这种中间堆栈(IR Stack)表示的方式,实现端到端的深度学习模型优化和部署,这种方式将实现op的复杂度转移到了编译规则的复杂度。

 

参考资料:

[1] https://tvm.ai/2017/08/17/tvm-release-announcement

[2] https://www.cnblogs.com/jxr041100/p/8288381.html