神经网络处理装置及其执行向量点积指令的方法制造方法及图纸

技术编号:19903015 阅读:33 留言:0更新日期:2018-12-26 02:47
本发明专利技术提供一种处理装置,包括:存储器、寄存器单元、运算单元和控制单元;存储器存储向量;寄存器单元存储向量点积指令,控制单元获取向量点积指令,解析所述向量点积指令得到操作码和操作域;根据所述操作码从存储器中获取参与运算数据;运算单元对参与运算向量点积的数据进行向量点积运算。本发明专利技术提供的技术方案具有功耗低、计算开销小的优点。

【技术实现步骤摘要】
神经网络处理装置及其执行向量点积指令的方法
本专利技术涉及通信
,具体涉及一种神经网络处理装置及其执行向量点积指令的方法。
技术介绍
现代的通用和专用处理器中,越来越多地引入计算指令(例如向量指令)进行运算。向量指令是使处理器进行向量或者矩阵运算的指令,例如向量的加减、向量的内积、矩阵乘法、矩阵卷积等。向量指令中至少有一个输入为向量或者矩阵或运算结果是向量或矩阵。向量指令可以通过调用处理器内部的向量处理部件来进行并行计算,提高运算速度。现有的向量指令中,其操作数或结果中的向量或矩阵一般是固定规模的,例如ARM处理器中的向量扩展结构Neon中的向量指令一次可以处理长为4的32位浮点向量或者长为8的16位定点向量。所以现有的向量运算指令无法实现可变规模的向量或矩阵的运算。另一方面,神经网络作为一个高计算量和高访存的算法,权值越多,计算量和访存量都会增大。为了减小计算量和权值数量,从而降低访存量,因此提出了稀疏神经网络。稀疏神经网络的定义为:在神经网络中,值为0的权值的数目很多,并且值为非0的权值分布没有规律,则称该神经网络为稀疏神经网络。定义权值为0的元素数量与神经网络所有权值元素本文档来自技高网...

【技术保护点】
1.一种处理装置,用于根据向量点积指令执行运算,其特征在于,所述处理装置包括:存储器、运算单元、控制单元和寄存器单元;所述寄存器单元,用于存储向量点积指令;所述向量点积指令包括操作码和操作域,所述操作码用于指示进行向量点积运算;所述操作域包括所述参与向量点积运算的数据的首地址和所述参与向量点积运算的数据中部分数据或者全部数据的索引的地址;所述存储器,用于存储所述参与运算向量点积的数据;所述控制单元,用于从所述寄存器单元中获取所述向量点积指令,解析所述向量点积指令,以得到所述操作码和操作域;根据所述操作域从所述存储器中获取所述参与向量点积运算的数据和所述参与运算的数据中部分数据或者全部数据的索引...

【技术特征摘要】
1.一种处理装置,用于根据向量点积指令执行运算,其特征在于,所述处理装置包括:存储器、运算单元、控制单元和寄存器单元;所述寄存器单元,用于存储向量点积指令;所述向量点积指令包括操作码和操作域,所述操作码用于指示进行向量点积运算;所述操作域包括所述参与向量点积运算的数据的首地址和所述参与向量点积运算的数据中部分数据或者全部数据的索引的地址;所述存储器,用于存储所述参与运算向量点积的数据;所述控制单元,用于从所述寄存器单元中获取所述向量点积指令,解析所述向量点积指令,以得到所述操作码和操作域;根据所述操作域从所述存储器中获取所述参与向量点积运算的数据和所述参与运算的数据中部分数据或者全部数据的索引;并将所述参与向量点积运算的数据传输至所述运算单元;所述运算单元,用于对所述参与向量点积运算的数据进行向量点积运算。2.根据权利要求1所述的处理装置,其特征在于,当所述向量点积指令为第一向量点积指令时,所述操作码用于指示进行第一向量点积运算,所述操作域包括:稀疏向量X7的索引表示方式、稀疏向量X7中元素的首地址、稀疏向量X7的索引的首地址、向量Y7中元素的首地址和第五标量的首地址;所述根据所述操作域获取参与运算的数据,包括:根据所述稀疏向量X7中元素的首地址获取所述稀疏向量X7;根据所述向量Y7中元素的首地址获取所述向量Y7;根据所述向量X7的索引的首地址获取所述向量X7的索引;根据所述稀疏向量X7的索引表示方式和所述稀疏向量X7的索引对所述向量Y7中的元素进行筛选,以得到稀疏向量Y7;所述根据所述操作码对应的运算方式对所述参与运算的数据进行运算,包括:对所述稀疏向量X7和稀疏向量Y7进行向量点积运算,以得到点积运算结果,并将所述点积运算结果存储至所述第五标量的首地址对应的存储空间中。3.根据权利要求2所述的处理装置,其特征在于,所述操作域还包括:稀疏向量X7中元素的个数、向量Y7中元素的个数和向量Y7中元素之间的地址间隔;所述根据所述稀疏向量X7中元素的首地址获取所述稀疏向量X7,包括:根据所述稀疏向量X7中元素的首地址和所述稀疏向量X7中元素的个数获取所述稀疏向量X7;所述根据所述向量Y7中元素的首地址获取所述向量Y7,包括:根据所述向量Y7中元素的首地址、所述向量Y7中元素的个数和所述向量Y7中元素之间的地址间隔获取所述向量Y7。4.根据权利要求1所述的处理装置,其特征在于,当所述向量点积指令为第二向量点积指令时,所述操作码用于指示进行第二向量点积运算,所述操作域包括:稀疏向量sX7的索引表示方式、稀疏向量sX7中元素的首地址、稀疏向量sX7的索引的首地址、稀疏向量sY7中元素的首地址、稀疏向量sY7的索引的首地址和第五标量的首地址;所述根据所述操作域获取参与运算的数据,包括:根据所述稀疏向量sX7中元素的首地址和稀疏向量sX7中元素的首地址分别获取所述稀疏向量sX7和稀疏向量sY7;根据所述稀疏向量sX7的索引的首地址和稀疏向量sY7的索引的首地址分别获取所述稀疏向量sX7的索引和稀疏向量sY7的索引;根据所述稀疏向量sX7的索引表示方式、所述稀疏向量sX7的索引和所述稀疏向量sY7的索引得到第一中间索引;根据所述第一中间索引对所述稀疏向量sX7和稀疏向量sY7中的元素进行筛选,以得到筛选后的稀疏向量sX7和筛选后的稀疏向量sY7;所述根据所述操作码对应的运算方式对所述参与运算的数据进行运算,包括:对所述筛选后的稀疏向量sX7和筛选后的稀疏向量sY7进行向量点积运算,以得到点积运算结果,并将所述点积运算结果存储至所述第五标量的首地址对应的存储空间中。5.根据权利要求4所述的处理装置,其特征在于,所述操作域还包括所述稀疏向量sY7的索引表示方式;所述根据所述操作域获取参与运算的数据,还包括:在获取所述稀疏向量sX7及其索引和所述稀疏向量sY7及其索引之后,根据所述稀疏向量sX7的索引、所述稀疏向量sX7的索引表示方式、所述稀疏向量sY7的索引和所述稀疏向量sY7的索引表示方式,得到第二中间索引;所述第二中间索引对所述稀疏向量sX7和稀疏向量sY7中的元素进行筛选,以得到筛选后的稀疏向量sX7和筛选后的稀疏向量sY7。6.根据权利要求4或5所述的处理装置,其特征在于,所述操作域还包括:所述稀疏向量sX7中元素的个数和所述稀疏向量sY7中元素的个数;所述根据所述稀疏向量sX7中元素的首地址和所述稀疏向量sY7中元素的首地址分别获取所述稀疏向量sX7和所述稀疏向量sY7,包括:根据所述稀疏向量sX7中元素的首地址和所述稀疏向量sX7中元素的个数获取所述稀疏向量sX7;根据所述稀疏向量sY7中元素的首地址和所述稀疏向量sY7中元素的个数获取所述稀疏向量sY7。7.根据权利要求2-6任一项所述的处理装置,其特征在于,输入数据的索引表示方式包括:直接索引表示方式或步长索引表示方式;其中,所述输入数据包括所述稀疏向量X7、稀疏向量sX7或稀疏向量sY7;当所述输入数据的索引表示方式为直接索引表示方式时,所述输入数据的索引为由0和1组成的字符串,0表示所述输入数据中元素不满足预设条件,1表示所述输入数据中的元素满足所述预设条件,或者;当所述输入数据的索引表示方式为步长索引表示方式时,所述输入数据的索引为所述输入数据中满足所述预设条件的元素与上一个满足所述预设条件的元素之间的距离值组成的字符串;其中,所述预设条件为:所述输入数据中的元素的绝对值大于或者小于预设阈值。8.根据权利要求1-7任一项所述的处理装置,其特征在于,所述运算单元还包括向量加法电路、向量乘法电路、大小比较电路、非线性运算电路和向量标量乘法电路;所述运算单元为多流水级结构;其中,所述向量乘法电路和所述向量标量乘法电路处于第一流水级,所述大小比较电路和所述向量加法电路处于第二流水级,所述非线性运算部件处于第三流水级,其中所述第一流水级的输出数据为所述第二流水级的输入数据,所述第二流水级的输出数据为所述第三流水级的输入数据。9.根据权利要求1-8任一项所述的处理准直,其特征在于,所述控制单元还包括:指令存储单元,用于存储所述向量点积指令;指令处理单元,用于对所述向量点积指令进行解析,以得到所述操作码和操作域;存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个向量点积指令。10.根据权利要求9所述的处理装置,其特征在于,所述处理装置还包括:依赖关系处理单元,用于确定第s个向量点积指令与所述第s个向量点积指令之前的第s-1个向量点积指令是否存在关联关系,如所述第s个向量点积指令与所述第s-1个向量点积指令存在关联关系,将所述第s个向量点积指令缓存在所述指令存储单元内,在所述第s-1个向量点积指令执行完...

【专利技术属性】
技术研发人员:王秉睿周聖元张尧
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1