运算装置及方法制造方法及图纸

技术编号:20797824 阅读:51 留言:0更新日期:2019-04-06 11:26
本公开提供了一种运算装置,包括:控制模块;以及运算模块,其包括多个运算单元;其中,所述控制模块,用于发送指令给所述多个运算单元并控制运算单元之间的数据传递。本公开还提供了一种运算方法。本公开运算装置及方法,能够有效的对神经网络算法进行加速,并且耗能较低;同时可以根据计算需求的不同来进行在线配置,从而提高了处理器的各组成部件的利用率,扩展了处理器的应用范围,具有较高的灵活性和一定的可扩展性。

Operating Device and Method

The present disclosure provides an arithmetic device, including a control module and an arithmetic module, comprising a plurality of arithmetic units, wherein the control module is used to send instructions to the plurality of arithmetic units and to control data transmission between the arithmetic units. The present disclosure also provides an operation method. The disclosed computing device and method can effectively accelerate the neural network algorithm and consume less energy. At the same time, the online configuration can be carried out according to different computing requirements, thereby improving the utilization ratio of each component of the processor, expanding the application scope of the processor, and having high flexibility and certain extensibility.

【技术实现步骤摘要】
运算装置及方法
本公开涉及人工智能
,尤其涉及一种可在线配置的神经网络运算装置及方法。
技术介绍
深度神经网络是目前许多人工智能应用的基础,其在语音识别、图像处理、数据分析、广告推荐系统、汽车自动驾驶等多方面得到了突破性的应用,使得深度神经网络被应用在了生活的各个方面。但是,深度神经网络的运算量巨大,一直制约着其更快速的发展和更广泛的应用。当考虑运用处理器设计来加速深度神经网络的运算时,巨大的运算量,必然会带了很大的能耗开销,同样制约着处理器的进一步的广泛应用。为了解决神经网络算法计算量巨大,运算耗时过长的问题,神经网络的硬件处理器应运而生。由于处理器针对某种配置或者某种目的而进行设计的,从而能够获得较高的加速比、较低的能耗。然后处理器的可扩展性较低,其结构无法随着计算需求的改变而进行改变。
技术实现思路
(一)要解决的技术问题为了解决或者至少部分缓解上述技术问题,本公开提供了一种运算装置及方法,其为可在线配置的神经网络运算装置及方法,能够有效的对神经网络算法进行加速,并且耗能较低;同时可以根据计算需求的不同来进行在线配置,从而提高了处理器的各组成部件的利用率,扩展了处理器的应用范本文档来自技高网...

【技术保护点】
1.一种运算装置,包括:控制模块;以及运算模块,其包括多个运算单元;其中,所述控制模块,用于发送指令给所述多个运算单元并控制运算单元之间的数据传递。

【技术特征摘要】
1.一种运算装置,包括:控制模块;以及运算模块,其包括多个运算单元;其中,所述控制模块,用于发送指令给所述多个运算单元并控制运算单元之间的数据传递。2.根据权利要求1所述的运算装置,其中,每个所述运算单元用于接收所述指令,并根据指令将待运算数据或中间结果沿一个或多个的方向传递至该运算单元之外的运算单元。3.根据权利要求2所述的运算装置,其中,所述方向包括向左/右相邻或不相邻的运算单元传递方向、向上/下相邻或不相邻的运算单元传递方向、沿对角线相邻或不相邻的运算单元传递方向。4.根据权利要求3所述的运算装置,其中,所述沿对角线相邻或不相邻的运算单元传递方向包括左上对角线、左下对角线、右上对角线、右下对角线相邻或不相邻的运算单元传递方向。5.根据权利要求1至4中任一项所述的运算装置,还包括:存储模块,其包括数据存储单元和临时缓存,用于将待运算的数据或中间结果存储到同一个区域或分开存储。6.根据权利要求1至5中任一项所述的运算装置,其中,所述控制模块包括,存储控制单元,用于控制存储模块存储或读取所需的数据;以及,运算控制单元,用于对运算单元内部的运算方式及运算单元间的数据传递进行控制。7.根据权利要求1至6中任一项所述的运算装置,其中,每个运算单元包括多个输入端口,该多个输入端口包括用于接收存储模块传来的数据的端口以及用于接收所述其他运算单元传来的数据的端口。8.根据权利要求7所述的运算装置,其中,每个运算单元还包括输出端口,用于将数据传送回存储模块或者传递给指定的运算单元。9.根据权利要求1至8中任一项所述的运算装置,其中,每个运算单元包括至少一个乘法器、至少一个加法器。10.根据权利要求9所述的运算装置,其中,每个运算单元还包括至少一个存储器。11.根据权利要求1所述的运算装置,其中,所述运算模块包括N*N个运算单元和1个ALU,该N*N个运算单元之间数据传递方向为S形,N为正整数。12.根据权利要求11所述的运算装置,其中,所述N*N个运算单元中的各运算单元用于将接收的神经元数据,并将该神经元数据和本运算单元存储器中对应的突触权值数据进行相乘得到乘积结果;所述N*N个运算单元中的第2至第N*N运算单元还分别用于接收各自前一运算单元传递的运算结果,并将该运算结果与本单元的乘积结果相加;所述ALU用于接收第N*N个运算单元传递的运算结果并进行激活运算。13.根据权利要求1所述的运算装置,其中,所述运算模块包括N*N个运算单元和N-1个ALU,所述N*N运算单元用于沿不同的方向传递运算数据,N为正整数。14.根据权利要求13所述的运算装置,其中,所述N*N个运算单元呈N行N列的阵列排布,第1列的运算单元用于接收从所述存储模块传来的待运算数据完成平方操作,并向右和向右对角线相邻的运算单元传递平方值;第1行的运算单元用于接收从存储模块传来的待运算数据完成平方操作,并向右对角相邻的运算单元传递平方值;第N列的运算单元用于接收来自左对角和左向的数据并完成累加;所述ALU用于接收第N*N个运算单元传递的运算结果并进行指数操作。15.一种运算方法,包括:控制模块发送指令;以及运算模块的多个运算单元接收所述指令,并根据指令进行数据传递。16.根据权利要求15所...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

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

1