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





