神经网络加速器、卷积运算实现方法、装置及存储介质制造方法及图纸

技术编号:28038579 阅读:51 留言:0更新日期:2021-04-09 23:21
本发明专利技术实施例提供一种神经网络加速器、卷积运算实现方法、装置及存储介质,先获取原始卷积核对应的多个压缩子卷积核以及权重索引,然后从待处理的原始数据中读取规格与子卷积核规格相匹配的原始数据块,控制计算单元阵列根据原始数据块、压缩子卷积核以及权重索引执行迭代流程,其中,计算单元阵列中包括多个乘累加计算器;迭代流程结束后,获取计算单元阵列的输出结果。本发明专利技术实施例所提供的神经网络卷积运算实现方案通过对卷积核中的权重进行压缩,去除原始权卷积核中的零值权重,从而减少了卷积运算的运算量。同时,因为采用了阵列式的计算单元阵列对数据与权重进行卷积运算,能够提升卷积运算的数据复用度,减少神经网络处理过程中的带宽占用与功耗。

【技术实现步骤摘要】
神经网络加速器、卷积运算实现方法、装置及存储介质
本专利技术涉及人工智能领域,尤其涉及一种神经网络加速器、卷积运算实现方法、装置及存储介质。
技术介绍
近些年来,人工智能技术在在全世界范围内得到了迅猛的发展,业界投入了大量的精力开展人工智能技术的研究工作,取得了显著的成果,特别是在图像检测和识别以及语言识别等方向上,人工智能的识别率已经超过了人类。神经网络处理是实现人工智能的重要处理技术,不过,神经网络规模的不断增长,导致典型的神经网络动辄几十层甚至上百层,神经元之间的连接数以亿记,即随着算法的性能指标不断提升,计算量不断的增加,完成推理需要的时间也需来越长。因此,神经网络的硬件加速器或处理器如何降低处理时间,提高处理效能,是目前业界都在关注的重点技术问题。
技术实现思路
本专利技术实施例提供的神经网络加速器、卷积运算实现方法、装置及存储介质,主要解决的技术问题是如何降低神经网络硬件加速器或处理器的处理时间,提高处理效能。为解决上述技术问题,本专利技术实施例提供一种神经网络卷积运算实现方法,包括:获取原始卷积核对应的子卷积核、压缩子卷积核以及权重索引,子卷积核通过对原始卷积核进行切分处理得到,压缩子卷积核和权重索引通过去除子卷积核中的零值权重,对剩余权重值进行重排得到;从待处理的原始数据中读取规格与子卷积核规格相匹配的原始数据块;控制计算单元阵列根据原始数据块、压缩子卷积核以及权重索引执行迭代流程,计算单元阵列中包括多个乘累加计算器;迭代流程结束后,获取计算单元阵列的输出结果。本专利技术实施例还提供一种神经网络卷积运算实现装置,包括:数据获取模块,用于获取原始卷积核对应的子卷积核、压缩子卷积核以及权重索引,子卷积核通过对原始卷积核进行切分处理得到,压缩子卷积核和权重索引通过去除子卷积核中的零值权重,对剩余权重值进行重排得到;数据读取模块,用于从待处理的原始数据中读取规格与子卷积核规格相匹配的原始数据块;迭代计算模块,用于控制计算单元阵列根据原始数据块、压缩子卷积核以及权重索引执行迭代流程,计算单元阵列中包括多个乘累加计算器;结果获取模块,用于在迭代流程结束后,获取计算单元阵列的输出结果。本专利技术实施例还提供一种神经网络加速器,包括处理器、存储器、计算单元阵列以及通信总线;通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的一个或者多个程序,以实现上述神经网络卷积运算实现方法的步骤。本专利技术实施例还提供一种存储介质,该述存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述神经网络卷积运算实现方法的步骤。本专利技术的有益效果是:根据本专利技术实施例提供的神经网络加速器、卷积运算实现方法、装置及存储介质,先获取原始卷积核对应的多个压缩子卷积核以及权重索引,压缩子卷积核通过对原始卷积核进行切分处理与压缩处理得到,切分处理包括对原始卷积核进行切分得到的子卷积核,压缩处理包括去除子卷积核中的零值权重,对剩余权重值进行重排并确定权重索引;然后从待处理的原始数据中读取规格与子卷积核规格相匹配的原始数据块,控制计算单元阵列根据原始数据块、压缩子卷积核以及权重索引执行迭代流程,其中,计算单元阵列中包括多个乘累加计算器;迭代流程结束后,获取计算单元阵列的输出结果。本专利技术实施例所提供的神经网络卷积运算实现方案通过对卷积核中的权重进行压缩,去除原始权卷积核中的零值权重,从而减少了卷积运算的运算量。同时,因为采用了阵列式的计算单元阵列对数据与权重进行卷积运算,能够提升卷积运算的数据复用度,减少神经网络处理过程中的带宽占用与功耗。本专利技术其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本专利技术说明书中的记载变的显而易见。附图说明图1为本专利技术实施例一中示出的神经网络卷积运算实现系统的一种结构示意图;图2为本专利技术实施例一中提供的神经网络卷积运算实现方法的一种流程图;图3为本专利技术实施例一中示出的对原始卷积核进行权重压缩得到压缩子卷积核的一种示意图;图4为本专利技术实施例一中提供的计算单元的一种示意图;图5为本专利技术实施例一中提供的计算单元阵列的一种示意图;图6为图5中计算单元阵列对权重与数据进行卷积运算的一种示意图;图7为本专利技术实施例二中示出的神经网络卷积运算实现装系统的一种结构示意图;图8为本专利技术实施例二中提供的神经网络卷积运算实现方法的一种流程图;图9为本专利技术实施例二中示出的神经网络卷积运算实现系统的另一种结构示意图;图10为本专利技术实施例三中示出的编译器进行权重压缩的示意图;图11为本专利技术实施例三中示出的根据卷积核适配计算单元阵列规格的一种示意图;图12为本专利技术实施例四中提供的神经网络加速器的一种硬件结构示意图;图13为本专利技术实施例四中提供的神经网络卷积运算实现装置的一种结构示意图;图14为本专利技术实施例四中提供的神经网络卷积运算实现装置的另一种结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本专利技术实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一:为了提升神经网络处理的处理效率,减少神经网络卷积运算的计算量,本实施例提供一种神经网络卷积运算实现方法,在介绍该神经网络卷积运算实现方法之前,本实施例先介绍一种可以实现该神经网络卷积运算实现方法的神经网络卷积运算实现装置,请参见图1:神经网络卷积运算实现系统1,包括CPU11、全局缓存12与神经网络加速器10,其中,神经网络加速器10包括输入输出缓存13、命令解析单元14以及计算控制单元15和计算单元阵列16。其中,CPU11与命令解析单元14通信连接,CPU11可以向命令解析单元14发送控制指令,而命令解析单元14与计算控制单元15以及输入输出缓存13之间通信连接,其能够对CPU11发送的控制指令进行解析,然后将根据控制指令获取到的运算策略发送给计算控制单元15,让计算控制单元15对计算单元阵列16进行配置;同时,命令解析单元14在接收到CPU11发送的控制指令之后,还可以获取到卷积计算准备策略,命令解析单元14可以将该卷积准备策略发送给输入输出缓存13,让输入输出缓存从全局缓存12中读取卷积运算所需要的信息。在全局缓存12当中存储的信息包括待推理的原始数据、压缩子卷积核、权重索引。在本实施例的一些示例当中全局缓存12中还可以存储控制指令。在本实施例的另外一些示例当中,全局缓存12中还可以用于存储计算单元阵列16的中间结果。下面结合图1示出神经网络卷积运算实现系统对神经网络卷积运算实现方法进行介绍,请参见图2,图2示出的是神经网络卷积运算实现方法的一种流程图:S202:神经网络加速器获取原始卷积核对应的子卷积核、压缩本文档来自技高网...

【技术保护点】
1.一种神经网络卷积运算实现方法,包括:/n获取原始卷积核对应的子卷积核、压缩子卷积核以及权重索引,所述子卷积核通过对所述原始卷积核进行切分处理得到,所述压缩子卷积核和所述权重索引通过去除所述子卷积核中的零值权重,对剩余权重值进行重排得到;/n从待处理的原始数据中读取规格与所述子卷积核规格相匹配的原始数据块;/n控制计算单元阵列根据所述原始数据块、压缩子卷积核以及权重索引执行迭代流程,所述计算单元阵列中包括多个乘累加计算器;/n迭代流程结束后,获取所述计算单元阵列的输出结果。/n

【技术特征摘要】
1.一种神经网络卷积运算实现方法,包括:
获取原始卷积核对应的子卷积核、压缩子卷积核以及权重索引,所述子卷积核通过对所述原始卷积核进行切分处理得到,所述压缩子卷积核和所述权重索引通过去除所述子卷积核中的零值权重,对剩余权重值进行重排得到;
从待处理的原始数据中读取规格与所述子卷积核规格相匹配的原始数据块;
控制计算单元阵列根据所述原始数据块、压缩子卷积核以及权重索引执行迭代流程,所述计算单元阵列中包括多个乘累加计算器;
迭代流程结束后,获取所述计算单元阵列的输出结果。


2.如权利要求1所述的神经网络卷积运算实现方法,其特征在于,所述迭代流程包括:将所述压缩子卷积核中的权重值按照所述计算单元阵列的计算节拍逐渐从所述计算单元阵列的第一侧输入,同时随着所述计算节拍根据所述权重索引的指示从所述原始数据块中读取数据自所述计算单元阵列的第二侧输入,一个所述压缩子卷积核中的各权重值将按照所述计算节拍逐渐流向与所述第一侧相对的第三侧,所述数据将按照所述计算节拍逐渐流向与所述第二侧相对的第四侧;所述计算单元阵列的输出结果作为下一次迭代的原始数据块。


3.如权利要求2所述的神经网络卷积运算实现方法,其特征在于,所述控制计算单元阵列根据所述原始数据块、压缩子卷积核以及权重索引执行迭代流程之前,还包括:
确定所述压缩子卷积核为支持威诺格拉德Winograde算法的卷积核;
将所述压缩子卷积核与所述原始数据块转换到Winograde域;
所述控制计算单元阵列根据所述原始数据块、压缩子卷积核以及权重索引执行迭代流程包括:控制所述计算单元阵列在所述Winograde域下根据所述权重索引执行所述压缩子卷积与所述原始数据块之间的卷积运算;
所述获取所述计算单元阵列的输出结果之后,还包括:
将获取的输出结果转换到数字域得到本次神经网络卷积运算的最终结果。


4.如权利要求2所述的神经网络卷积运算实现方法,其特征在于,所述将所述压缩子卷积核中的权重值按照所述计算单元阵列的计算节拍逐渐从所述计算单元阵列的第一侧输入,同时随着所述计算节拍根据所述权重索引的指示从所述原始数据块中读取数据从所述计算单元阵列的第二侧输入包括:
将所述压缩子卷积核中的权重值按照所述计算节拍逐渐从所述计算单元阵列的上边缘输入所述计算单元阵列,并随着所述计算节拍根据所述权重索引的指示从所述原始数据块中读取数据自所述计算单元阵列的左边缘输入所述计算单元阵列。


5.如权利要求2所述的神经...

【专利技术属性】
技术研发人员:余金清闫盛男汪立林张鹤
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

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

1