[发明专利]一种用于深度学习编译器中探索优化空间的加速方法有效
申请号: | 202110223874.3 | 申请日: | 2021-03-01 |
公开(公告)号: | CN112579063B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 潘秋红;何水兵;陈刚;杨弢 | 申请(专利权)人: | 之江实验室 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06N3/04;G06N3/08 |
代理公司: | 杭州浙科专利事务所(普通合伙) 33213 | 代理人: | 孙孟辉 |
地址: | 310023 浙江省杭州市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 深度 学习 编译器 探索 优化 空间 加速 方法 | ||
1.一种用于深度学习编译器中探索优化空间的加速方法,其特征在于包括如下步骤:
S1,对神经网络进行抽象,将其表示为计算图的形式;
S2,对计算图进行图优化;
S3,为优化后计算图中的每个算子定义优化空间,基于包含优化空间信息的算子,进行优化空间相似度计算;
S4,基于相似度的算子状态空间探索,基于相似度对算子进行聚类,对每一个聚类中的核心算子进行全空间探索,同类的其余算子在核心算子最优方案中进行探索,确定整个神经网络每个算子的优化方案,并根据硬件平台产生目标平台代码,包括如下步骤:
S41,计算算子的相似度矩阵;
S42,将相似度矩阵作为输入执行AP聚类,聚类后每个类的中心就是输入的一个算子;
S43,对于每个聚类的核心算子,探索该算子的完整优化空间,并在探索过程中保存推理时间最短的n个优化方案;
S44,对于每个聚类的非核心算子,遍历其依赖的核心算子探索出的n个最优方案;
S45,根据优化方案为每个算子生成目标平台代码,按照计算图中的顺序将算子代码部署到硬件上运行神经网络。
2.根据权利要求1所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S1中神经网络计算图表示方法,包括如下步骤:
S11,将深度学习框架中构造的神经网络映射到定义好的高级中间语言HIR上;
S12,基于高级中间语言分析每个算子的属性,并根据算子间的数据依赖关系构造计算图,构造的计算图是一个有向无环图,图中每个节点代表神经网络中的一个算子,图中的边表示算子间的数据依赖。
3.根据权利要求1所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S2中基于计算图的图优化方法,包括如下步骤:
S21,根据算子的计算类型进行算子融合,所述算子融合是将多个基本的算子组合为一个复合算子,不需存储中间结果;
S22,对算子融合后的计算图,根据硬件特性,进行数据布局优化;
S23,对数据布局优化后的计算图,进行并行算子合并。
4.根据权利要求3所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S21的具体内容,包括:首先构造支配树,然后遍历支配树中的节点,如果一个节点到其支配节点的这些节点满足了预先定义好的融合规则,就将这些算子融合为新的复合算子。
5.根据权利要求3所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S22的具体内容,包括:对于算子融合后的计算图中,首先判断是否输入时有指定的数据布局方案,如果有则直接应用指定方案,如果没有则根据硬件特征选择最优的数据布局方案,包括行优先存储或者列优先存储。
6.根据权利要求3所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S23的具体内容,包括:将多个共享同一输入的算子合并为更大的算子。
7.根据权利要求1所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述步骤S3中,将图优化后的计算图映射到LIR上,使用LIR进行表示,并定义每个算子的优化空间。
8.根据权利要求7所述的一种用于深度学习编译器中探索优化空间的加速方法,其特征在于所述算子进行多个维度的平铺以及多种循环展开优化,对所述算子的维度进行展开,所述维度原始长度为l,将其平铺为m个维度,则一共有k种平铺方案,以此类推,每一个优化操作选择方案数量为k,整个算子的优化空间就是所有优化操作方案数量的乘积。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于之江实验室,未经之江实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110223874.3/1.html,转载请声明来源钻瓜专利网。