TVM代码生成(CodeGen)
发布时间
阅读量:
阅读量
TVM代码生成(codegen)
硬件后端开发方(如Intel、NVIDIA、ARM等)通常会提供诸如cuBLAS或cuDNN等内核库,以及大量常用的深度学习相关内核,或者提供包含图形引擎的框架实例,如DNNL或TensorRT,使用户能够以某种方式描述模型并实现高性能计算。此外,一些新兴的深度学习加速器也配备了专属的编译器、内核库或运行时框架。
当用户希望在新的内核库或设备上进行开发时,需要掌握全新的编程接口。因此,对统一编程接口的需求日益凸显,旨在让所有用户与硬件后端开发方保持一致的理解与操作。
为实现与广泛使用的深度学习框架共享编程接口的目标,许多硬件设备供应商尝试将自身的后端集成至TensorFlow中。然而由于TensorFlow并未为新后端提供正式的接口支持,必须通过破解其源码来完成注册操作,这涉及对大量源文件进行修改,并导致后续维护工作变得复杂且困难。
本文展示了作为硬件后端提供者如何便捷地利用自带代码生成(BYOC)框架,将硬件设备的内核库、编译器或运行时框架整合进TVM中。BYOC框架的关键优势在于:设备相关的所有源文件均具有独立性,并可被插入到TVM代码库中。这意味着:
1)基于代码源构建的TVM代码库可以实现上游兼容;
2)TVM用户可根据自身需求选择是否启用特定的代码源/运行时模块。
本文其余部分首先阐述在何种情况下可能需要使用带
全部评论 (0)
还没有任何评论哟~
