[发明专利]基于计算阵列的神经网络处理器在审
申请号: | 201711127564.1 | 申请日: | 2017-11-15 |
公开(公告)号: | CN107918794A | 公开(公告)日: | 2018-04-17 |
发明(设计)人: | 韩银和;许浩博;王颖 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/08 |
代理公司: | 北京泛华伟业知识产权代理有限公司11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 计算 阵列 神经网络 处理器 | ||
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于计算阵列的神经网络处理器。
背景技术
深度学习是机器学习领域的重要分支,在近些年来取得了重大突破。采用深度学习算法训练的神经网络模型在图像识别、语音处理、智能机器人等应用领域取得了令人瞩目的成果。
深度神经网络通过建立模型模拟人类大脑的神经连接结构,在处理图像、声音和文本等信号时,通过多个变换阶段分层对数据特征进行描述。随着神经网络复杂度的不断提高,神经网络技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题,因此该技术在嵌入式设备或低开销数据中心等领域应用时存在严重的能效问题和运算速度瓶颈。采用硬件加速器替代传统软件计算的方法成为了提高神经网络计算效率的一种行之有效方式。目前主流的硬件加速方式包括通用图形处理器、专用处理器芯片和现场可编程逻辑阵列(FPGA)等。
然而,由于神经网络处理器属于计算密集型和访存密集型处理器,一方面,神经网络模型中包括大量乘法加法运算及其他非线性运算,需要神经网络处理器保持高负载运行,以保障神经网络模型的运算需求;另一方面,神经网络运算过程中存在大量的参数迭代,计算单元需要对存储器进行大量访问,这极大增加了对处理器的带宽设计需求,同时增加了访存功耗。
因此,需要对现有的神经网络处理器进行改进,以解决计算电路硬件开销高、片上访存带宽大的问题。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种基于计算阵列的神经网络处理器。
根据本发明的第一方面,提供了一种神经网络处理器。该处理器包括:
至少一个计算单元,由主处理器和计算阵列构成,其中,所述计算阵列由多个处理单元组织为行列二维矩阵形式,所述主处理器控制将神经元数据和权重值加载至所述计算阵列,接收到所述神经元数据和权重值的处理单元进行乘累加运算并将所述神经元数据与权重值沿不同方向传递给下一级处理单元;
控制单元,用于控制所述计算单元执行神经网络的相关计算。
在一个实施例中,所述主处理器控制所述神经元数据从所述计算阵列的列方向装载并沿列方向传播,并且控制对应的所述权重值从所述计算阵列的行方向装载并沿行方向传播。
在一个实施例中,所述计算阵列还包括多个输入缓存单元、多个权重缓存单元和多个输出缓存单元,其中,每一个输入缓存单元对应所述计算阵列的一列,相邻的输入缓存单元相连,所述神经元数据在所述输入缓存单元间沿行方向传播;每一个权重缓存单元对应所述计算阵列的一行,相邻的权重缓存单元相连,所述权重值在所述权重缓存单元间沿列方向传播;每一个输出缓存单元对应所述计算阵列的一列,相邻的输出缓存单元相连,所述计算阵列的计算结果在所述输出缓存单元间沿行方向传播。
在一个实施例中,所述计算阵列中各处理单元具有相同的内部结构。
在一个实施例中,本发明的计算阵列的各处理单元包括数据旁路单元、权重旁路单元、乘法器、累加器、缓存单元和数据选择器,其中:
数据旁路单元,其第一端用于接收入神经元数据并将其输出给所述乘法器,第二端用于将接收到的神经元数据直接输出;
权重旁路单元,其第一端用于接入接收权重值并将其输出给所述乘法器,第二端用于将接收到的权重值直接输出;
乘法器,用于从所述数据旁路单元接收神经元数据以及从所述权重旁路单元接收权重值并执行乘法运算;
累加器,用于累加来自于所述乘法器的相乘结果和来自于所述缓存单元的计算结果;
缓存单元,用于接收来自于所述累加器的累加结果以及将所述累加结果输出给所述累加器;
数据选择器,用于接收来自于上一级处理单元的计算结果和来自于本级的所述缓存单元的计算结果,并根据选通信号选择将本级的计算结果传递至下一级处理单元或将上一级处理单元的计算结果直接传递给下一级处理单元。
在一个实施例中,本发明的计算阵列的各处理单元还包括数据寄存器,其用于存储从所述数据旁路单元接收的神经元数据。
在一个实施例中,本发明的计算阵列的各处理单元还包括权重寄存器,其用于存储从所述权重旁路单元接收的权重值。
在一个实施例中,所述主处理器还用于根据相关运算的特点和计算单元的资源使用情况决定是否由所述计算阵列执行当前的运算。
根据本发明的第二方面,提供了一种用于本发明的神经网络处理器的方法。对于一个卷积核对应的神经元数据和权重值,本发明的方法包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711127564.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种格栅一涂一烤装置
- 下一篇:一种用于建筑上的环保喷漆设备