mdm有效负载与旧负载不符怎么解决?TVM深度分析1
mdm有效负载与旧负载不符怎么解决?TVM深度分析1注2:TVM与LLVM、NVCC等编译器的接口?TVM的创新在于将LLVM的架构思想应用到DL领域,其TVM Relay更宣称将过去DL优化方式由”针对图计算方式”转化为”针对函数级别优化”,能够利用过去几十年的编译器优化经验对DL的计算进行优化。LLVM相对于GCC的创新在于其Frontend-IR-Backend的架构涉及,通过Frontend支持多种语言,通过Backend支持多种运行平台,IR与前后端分离,更为通用。Clang是Apple基于LLVM开发的支持C/C /Object-C/Object-C 的编译器,特性是内存占用小(GCC的13%)、速度快(GCC的2.5X),现在是Apache默认推荐的C/C 编译器。Halide是基于LLVM的图像算法编译器,其创新在于将“计算表达”与“计算过程”分离,由此可针对“计算过程”进行加速优化。其IR语言为HalideIR,TV
TVM整体架构
TVM在逻辑架构上可分为3层:Frontends层、优化层、Backends层。其中Frontends层负责对接不同的DL框架/模型,而在优化层,TVM针对DL推理提供了 “Computation Graph Optimization”及“Schedule Space and Optimization”两个层次的优化,最后再通过Backends层支持不同的硬件平台比如NVIDIA GPU、AMD GPU、ARM、X86CPU等。
注:“一些开源编译器的背景知识及关联”
注1:LLVM、Clang、Halide、TVM之间的关系
LLVM相对于GCC的创新在于其Frontend-IR-Backend的架构涉及,通过Frontend支持多种语言,通过Backend支持多种运行平台,IR与前后端分离,更为通用。
Clang是Apple基于LLVM开发的支持C/C /Object-C/Object-C 的编译器,特性是内存占用小(GCC的13%)、速度快(GCC的2.5X),现在是Apache默认推荐的C/C 编译器。
Halide是基于LLVM的图像算法编译器,其创新在于将“计算表达”与“计算过程”分离,由此可针对“计算过程”进行加速优化。其IR语言为HalideIR,TVM使用了HalideIR。
TVM的创新在于将LLVM的架构思想应用到DL领域,其TVM Relay更宣称将过去DL优化方式由”针对图计算方式”转化为”针对函数级别优化”,能够利用过去几十年的编译器优化经验对DL的计算进行优化。
注2:TVM与LLVM、NVCC等编译器的接口?
IR是TVM与其他编译器的接口,也就是说TVM并不直接负责Target Bin文件的生成。又因为TVM采用JIT编译模式(平台无关性代码通常选择采用动态编译再执行的方式,这样既可以保持平台无关性,又能充分利用本地处理器指令性能),TVM运行依赖于TVMRuntime文件。