auto-schedule 机制
时间: 2023-10-21 14:04:40 浏览: 139
引用中提到,TVM中的auto-schedule机制是指TVM编译器根据给定的计算自动产生高性能的算子实现的机制。它的核心思想是找到好的调度(Schedule)来优化计算的性能。auto-schedule机制在TVM中有两个版本,分别是AutoTVM和Ansor。
AutoTVM是TVM中最早一代的auto-schedule机制。它需要用户手动编写调度(Schedule)的模板,并留出一些可供调整的参数。然后AutoTVM通过搜索这些参数的不同取值来找到最优的调度。虽然AutoTVM在性能上有很大的提升,但编写调度模板仍需要一些领域知识和时间成本。
Ansor是TVM中的第二代auto-schedule机制,也被称为AutoTVM 2.0。与AutoTVM不同的是,Ansor不需要用户手动编写调度模板,而是通过规则的形式将专家经验实现在代码中,实现了自动化,降低了使用门槛。Ansor通过层次化搜索设计,扩大了搜索空间,并可能找到性能更好的调度。同时,Ansor还通过进化算法和基于机器学习的cost model使搜索更高效。此外,Ansor还使用更智能的任务调度,使得性能收益更大的子图任务得到更充分的优化。相比于AutoTVM,Ansor的搜索时间已经大大减少,但由于搜索空间仍然很大,进一步减少搜索时间仍然是一个研究的方向。
综上所述,auto-schedule机制是TVM中的一种自动化调度机制,它通过搜索和优化调度来提高计算的性能。AutoTVM和Ansor都是TVM中的auto-schedule机制的不同版本,其中Ansor相比于AutoTVM在易用性、schedule质量和搜索效率上有所改进。
阅读全文