[发明专利]计算图的图编译方法、装置、设备及存储介质有效
申请号: | 202010103996.4 | 申请日: | 2020-02-20 |
公开(公告)号: | CN111338635B | 公开(公告)日: | 2023-09-12 |
发明(设计)人: | 张亚霏 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N3/04 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 祝亚男 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 编译 方法 装置 设备 存储 介质 | ||
1.一种计算图的图编译方法,其特征在于,用于编译深度学习的计算图,所述方法包括:
获取输入的所述计算图,所述计算图包括至少两层节点,相邻两层节点中存在数据流动方向的节点之间连接有有向边,所述至少两层节点中存在目标节点;
对所述计算图进行图改写,得到优化后的计算图;
对于所述优化后的计算图,生成所述目标节点的前向计算序列;
对所述前向计算序列中的各个节点进行算子代码编译,得到所述前向计算序列的第一算子代码;
输出所述目标节点的所述前向计算序列和所述第一算子代码;
其中,所述计算图中包括:第一目标节点和第二目标节点;
所述对所述计算图进行图改写,得到优化后的计算图,包括:
响应于所述第一目标节点和所述第二目标节点存在相同的子图且所述子图中的节点数大于阈值,保留所述第一目标节点对应的第一子图,删除所述第二目标节点对应的第二子图与所述第一子图的差集;
将所述第二目标节点的后续节点的输入修改为所述第一子图的输出,得到所述优化后的计算图。
2.根据权利要求1所述的方法,其特征在于,所述对所述计算图进行图改写,得到优化后的计算图,还包括:
响应于所述目标节点的子图属于第一类型,将属于所述第一类型的子图重写为属于第二类型的子图,得到所述优化后的计算图;
其中,所述第一类型的子图和所述第二类型的子图具有相同的计算结果,且所述第二类型的子图的计算性能优于所述第一类型的子图的计算性能。
3.根据权利要求1所述的方法,其特征在于,所述对所述前向计算序列中的各个节点进行算子代码编译,得到所述前向计算序列的第一算子代码,包括:
对所述前向计算序列中的各个节点,根据各个节点的节点类型采用即时编译器进行即时编译,得到所述节点对应的算子代码;
根据所述各个节点对应的算子代码,得到所述前向计算序列的第一算子代码。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述计算图中的变量节点直接或者间接到达的节点进行标记;
将所述前向计算序列进行反转,得到第一后向计算序列;
将所述第一后向计算序列中未被标记的节点进行删除,得到第二后向计算序列;
对所述第二后向计算序列中的各个节点进行算子代码编译,得到所述第二后向计算序列的第二算子代码;
输出所述目标节点的所述第二后向计算序列和所述第二算子代码。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照所述目标节点在所述计算图中的相对顺序,对所述计算图中的各个目标节点的所述前向计算序列进行合并,得到上下文前向计算序列;
对所述上下文前向计算序列进行前向计算。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
为所述上下文前向计算序列中的各个节点的输出张量,分配第一内存空间。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
按照所述目标节点在所述计算图中的相对顺序,对所述计算图中的各个目标节点的所述第二后向计算序列进行合并,得到上下文后向计算序列;
对所述上下文后向计算序列进行后向计算。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
为所述上下文后向计算序列中的各个节点的输出梯度,分配第二内存空间。
9.根据权利要求1所述的方法,其特征在于,所述计算图包括:用于进行图像处理的深度学习模型对应的第一计算图、用于进行语音或音频处理的深度学习模型对应的第二计算图、用于进行自然语言处理的深度学习模型对应的第三计算图、用于进行互联网数据预测的深度学习模型对应的第四计算图中的任意一种。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010103996.4/1.html,转载请声明来源钻瓜专利网。