[发明专利]一种用于计算图编译的优化方法及装置有效
| 申请号: | 202211177796.9 | 申请日: | 2022-09-27 |
| 公开(公告)号: | CN115268936B | 公开(公告)日: | 2022-12-27 |
| 发明(设计)人: | 王宏升;何水兵;陈光 | 申请(专利权)人: | 之江实验室 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F5/08 |
| 代理公司: | 北京志霖恒远知识产权代理有限公司 11435 | 代理人: | 戴莉 |
| 地址: | 311121 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 计算 编译 优化 方法 装置 | ||
1.一种用于计算图编译的优化方法,其特征在于,包括以下步骤:
步骤S1:将计算图转换为基于包含有效张量变量的节点集合的中间表示;
步骤S11:将包含有效张量变量的计算图的节点表示为:由张量变量的定义和使用张量变量的表达式组成的等式;
步骤S12:定义所述计算图的节点关于包含有效张量变量节点的输入节点集合,所述输入节点集合为所述计算图的节点的所有前驱节点的并集;
步骤S13:定义所述计算图的节点关于包含有效张量变量节点的输出节点集合,所述输出节点集合为所述输入节点集合移除重定义有效张量变量的节点集合,然后再与有效张量变量的节点位置包含有效张量变量的节点集合取并集;
步骤S14:获取中间表示的包含有效张量变量节点的集合需要迭代地推导每个节点包含有效张量变量的节点,直至所有节点的所述输入节点集合和所述输出节点集合不再变化,达到固定节点,将达到固定节点的集合定义为所述基于包含有效张量变量的节点集合的中间表示;
步骤S2:分析所述计算图中节点之间的依赖关系;
步骤S3:构建保存待处理节点的工作栈;
步骤S4:初始化所述工作栈中包含的节点元素为未激活状态;
步骤S5:所述工作栈弹出栈顶节点元素,利用所述步骤S2的依赖关系推导栈顶节点元素的输入节点集合,并更新当前轮迭代所得的栈顶节点元素的输入节点集合;
步骤S6:将依赖所述步骤S5的栈顶节点的元素依次添加到栈顶位置,并更新当前工作栈,重复所述步骤S5,直到工作栈清空为止;
步骤S7:采用位向量实现达到不动点状态的中间表示;
步骤S8:为达到不动点状态的中间表示的节点包含的有效张量变量分配寄存器。
2.如权利要求1所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S2具体为:分析推导所述计算图的各节点之间的输入节点集合之间的关系。
3.如权利要求1所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S3具体为:按照拓扑顺序遍历所述计算图,依次将所述计算图中的节点压入工作栈中。
4.如权利要求1所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S4具体为:将还未开始执行的所述计算图的各个节点初始化为未激活状态。
5.如权利要求1所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S5具体包括以下子步骤:
步骤S51:工作栈弹出栈顶节点元素,即将工作栈的栈顶节点元素弹出栈;
步骤S52:利用所述步骤S2的依赖关系将被弹出所述栈顶节点元素的输入节点集合添加到所述工作栈并更新当前轮迭代所得的栈顶节点元素的输入节点集合。
6.如权利要求1所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S7具体为:将所述计算图的中间表示中各个节点的输入节点集合达到不动点状态时所包含的节点元素映射为1,其他节点元素映射为0。
7.如权利要求6所述的一种用于计算图编译的优化方法,其特征在于,所述步骤S8具体为:将为步骤7中输入节点集合达到不动点状态时所包含的节点元素映射为1的节点所包含的张量变量分配空闲寄存器。
8.一种用于计算图编译的优化装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-7中任一项所述的一种用于计算图编译的优化方法。
9.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-7中任一项所述的一种用于计算图编译的优化方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于之江实验室,未经之江实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211177796.9/1.html,转载请声明来源钻瓜专利网。





