TVM
文章平均质量分 69
free1993
这个作者很懒,什么都没留下…
展开
-
AutoSchedule和AutoTVM
简介AutoTVM用户自己手写一个模版,在模版里面自己定义一下tune的参数,例如tile size等。给定一个模版,在这个模版里面去搜索参数,使得可以达到一组最好的参数使得张量计算的结果最好。但是,它是一种基于模板的方法,因此仍然需要领域专家为每个平台上的每个算子实现一个性能比较好的模板。今天,TVM 代码库中有超过 15,000 行这些模板的代码。除了非常难以开发之外,这些模板通常效率低下且搜索空间有限,无法实现最佳性能。Auto Schedule : Template-free Auto Sch原创 2021-07-19 17:00:46 · 1186 阅读 · 0 评论 -
TVM简介
整体架构从开发者在不同深度学习开放平台上所撰写的代码,到最终在不同硬件平台上执行,这其中存在着不小的差距。深度学习框架更多关注开发者的便捷性,而硬件设备更注重能耗和效率。TVM/NNVM,定位于开源的深度学习编译器技术栈(open deep learning compiler stack),整体目的就是缩小这两者之间的差距。需要注意的是,无论是深度学习框架还是硬件设备,两者都具有高度的多样性,倘若一对一的进行优化和编译,工作量会由于组合爆炸而激增。为此,TVM/NNVM借用了在CPU架构中常用的编程语言原创 2020-12-12 18:34:25 · 9698 阅读 · 0 评论 -
TVM自定义算子+测试
TVM自定义算子定义算子编译器后端算子的测试变量的声明调用底层算子部署到特定硬件上运行全部代码定义算子TVM分为编译器前端和编译器后端。编译器前端主要解决的事情是将其他框架(pytorch等)转换成自己的symbolic的表示方式,所有的基本操作都会转换成sym.基本算子的形式,然后通过注册的形式,使得sym.基本算子调用后端的算子实现。编译器后端的算子实现分为两部分,第一部分是compute的部分,compute定义了基本的计算规则,schedule定义了基本计算规则在不同的硬件上的实际执行的方式。原创 2020-09-17 10:14:57 · 2507 阅读 · 2 评论