[发明专利]一种用于执行卷积神经网络正向运算的装置和方法有效
申请号: | 201610282534.7 | 申请日: | 2016-04-29 |
公开(公告)号: | CN107329734B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 陈天石;韩栋;陈云霁;刘少礼;郭崎 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06N3/063 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 吕雁葭 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 卷积 神经网络 正向 运算 装置 方法 | ||
本公开提供了一种执行卷积神经网络的装置,其中装置部分包括了、控制器单元、互连模块、主运算模块、以及多个从运算模块。使用该装置可以实现一层或多层人工神经网络卷积层的正向运算。对于每一层来说,首先对输入神经元向量依据卷积窗口进行数据选择,然后与卷积核进行卷积运算,计算出本层的中间结果,然后对该中间结果加偏置并激活得到输出神经元数据。将输出神经元数据作为下一层的输入神经元数据。
技术领域
本公开总体上涉及人工神经网络,具体地涉及一种用于执行卷积神经网络正向运算的装置和方法。
背景技术
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。
在已有的计算机领域应用中,与卷积运算相关的应用十分普遍。本公开专注于卷积神经网络,目前可以执行此种运算的主流装置如下:
在现有技术中,一种进行卷积神经网络运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行卷积神经网络运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行卷积神经网络运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行卷积神经网络运算。然而,上述方案中,GPU片上缓存太小,在进行大规模卷积神经网络运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种支持卷积神经网络的装置,解决现有技术中存在的受限于片间通讯、片上缓存不够等问题。
(二)技术方案
本发明的一个方面提供了一种用于执行卷积神经网络正向运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:
指令存储单元通过数据访问单元读入指令并存储读入的指令;
控制器单元从指令存储单元中读取指令,将指令译成控制其他模块行为的控制信号,所述其他模块包括数据访问单元、主运算模块和所述多个从运算模块;
数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;
从运算模块用于实现卷积神经网络算法中的输入数据和卷积核的卷积运算;
互连模块用于所述主运算模块和所述从运算模块之间的数据传输,在神经网络全连接层正向运算开始之前,主运算模块通过互连模块将输入数据输送到每一个从运算模块,在从运算模块的计算过程结束后,互连模块逐级将各从运算模块的输出标量拼成中间向量,输送回主运算模块;
主运算模块将所有输入数据的中间向量拼接成中间结果,并对所述中间结果执行后续运算。
本发明的另一方面提供了一种使用上述装置执行单层人工神经网络卷积层正向运算的方法。
本发明的另一方面提供了一种使用上述装置执行多层人工神经网络卷积层正向运算的方法。
(三)有益效果
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610282534.7/2.html,转载请声明来源钻瓜专利网。