买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】降低神经网络推理所需内存占用量的重计算方法和系统_之江实验室_202311278523.8 

申请/专利权人:之江实验室

申请日:2023-10-07

公开(公告)日:2024-03-12

公开(公告)号:CN117009093B

主分类号:G06F9/50

分类号:G06F9/50;G06N5/04;G06N3/063

优先权:

专利状态码:有效-授权

法律状态:2024.03.12#授权;2023.11.24#实质审查的生效;2023.11.07#公开

摘要:降低神经网络推理所需内存占用量的重计算方法和系统,包括:通过神经网络模型的计算图构建有向无环图;基于有向无环图,获得重计算对集合;对重计算对集合进行幂集操作。根据幂集中的每一个元素,对图进行附加属性得到对应的图;基于图,进行涉及重计算策略的调度算法;在全部的调度结果中,选择内存占用量最低的调度。在边缘设备智能性的需求逐渐加重的背景下,边缘设备的运行内存十分宝贵的场景下,本发明以增加额外计算代价的方式获得神经网络推理时更小的内存占用量,对边缘智能的普适性有着贡献。

主权项:1.降低神经网络推理所需内存占用量的重计算方法,包括以下步骤:(1)通过神经网络模型的计算图构建有向无环图;(2)基于有向无环图,获得重计算对集合;所述的获得重计算对集合包括以下子步骤:(2.1)获得图中所有分支算子构成的集合,当一个算子的输出张量被大于1个算子使用时被叫做分支算子;(2.2)定义单链为图中的一条线性节点构成的结构,除最后一个节点外其余的节点的入度和出度都为1;(2.3)对于该集合中的每个分支算子,寻找所有满足第一个节点的输入张量的内存占用量小于分支算子的输出张量内存占用量的单链;设的输出张量为,单链的第一个节点的输入张量为,获得重计算对为,重计算路径为;由所有获得的重计算对和相应的单链构成重计算表;(3)对重计算对集合进行幂集操作,根据幂集中的每一个元素,对图附加属性得到对应的图;所述的根据幂集中的每一个元素,对图附加属性得到图,通过以下子步骤来实现的:(3.1)对图中每个张量,设置属性为以该张量为输入的算子个数;(3.2)对中的每一对重计算,设置的属性为真,设置的属性为真;对中所有算子的输入张量的值增加以为输入张量的算子数-1;(3.3)对于,除去第一个算子,其余算子的输入张量的属性设置为真;(3.4)基于上述步骤,得到元素对应的图;(4)基于图进行涉及重计算策略的调度算法,在全部的调度结果中,选择内存占用量最低的调度,具体包括以下子步骤:(4.1)对于一个,初始为[],为的输入张量,为,为预设最大值,为图当前属性的编码,状态表;所提的编码操作为:将此时刻在中的张量编号,和每个张量的属性记录下来,构成一个元组;编码的结果,称为一个状态,作为状态表的键;(4.2)获得中的所有项,清空状态表;(4.3)对于所有项中的每一项,对该的键进行解码;所提的解码操作为:由编码操作产生的元组,还原得到该状态下和每个张量的属性;(4.4)基于还原后的值和获得下一步执行算子的备选集合;此处的获得方法:除去在内存中的张量,剩余算子中入度为0的算子;同时该算子的输出张量不应与在中的张量相同,且输出张量的属性不为0;(4.5)如果集合为空,则说明该状态已经完成一次推理,此时进行判断若小于,更新;(4.6)若集合不为空,则说明该状态输出一次推理的中间过程;对于集合中的每一个算子:,的输出张量;(4.7)对的输入张量进行判断是否可以释放:对的每一个输入张量的属性-1,如果的所有属性都不为真且属性为0、或的属性为真、或属性为真、或的属性为真且属性为0,则可释放该的内存占用;,并从移除;对新的属性进行编码,得到;(4.8)判断是否在中,若在则判断与的值,若小于即更新该项;若不在中,则在中添加该状态;恢复子步骤(4.3)中解码的状态,重复子步骤4.6至子步骤(4.8)直至每一个都执行完毕;(4.9)如果为空,得到的为最小的内存占用量,为涉及重计算的相应的最优调度;若不为空,则重复子步骤4.2至子步骤4.9的过程;(4.10)在每个的调度结果中,选择值最小对应的作为该模型的推理时的调度。

全文数据:

权利要求:

百度查询: 之江实验室 降低神经网络推理所需内存占用量的重计算方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。