[发明专利]一种面向神经网络计算的内存优化方法和装置有效
申请号: | 202211177786.5 | 申请日: | 2022-09-27 |
公开(公告)号: | CN115269205B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 王宏升;陈光 | 申请(专利权)人: | 之江实验室 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/02;G06N3/04 |
代理公司: | 北京志霖恒远知识产权代理有限公司 11435 | 代理人: | 戴莉 |
地址: | 311121 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 神经网络 计算 内存 优化 方法 装置 | ||
本发明公开了一种面向神经网络计算的内存优化方法和装置,包括以下步骤:步骤S1:将计算图重构为拓扑结构计算图;步骤S2:构建关于张量变量的生命周期区间;步骤S3:构建关于生命周期区间的扫描线;步骤S4:将张量变量分配到空闲寄存器;步骤S5:分配给超出寄存器需求数量的张量变量;步骤S6:将已过期的所述生命周期区间所分配的寄存器分配给超出寄存器需求数量的张量变量;步骤S7:将转移到内存中的张量变量添加回处于激活状态的所述生命周期区间并为其分配空闲寄存器。本发明优化用于神经网络计算的计算图的数据流的内存,减少数据流中张量变量所需的内存开销,降低大模型对于硬件内存资源的要求。
技术领域
本发明涉及一种基于特定计算模型的计算机系统技术领域,尤其涉及一种面向神经网络计算的内存优化方法和装置。
背景技术
随着工业界复杂场景对大规模神经网络应用的需求越来越紧迫,大模型对于内存空间的占用不断增大,人工智能硬件操作系统自身的内存资源不能满足大模型训练对于内存的需求,所以优化面向神经网络计算的内存技术变得极为重要。
为此,我们提出一种面向神经网络计算的内存优化方法和装置。
发明内容
本发明的目的在于提供一种面向神经网络计算的内存优化方法和装置,解决了如何优化减少了张量变量对于深度学习操作系统内存资源的持久依赖和占用,减少数据流中张量变量所需的内存开销,降低了大模型对于硬件内存资源的要求的问题。
本发明采用的技术方案如下:
一种面向神经网络计算的内存优化方法,包括以下步骤:
步骤S1:将计算图重构为拓扑结构计算图;
步骤S2:构建关于张量变量的生命周期区间;
步骤S3:构建关于生命周期区间的扫描线;
步骤S4:将张量变量分配到空闲寄存器;
步骤S5:将最远终点的所述生命周期区间对应张量变量的寄存器分配给超出寄存器需求数量的张量变量;
步骤S6:将已过期的所述生命周期区间所分配的寄存器分配给超出寄存器需求数量的张量变量;
步骤S7:将转移到内存中的张量变量添加回处于激活状态的所述生命周期区间并为其分配空闲寄存器。
进一步地,所述步骤S1具体包括以下子步骤:
步骤S11:后序顺序遍历计算图,得到子图访问列表;
步骤S12:逆序后序所述子图访问列表,得到计算图的拓扑结构顺序;
步骤S13:根据所述拓扑结构顺序重构计算图,得到拓扑结构计算图。
进一步地,所述后序顺序为当访问所述计算图的某个节点时,则优先递归地访问所述节点的后继节点。
进一步地,所述步骤S2具体为构建关于每个节点中包含张量变量的生命周期区间,所述节点包含的张量变量对应的关于生命周期区间起始于所述张量变量处于存活状态的第一个节点的位置,终止于所述张量变量处于存活状态的最后一个节点的位置。
进一步地,所述步骤S3具体为在所述拓扑结构计算图的起始节点处,构建一条与所述生命周期区间平行的扫描线,所述扫描线用于从所述生命周期区间的起始端向所述生命周期区间的终止端移动过程中,观察是否存在空闲寄存器可以分配给数据流执行过程中的张量变量。
进一步地,所述步骤S5具体为执行流位于某个节点的位置时,当所述节点既没有空闲寄存器,也没有可以从处于激活状态的所述生命周期区间中移除的已经被扫描过期的所述生命周期区间,则将最远终点的所述生命周期区间对应的张量变量所分配的寄存器中的张量变量转移到内存中,然后将所释放的寄存器分配给超出寄存器需求数量的张量变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于之江实验室,未经之江实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211177786.5/2.html,转载请声明来源钻瓜专利网。