[发明专利]基于常量数据包进行人工神经网络计算的方法、装置及计算机可读存储介质有效
申请号: | 202010246216.1 | 申请日: | 2020-03-31 |
公开(公告)号: | CN111461314B | 公开(公告)日: | 2022-12-20 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063 |
代理公司: | 北京维昊知识产权代理事务所(普通合伙) 11804 | 代理人: | 李波;孙新国 |
地址: | 100191 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 常量 数据包 进行 人工 神经网络 计算 方法 装置 计算机 可读 存储 介质 | ||
1.一种基于常量数据包进行人工神经网络计算的计算装置,所述常量数据包包括标签区及常量数据区,所述标签区包括常量数据标签,所述计算装置包括主机和设备,所述设备包括设备内存,其中:
主机,用以:
根据所述常量数据标签所记录的常量数据的大小,在所述设备内存上申请常量数据存放空间;其中,所述常量数据标签用于记录多个常量数据的空间大小;以及
将所述常量数据区内的多个常量数据一次性存储至所述常量数据存放空间;
将多个变量数据多次性拷贝至所述设备内存的输入数据存放空间;以及
设备,用以根据所述多个常量数据和所述变量数据,执行批量的人工神经网络计算;
其中,所述常量数据包括在神经网络计算过程中不会发生变化的神经网络模型参数和所述神经网络模型编译后获得的硬件指令,所述变量数据为在每次所述神经网络计算中不同的数据。
2.根据权利要求1所述的计算装置,其中所述主机还用于:
根据所述人工神经网络的数据节点与操作节点之间的连接关系,编译所述神经网络获得硬件指令。
3.根据权利要求1或2所述的计算装置,其中所述主机还用于:
封装所述常量数据和记录各常量数据的空间大小的标签,以形成常量数据包。
4.根据权利要求3所述的计算装置,其中所述主机还用于:
重排序所述多个常量数据;
根据所述多个常量数据的数据量,计算同类数据段的段内偏移量;
在所述常量数据包中回填所述段内偏移量;
其中,所述同类数据段为根据所述常量数据的名称确定的所述常量数据所属的数据段,所述数据段包括常量数据段、隐藏层数据段和输出入数据段。
5.根据权利要求4所述的计算装置,其中所述同类数据段包括常量数据段,所述主机在执行所述重排序步骤时,具体用以:
遍历计算模型中的全部数据节点,查找所述多个常量数据;以及
根据特定顺序,组成所述常量数据段,其中所述特定顺序为先指令后数据。
6.根据权利要求5所述的计算装置,其中所述常量数据包包括常量数据标签,所述主机在执行所述重排序步骤时,具体用以:
分别记录多个所述常量数据的数据量;以及
根据多个所述常量数据的数据量,计算所述多个常量数据的总数据量;
其中,所述常量数据标签包括所述多个常量数据的总数量。
7.根据权利要求5所述的计算装置,其中所述同类数据段还包括隐藏层数据段和/或输出入数据段,所述常量数据包包括隐藏层数据标签和/或输出入地址标签,所述主机执行所述重排序步骤时,还用以:
记录每个隐藏层数据节点的数据量,根据所述隐藏层数据节点的数据量,计算所有隐藏层数据节点的总数据量;其中,所述隐藏层数据标签包括所述所有隐藏层数据节点的总数据量;
设定所有输出入节点的数据量,计算所述所有输出入节点的总数据量;
其中,所述输出入地址标签包括所述所有输出入节点的总数据量。
8.根据权利要求4所述的计算装置,其中所述主机在执行计算步骤时,具体用以:
根据所述常量数据的数据量,计算所述常量数据段的段内偏移量。
9.根据权利要求4所述的计算装置,其中所述主机在执行所述回填步骤时,具体用以:
根据所述常量数据段的段内偏移量,将需要填入偏移量的指令位置记录在所述常量数据段的各数据节点中。
10.根据权利要求7所述的计算装置,其中所述主机执行所述计算步骤时,还用以:
根据所述隐藏层数据节点的数据量,计算所述隐藏层数据段的段内偏移量;
根据所有输出入节点的数据量,计算所述输出入地址段的段内偏移量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010246216.1/1.html,转载请声明来源钻瓜专利网。