2019~2021年,“摩尔定律失效”这一关键词频频出现于各大技术网站,在此背景下,市面上多如牛毛的AI芯片公司不约而同地给出了通用CPU+专用ASIC芯片的方案,以应对日益增长的AI边、端侧推理计算需求。在AI DSA芯片的开发实践中,棘手的问题除了底层硬件的设计,更多的还是AI模型在DSA芯片上优化、部署执行这一过程所需软件栈的实现,也即“AI编译器”技术栈,在这一领域最常常被大家提起并衡短论长的,莫过于TVM和MLIR。
严格来说,MLIR和TVM并不适合在一起对比:TVM是面向深度学习的模型编译器,用户可借此可直接获得编译/优化模型为推理blob的能力(可以看做机器学习时代的GCC、Clang),有兴趣了解TVM的同学可以参考这里;MLIR则是编译器基础设施类软件(可以看做机器学习时代的LLVM),面向的是需要构建自定义编译器的用户,它的基本设想是通过MLIR的Dialect共享生态减少用户开发编译器的工作量。

以上图为例,TensorFlow本身的优化推理过程如蓝色和绿色部分所示:TensorFlow Graph首先转换为XLA的HLO IR,应用XLA的优化Pass后再lower到目标设备的IR,例如对于x86/arm可lower为LLVM IR等,这样做的问题在于:
-
XLA的图优化Pass是封闭的,用户如果

本文探讨了面向ASIC设备的编译器框架TVM和MLIR的差异。TVM是一个深度学习模型编译器,而MLIR是编译器基础设施,旨在减少自定义编译器的开发工作。TVM在支持高层模型和硬件优化上有完备的工具链,如VTA,但硬件设计受限于其ISA。MLIR提供更灵活的编译器框架,但硬件设计支持尚处于发展阶段。两者在DSA芯片开发中的选择,取决于团队对硬件设计自由度和编译优化的需求。
最低0.47元/天 解锁文章
6109

被折叠的 条评论
为什么被折叠?



