赞
踩
没有看论文,看了b站陈天奇的视频,还有一些博客的分析,学习了优化原理。后续需要深入理解再看论文。
TVM对于神经网络的优化主要有两部分,计算图优化和算子优化,下面分开说明。
计算图优化
例如算子融合,常量传播等。这一步是在IR层面完成,现在TVM是使用relay IR来描述计算图。优化的过程蕴含在relay.build中,参考https://zhuanlan.zhihu.com/p/113962405
op算子优化
对于一个给定的计算问题,该如何映射到后端硬件上呢?tvm的方案是张量表达式,schedule + auto-tuning。对于一个给定的计算,会有很多种实现方式,每一种实现方式称为一个schedule。例如GEMM计算中,矩阵的分块大小,数据预取步长等等。我们要做的就是在所有schedule中,找到性能表现最好的schedule。
这里就有很多问题,比如给定的计算问题该怎么描述呢?对应的解决是TVM的张量表达式,可以更好的体现计算的数据特性。
再比如该如何确定出不同的schedule呢?
再比如,一个很重要的问题是,可能有billion量级的schedule,每个schedule都尝试的话,用时肯定是不可接受的。所以就有了autoTVM这样基于machine learning的搜索方式,可能使用GBDT来进行决策,减小搜索空间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。