一种用于执行神经网络运算的装置及方法制造方法及图纸

技术编号:17265788 阅读:28 留言:0更新日期:2018-02-14 13:26
本发明专利技术提供了一种用于执行神经网络运算的装置及方法,装置包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据。在多核多层人工神经网络运算中,要将每一层神经网络运算进行划分,进而由多个神经网络处理模块进行运算,得到各自的运算结果数据,多个神经网络处理单元还将各自的运算结果数据进行数据交换。

A device and method used to perform neural network operation

【技术实现步骤摘要】
一种用于执行神经网络运算的装置及方法
本专利技术属于神经网络运算领域,尤其涉及一种用于执行神经网络运算的装置及方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。人工神经网络涉及到多种算法,其中使用多核多层神经网络处理器来执行神经网络运算,被广泛的应用在各种人工神经网络模型中以及各种使用神经网络的场景中。一种支持多核多层神经网络运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多核多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把人工神经网络运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销另一种支持多核多层人工神经网络运算的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈。
技术实现思路
(一)要解决的技术问题有鉴于此,本专利技术提供一种用于执行神经网络运算的装置及方法,能以低开销的方式实现一层或多层多核多层人工神经网络的运算,并且运算性能高效。(二)技术方案本专利技术提供一种用于执行神经网络运算的装置及方法,装置包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据。在多核多层人工神经网络运算中,要将每一层神经网络运算进行划分,进而由多个神经网络处理模块进行运算,得到各自的运算结果数据,多个神经网络处理单元还将各自的运算结果数据进行数据交换。例如每进行一层神经网络计算之后,每个神经网络处理模块只计算得到了部分输出数据,而在执行下一层神经网络运算时,每个神经网络处理模块还会需求来自于其他神经网络处理模块的数据,因此每个神经网络处理的需要将自己计算得到的运算结果数据发送给对应的神经网络处理模块,用以使之计算下一层的神经网络。用于执行神经网络运算的装置中,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据,还可从本地读写数据。进一步,神经网络处理模块包括神经网络处理单元和高速存储单元;神经网络处理单元用于读写数据,高速存储单元用于存储本地数据。进一步,用于执行神经网络运算的装置还包括外部存储模块,神经网络处理模块还能够通过片上互联单元从外部存储模块中读写数据。进一步,神经网络处理单元包括指令队列、高速缓存单元、IO读取单元和神经网络运算单元,其中:进一步,指令队列存储有运算指令,IO读取单元根据运算指令从该神经网络处理单元的外部读取数据,并将读取的数据缓存至高速缓存单元中,神经网络运算单元根据该运算指令从高速缓存单元中读取所缓存的数据,并执行神经网络运算,得到运算结果数据;进一步,神经网络处理单元还包括同步关系单元,指令队列还存储有数据送达指令,神经网络运算单元向其它神经网络运算单元发送数据后,所述神经网络运算单元所对应的同步关系单元执行数据送达指令,以向其它神经网络运算单元所对应的同步关系单元发送一数据送达信号。进一步,指令队列还存储有数据依赖指令,所述神经网络运算单元收到其其它神经网络运算单元所发送的数据后,其对应的同步关系单元执行所述数据依赖指令以检测是否是收到数据送达信号,若是,则继续执行执行指令队列中的指令,否则阻塞指令队列。进一步,指令队列还存储有数据同步指令,神经网络处理单元中的同步关系单元通过执行所述数据同步指令,以向其它神经网络处理单元中的同步关系单元发送一同步信号,以强制多个神经网络处理单元做同步操作。进一步,片上互联模块包括一级互联模块和与该一级互联模块通信连接的多个二级互联模块,一级互联模块还与所述外部存储模块通信连接,所述多个二级互联模块与多个神经网络处理模块一一对应,其中,每个二级互联模块分别与相应神经网络处理模块中的神经网络处理单元和高速存储单元通信连接。本专利技术还提供一种用于执行单层神经网络运算的方法,包括:S1,多个神经网络处理模块中的每个神经网络处理模块直接从本地读取数据,和/或通过片上互联模块从其它神经网络处理模块中读取数据,其中,多个神经网络处理模块与该片上互联单元通信连接;S2,每个神经网络处理模块根据读取的数据进行单层神经网络的部分运算,得到各自的运算结果数据;S3,每个神经网络处理模块将各自的运算结果数据进行本地存储和/或通过片上互联模块将各自的运算结果数据写入至其他神经网络处理模块中。进一步,步骤S3中,每个神经网络处理模块将各自的运算结果写入至其它神经网络处理模块中后,向其它特定的神经网络处理模块发送一数据送达信号。本专利技术还提供一种用于执行多层神经网络运算的方法,对于每一层神经网络运算,执行上述步骤S1-S3,并将该层各神经网络处理模块得到的运算结果数据用于下一层神经网络运算。(三)有益效果本专利技术所提供的用于执行神经网络运算的装置及方法,具有以下优点:1、由于采用多核神经网络处理模块,允许单层的神经网络将任务划分,在多个神经网络处理模块上执行,并且采用了专用指令,允许在执行多层神经网络的时候,可以在多个神经网络处理器之间相互传输计算得到的数据,故能实现多层多核的神经网络运算。2、由于采用多核神经网络处理模块,解决了在执行多核多层神经网络处理运算的时候,单个处理器处理性能不足的问题,具有显著加速多核多层神经网络运算的效果。3、由于采用了专用的数据指令,有效的解决了在执行多核多层神经网络时,其多个处理器之间需要交互大量数据的问题,具有显著加速多核多层神经网络运算的效果。附图说明图1是本专利技术提供的用于执行神经网络运算的装置的结构示意图。图2是本专利技术中神经网络处理模块的结构示意图。图3是本专利技术中外部存储模块的结构示意图。图4是本专利技术中神经网络处理单元的结构示意图。图5是本专利技术中片上互联单元的结构示意图。图6是本专利技术执行一层全连接层运算实施例的流程图。具体实施方式本专利技术提供的用于执行人工神经网络运算的装置可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。图1是本专利技术提供的用于执行神经网络运算的装置的结构示意图,如图1所示,装置包括多个神经网络处理模块10及一个片上互联模块20,多个神经网络处理模块10与该片上互联单元20通信连接,其中:神经网络处理模块10能够通本文档来自技高网...
一种用于执行神经网络运算的装置及方法

【技术保护点】
一种用于执行神经网络运算的装置,其特征在于,包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,其中:所述神经网络处理模块能够通过所述片上互联模块从其它神经网络处理模块中读写数据。

【技术特征摘要】
1.一种用于执行神经网络运算的装置,其特征在于,包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,其中:所述神经网络处理模块能够通过所述片上互联模块从其它神经网络处理模块中读写数据。2.根据权利要求1所述的用于执行多核多层神经网络运算的装置,其特征在于,所述神经网络处理模块还可从本地读写数据。3.根据权利要求2所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理模块包括神经网络处理单元和高速存储单元;所述神经网络处理单元用于读写数据,所述高速存储单元用于存储本地数据。4.根据权利要求1-3任意一项所述的用于执行神经网络运算的装置,其特征在于,还包括外部存储模块,所述神经网络处理模块还能够通过所述片上互联单元从所述外部存储模块中读写数据。5.根据权利要求2所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理单元包括指令队列、高速缓存单元、IO读取单元和神经网络运算单元,其中:所述指令队列存储有运算指令,所述IO读取单元根据所述运算指令从该神经网络处理单元的外部读取数据,并将读取的数据缓存至所述高速缓存单元中,所述神经网络运算单元根据该运算指令从所述高速缓存单元中读取所缓存的数据,并执行神经网络运算,得到运算结果数据;所述神经网络运算单元将所述运算结果数据写入至所述高速缓存单元中,所述IO读取单元从所述高速缓存单元中读取所述运算结果数据,并将所述运算结果数据写入到该神经网络处理单元的外部。6.根据权利要求5所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理单元还包括同步关系单元,所述指令队列还存储有数据送达指令,所述神经网络运算单元向其它神经网络运算单元发送数据后,所述神经网络运算单元所对应的同步关系单元执行数据送达指令,以向其它神经网络运算单元所对应的同步关系单元发送一数据送达信号。7.根据权利要求6所述的用于执行神经网络运算的装置,其特征在于,所述指令队列还存...

【专利技术属性】
技术研发人员:陈云霁刘少礼韩栋陈天石
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1