TVM相关

TVM介绍

为解决深度学习框架和硬件后端适配问题,华盛顿大学的陈天奇等人提出了TVM.
TVM是一个端到端的全栈编译器,包括统一的IR堆栈和自动代码生成方法其主要功能是优化在CPU、GPU和其他定制AI芯片上执行的AI模型,通过自动转换计算图,实现计算模式的融合和内存利用率最大化,并优化数据布局,完成从计算图到算子级别的优化,提供从前端框架到AI芯片、端到端的编译优化。通过TVM,只需要花费少量工作即可在移动端、嵌入式设备上运行AI模型。

TVM和其他框架的对比:

Mobile Nrural Network:MNN是阿里开发的一个轻量级的深度神经网络推理引擎,可以方便地部署在移动端与嵌入式系统中,并在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。

NCNN:这是腾讯开发的一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。可以部署在linux上,不过系统必须是64位。

TVM:它旨在缩小以生产力为中心的深度学习框架与以性能和效率为重点的硬件后端之间的差距。 TVM与深度学习框架一起使用,以提供对不同后端的端到端编译。提供基于编译方法的跨平台部署神经网络方案

为什么需要TVM

虽然硬件厂商提供了硬件库函数实现新指令和算子对应的内核(如计算密集型内核),而且,这些库函数在预定义内核中也可以使用新指令实现高性能,但当涉及新的AI模型或需要进一步提高模型性能时,这种方法的灵活性显示不足,而且,算子和硬件算子库紧密耦合,导致算子不可分解(即算子的原子性),从而妨碍了算子的进一步优化,使其难以在硬件平台上高效执行。因此,更好的做法是通过TVM的定制化处理,使新指令和算子易于集成和使用,并可以复用TVM现有的分析和转换Pass完成编译任务。

posted @ 2023-02-19 21:49  牛犁heart  阅读(191)  评论(0编辑  收藏  举报