[发明专利]一种用于执行神经网络运算的装置有效
申请号: | 201911058910.4 | 申请日: | 2018-09-13 |
公开(公告)号: | CN110689126B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 陈天石;刘少礼;王在;胡帅 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/0464;G06N3/084;G06F9/38 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 神经网络 运算 装置 | ||
1.一种用于执行神经网络运算的装置,其特征在于,包括片上互联模块和与该片上互联模块通信连接的多个神经网络处理模块,其中:
所述神经网络处理模块能够通过所述片上互联模块从其它神经网络处理模块中读写数据;
所述神经网络处理模块包括:存储单元、寄存器单元和向量运算单元;
所述存储单元,用于存储向量;
所述寄存器单元,用于存储向量地址;
运算单元,用于获取向量运算指令,根据向量运算指令在所述寄存器单元中获取向量地址,根据该向量地址在存储单元中获取相应的向量,根据获取的向量进行向量运算,得到向量运算结果;
所述运算单元包括:一个主运算单元和多个从运算单元,
所述主运算单元,用于将一个输入数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述多个从运算单元;
所述多个从运算单元,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述主运算 单元;
所述主运算单元,用于将多个从运算单元发送的中间结果进行处理得到该运算指令的结果,将该运算指令的结果发送给控制单元;所述运算单元还包括:分支处理电路;其中,
主运算单元与分支处理电路物理连接,分支处理电路与多个从运算单元物理连接;
分支处理电路,用于执行转发主运算 单元与从运算单元之间的数据或指令。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:外部存储模块;所述外部存储模块与所述片上互联模块通信连接,所述神经网络处理模块通过所述片上互联模块从所述外部存储模块中读写数据。
3.根据权利要求1-2任意一项所述的装置,其特征在于,所述向量运算指令包括:
向量内积指令,根据该指令,装置分别从存储器的指定地址取出指定大小的向量数据,在向量计算单元中将两向量进行内积运算,并将结果写回;
向量外积指令,根据该指令,装置分别从存储器的指定地址取出指定大小的向量数据,在向量计算单元中将两向量进行外积运算,并将结果写回;
向量四则运算包括:向量加标量指令,根据该指令,装置从存储器的指定地址取出指定大小的向量数据,从存储器标量寄存器的指定地址取出标量数据,在标量运算单元中将向量的每一个元素加上该标量值,并将结果写回并将结果写回;
标量减向量指令,根据该指令,装置从存储器标量寄存器的指定地址取出标量数据,从存储器的指定地址取出向量数据,在向量计算单元中用该标量减去向量中的相应元素,并将结果写回并将结果写回;
向量除法指令,根据该指令,装置从存储器的指定地址取出分别取出指定大小的向量数据,在向量运算单元中将两向量对位相除,并将结果写回并将结果写回;
标量除向量指令,根据该指令,装置从存储器标量寄存器的指定位置取出标量数据,从存储器的指定位置取出指定大小的向量数据,在向量计算单元中用标量分别除以向量中的相应元素,并将结果写回并将结果写回;
向量逻辑指令,包括:
向量间与指令,根据该指令,装置从存储器的指定地址取出分别取出指定大小的向量数据,在向量运算单元中将两向量对位相与,并将结果写回并将结果写回;
向量内与指令,根据该指令,装置从存储器的指定地址取出指定大小的向量数据,在向量运算单元中向量中每一位相与,并将结果写回并将结果写回;
向量间或指令,根据该指令,装置从存储器的指定地址取出分别取出指定大小的向量数据,在向量运算单元中将两向量对位相或,并将结果写回并将结果写回;
向量内或指令,根据该指令,装置从存储器的指定地址取出指定大小的向量数据,在向量运算单元中向量中每一位相或,并将结果写回并将结果写回;
超越函数指令,根据该指令,装置从存储器的指定地址取出指定大小的向量数据,在运算单元中对向量数据做超越函数运算,并将结果写回并将结果写回;
向量比较运算指令,包括
大于等于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的寄存器存储器的编号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值大于等于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回至存储器的指定存储地址;
小于等于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编号寄存器号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值小于等于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回到存储器值的指定存储地址;
大于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编号寄存器号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值大于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回值到存储器的指定存储地址;
小于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编号寄存器号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值小于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回到存储器值的指定存储地址;
等于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编号寄存器号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值等于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回值到存储器的编号的指定存储地址;
不等于运算指令,根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编号寄存器号来获得指令的参数,包括向量的长度、两向量的起始地址以及输出向量的存储地址,然后读取两向量数据,在向量比较运算单元中对向量中所有位置上的元素进行比较,若某位置行前一向量的值不等于后一向量的值,则将比较结果向量在该位置上的值置为1,否则置为0,最后将比较结果写回值到存储器的指定存储地址;
向量最大值指令,根据该指令,装置从存储器高速暂存存储器的指定地址取出指定大小的向量数据,从中选出最大的元素作为结果,并将结果写回并将结果写回;
向量最小值指令,根据该指令,装置从存储器高速暂存存储器的指定地址取出指定大小的向量数据,从中选出最小的元素作为结果,并将结果写回并将结果写回;
循环移位运算指令:根据该指令,装置可以直接从指令中或者通过访问指令提供的存储器的编寄存器号来获得指令的参数,然后在向量移位单元中进行循环移位移位,并将移位后的结果写回至存储器高速暂存存储器的指定存储地址;
随机向量生成指令,根据该指令,装置从指令或从存储器寄存器中读取一个或多个随机分布参数,以及要生成的随机向量的大小和存储地址,然后在随机向量生成单元中生成服从随机分布的随机向量,并将生成的随机向量结果写回至指定的存储器的存储地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911058910.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:计算装置
- 下一篇:神经网络结构模型搜索方法、装置及存储介质