CN116167425A - 一种神经网络加速方法、装置、设备及介质 - Google Patents

一种神经网络加速方法、装置、设备及介质 Download PDF

Info

Publication number
CN116167425A
CN116167425A CN202310458254.7A CN202310458254A CN116167425A CN 116167425 A CN116167425 A CN 116167425A CN 202310458254 A CN202310458254 A CN 202310458254A CN 116167425 A CN116167425 A CN 116167425A
Authority
CN
China
Prior art keywords
data
effective
matrix
neural network
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310458254.7A
Other languages
English (en)
Other versions
CN116167425B (zh
Inventor
蒋东东
王斌强
董刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202310458254.7A priority Critical patent/CN116167425B/zh
Publication of CN116167425A publication Critical patent/CN116167425A/zh
Application granted granted Critical
Publication of CN116167425B publication Critical patent/CN116167425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了一种神经网络加速方法、装置、设备及介质,应用于深度学习技术领域,包括:从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据;将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。这样,能够避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。

Description

一种神经网络加速方法、装置、设备及介质
技术领域
本申请涉及深度学习技术领域,特别涉及一种神经网络加速方法、装置、设备及介质。
背景技术
随着人工智能的发展以及相关技术水平的提升,需要处理的实时数据变得更加巨大,同时有效数据往往更为集中,并不是遍布于原始数据的各个位置,因此,如何有效的对稀疏数据加速处理成为研究的热点。
目前,在使用FPGA(即Field Programmable Gated Array,现场可编程门阵列)对稀疏矩阵进行神经网络的卷积计算时,通常的做法是将可能具有稀疏性的原始数据进行编码,如CRS(即Compressed Row Storage,压缩行的存储)编码等,将稀疏数据进行重新编码,去掉0值的影响后,在计算过程中按照编码后的地址,寻找非零的有效计算数据。但是使用CRS等编码算法时,如果数据局部稀疏,布局稠密,或者当某些神经网络中间层为稠密矩阵时,还进行CRS编码反而会降低计算效率,增加系统设计的复杂度,造成计算时间变长。
发明内容
有鉴于此,本申请的目的在于提供一种神经网络加速方法、装置、设备及介质,能够在避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。其具体方案如下:
第一方面,本申请公开了一种神经网络加速方法,包括:
从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据;
将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;
将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
可选的,所述从所述目标特征数据中确定有效数据矩阵,包括:
从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵;其中,所述无效数据矩阵中所有数据均为0。
可选的,所述从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵:
确定卷积运算的卷积核大小,并将所述卷积核大小确定为矩阵大小;
从所述目标特征数据中剔除所述矩阵大小的无效数据矩阵,得到所述矩阵大小的有效数据矩阵。
可选的,所述从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵,包括:
按照预设步进,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵。
可选的,所述将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
确定卷积类型;
根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
可选的,若卷积类型为通用卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
针对任一所述有效数据矩阵,将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
可选的,若卷积类型为子流行卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
判断所述有效数据矩阵中中心位置的数据是否为有效特征数据,若所述有效数据矩阵中中心位置的数据为有效特征数据,则将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
可选的,还包括:
若所述有效数据矩阵中中心位置的数据不为有效特征数据,则将该有效数据矩阵忽略。
可选的,预设计算引擎阵列包括多个一级乘法器,以及多级加法器;其中,
任一所述一级乘法器包括第一输出端,所述多个一级乘法器中的指定乘法器还包括第二输出端;
所述多级乘法器中的任一加法器均包括第三输出端,所述多级加法器中的二级加法器的输入为与该二级加法器对应的两个一级乘法器的第一输出端的输出,所述多级加法器中的其他级加法器的输入为与其他级加法器对应的上一级的两个加法器的第三输出端的输出;所述多级加法器中最后一级加法器之外的每级加法器均包含指定加法器,所述指定加法器还包括第四输出端。
可选的,还包括:
确定所述数据组中的有效特征数据的数量以得到有效数据数量;
将所述有效数据量输入所述预设计算引擎阵列。
可选的,还包括:
根据所述有效数据数量确定所述预设计算引擎阵列的输出级数;
若所述输出级数为一级,则将所述第二输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数为最后一级,则将最后一级加法器的第三输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数非一级且非最后一级,则将目标第四输出端的输出结果作为为该数据组的运算结果;
其中,所述目标第四输出端为与所述输出级数对应级数的指定加法器的第四输出端。
可选的,还包括:
判断相邻数据组是否满足并行计算条件;
若满足所述并行计算条件,则将相邻数据组同时输入所述预设计算引擎阵列。
可选的,所述判断相邻数据组是否满足并行计算条件,包括:
基于相邻数据组中有效数据数量以及预设计算引擎阵列中乘法器的数量判断是否满足并行计算条件。
可选的,所述从神经网络的目标特征数据中确定有效数据矩阵,包括:
将神经网络的目标特征数据逐行存储至预设数量的缓存中,并利用所述预设数量的缓存并行输出数据;其中,每行数据对应一个缓存;
基于并行输出的数据确定有效数据矩阵。
可选的,所述将神经网络的目标特征数据逐行存储至预设数量的缓存中,包括:
将神经网络的目标特征数据进行行分割,逐行存储至预设数量的缓存中。
可选的,还包括
基于卷积计算的卷积核大小确定所述预设数量。
可选的,所述将神经网络的目标特征数据逐行存储至预设数量的缓存中,包括:
对神经网络的目标特征数据进行填充,将填充后的目标特征数据逐行存储至预设数量的缓存中。
第二方面,本申请公开了一种神经网络加速装置,包括:
有效数据矩阵确定模块,用于从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据;
特征权重数据组合模块,用于将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;
卷积结果获取模块,用于将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
可选的,有效数据矩阵确定模块,具体用于:从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵;其中,所述无效数据矩阵中所有数据均为0。
可选的,有效数据矩阵确定模块,具体用于:
确定卷积运算的卷积核大小,并将所述卷积核大小确定为矩阵大小;
从所述目标特征数据中剔除所述矩阵大小的无效数据矩阵,得到所述矩阵大小的有效数据矩阵。
可选的,有效数据矩阵确定模块,具体用于:按照预设步进,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵。
可选的,特征权重数据组合模块,具体包括:
卷积类型确定子模块,用于确定卷积类型;
数据分组子模块,用于根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
可选的,数据分组子模块具体用于:若卷积类型为通用卷积,针对任一所述有效数据矩阵,将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
可选的,数据分组子模块具体用于:若卷积类型为子流行卷积,则判断所述有效数据矩阵中中心位置的数据是否为有效特征数据,若所述有效数据矩阵中中心位置的数据为有效特征数据,则将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;若所述有效数据矩阵中中心位置的数据不为有效特征数据,则将该有效数据矩阵忽略。
可选的,预设计算引擎阵列包括多个一级乘法器,以及多级加法器;其中,
任一所述一级乘法器包括第一输出端,所述多个一级乘法器中的指定乘法器还包括第二输出端;
所述多级乘法器中的任一加法器均包括第三输出端,所述多级加法器中的二级加法器的输入为与该二级加法器对应的两个一级乘法器的第一输出端的输出,所述多级加法器中的其他级加法器的输入为与其他级加法器对应的上一级的两个加法器的第三输出端的输出;所述多级加法器中最后一级加法器之外的每级加法器均包含指定加法器,所述指定加法器还包括第四输出端。
第三方面,本申请公开了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述的神经网络加速方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的神经网络加速方法。
可见,本申请先从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据,之后将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,最后将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。也即,本申请是先确定包含至少一个有效特征数据的有效特征矩阵,然后将有效数据矩阵中的有效特征数据以及权重矩阵中与有效特征数据对应的权重数据进行分组,得到数据组,最后将数据组输入预设计算引擎阵列进行运算,得到卷积结果。这样,先得到有效特征矩阵,之后将参与卷积运算的有效特征数据和权重数据分组,过滤掉无效特征数据,能够在避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种神经网络加速方法流程图;
图2为本申请实施例公开的一种无效数据矩阵剔除示意图;
图3为本申请实施例公开的一种通用卷积的特征权重分组示意图;
图4为本申请实施例公开的一种子流型卷积的特征权重分组示意图;
图5为本申请实施例提供的一种传统的3×3PE阵列示意图;
图6为本申请实施例提供的一种传统计算引擎阵列的卷积时间示意图;
图7为本申请实施例公开的一种计算引擎阵列示意图;
图8为本申请实施例公开的一种数据组运算示意图;
图9为本申请实施例公开的一种数据组运算示意图;
图10为本申请实施例公开的一种数据组运算示意图;
图11为本申请实施例公开的一种预设计算引擎阵列卷积时间示意图;
图12为本申请实施例公开的一种神经网络加速示意图;
图13为本申请实施例公开的一种神经网络加速装置结构示意图;
图14为本申请实施例公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在使用FPGA对稀疏矩阵进行神经网络的卷积计算时,通常的做法是将可能具有稀疏性的原始数据进行编码,如CRS编码等,将稀疏数据进行重新编码,去掉0值的影响后,在计算过程中按照编码后的地址,寻找非零的有效计算数据。但是使用CRS等编码算法时,如果数据局部稀疏,布局稠密,或者当某些神经网络中间层为稠密矩阵时,还进行CRS编码反而会降低计算效率,增加系统设计的复杂度,造成计算时间变长。也即,采用编码等方式进行稀疏矩阵计算优化,当数据并不稀疏时,反而会带来反效果。原因是深度学习网络中,可能之后前几层数据稀疏性较大,计算到多层后数据往往就会变为完全的稠密矩阵。为此,本申请提供了一种神经网络加速方案,能够在避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。
参见图1所示,本申请实施例公开了一种神经网络加速方法,包括:
步骤S11:从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据。
其中,神经网络可以为transformer(即基于自注意力的模型)以及脉冲神经网络等,或者目标特征数据为点云数据。并且,本申请所提供的神经网络加速方法可以应用于可编程逻辑器件、IC(即integrated circuit,集成电路),可编程逻辑器件可以为FPGA。
在具体的实施方式中,可以从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵;其中,所述无效数据矩阵中所有数据均为0。
并且,本申请实施例可以确定卷积运算的卷积核大小,并将所述卷积核大小确定为矩阵大小;从所述目标特征数据中剔除所述矩阵大小的无效数据矩阵,得到所述矩阵大小的有效数据矩阵。比如,卷积核大小为3×3,则矩阵大小为3×3。
其中,可以按照预设步进,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵。比如,步进为3。
另外,本申请实施例可以将神经网络的目标特征数据逐行存储至预设数量的缓存中,并利用所述预设数量的缓存并行输出数据;其中,每行数据对应一个缓存;基于并行输出的数据确定有效数据矩阵。
其中,可以将神经网络的目标特征数据进行行分割,逐行存储至预设数量的缓存中。并且,基于卷积计算的卷积核大小确定所述预设数量。比如卷积核大小为3×3,预设数量为3。另外,缓存可以为FIFO(即First Input First Output,先进先出)。
另外,可以对神经网络的目标特征数据进行填充,将填充后的目标特征数据逐行存储至预设数量的缓存中。
例如,参见图2所示,图2为本申请实施例公开的一种无效数据矩阵剔除示意图。其中,空白格表示该位置的特征数据为无效数据,灰色格表示该位置的特征数据为有效数据,当处理脉冲神经网络或者其他稀疏数据时,可以先按照padding(填充)值进行填充,然后按照卷积的步进值,将原始特征数据中一定不会参与到卷积计算的数据剔除,并输出有效的卷积数据区域,如图2所示,将数据全为0的3×3矩阵剔除,将包含有效数据的3×3矩阵保留,这样,方便对有效数据的地址位置进行判断。
步骤S12:将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
在具体的实施方式中,可以确定卷积类型;根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。可以理解的是,有效数据矩阵中依然存在无效数据,为了去掉其无效计算对整体计算时间的影响,对每个有效特征矩阵中的有效特征数据和对应权重矩阵中的权重数据进行分组打包。
在一种实施例中,若卷积类型为通用卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:针对任一所述有效数据矩阵,将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。例如,参见图3所示,图3为本申请实施例公开的一种通用卷积的特征权重分组示意图。由于每个有效3×3矩阵中还有无效0值,对每个3×3矩阵中的有效数据和对应权重矩阵中的数据进行分组打包,图3中,w1~w9表示权重矩阵中的权重数据,d1~d5表示特征矩阵中的有效特征数据,特征矩阵中的空白格表示该位置的特征数据为0,灰色格表示该位置的特征数据不为0,c1、c2、c3、c4均为卷积结果中的值。d1所在的第一个3×3矩阵和权重矩阵卷积后得到c1,但是3×3矩阵中9个数据只有d1一个有效数据,其他全为0值,所以只需要将d1和权重矩阵中对应的w5进行组合,进行乘法即可得到c1,同理可以得到c2、c3、c4等对应的组合。
在另一种实施例中,若卷积类型为子流行卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:判断所述有效数据矩阵中中心位置的数据是否为有效特征数据,若所述有效数据矩阵中中心位置的数据为有效特征数据,则将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。若所述有效数据矩阵中中心位置的数据不为有效特征数据,则将该有效数据矩阵忽略。例如,参见图4所示,图4为本申请实施例公开的一种子流型卷积的特征权重分组示意图。w1~w9表示权重矩阵中的权重数据,d1~d5表示特征矩阵中的有效特征数据,特征矩阵中的空白格表示该位置的特征数据为0,灰色格表示该位置的特征数据不为0,c1、c2、c3、c4均为卷积结果中的值。d1所在3×3矩阵和权重矩阵卷积后得到c1,但是3×3矩阵中个数据只有d1一个有效数据,其他全为0值,所以只需要将d1和权重矩阵中对应的w5进行组合,进行乘法即可得到c1;以d2为中心的3×3矩阵进行计算时,也只有d2和d3两个数据参与计算,因此将d2和d3及其对应的权重数据w5和w7进行打包。如果矩阵为稠密,则全部打包为一组。
步骤S13:将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
其中,目标特征数据可以为图像数据、视频数据、点云数据等,以神经网络为脉冲神经网络为例,目标特征数据为脉冲相机采集的人体图像数据或脉冲神经网络的中间层输出的人体图像数据对应的特征数据,脉冲神经网络可以用于进行人的识别,比如识别是否为人、人的身份、人的动作等。本申请实施例从脉冲神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据;然后将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。基于卷积结果确定输入脉冲神经网络的人体图像数据对应的识别结果。在具体的实施方式中,所述预设计算引擎阵列包括多个一级乘法器,以及多级加法器;其中,
任一所述一级乘法器包括第一输出端,所述多个一级乘法器中的指定乘法器还包括第二输出端;并且,任一所述一级乘法器均还包括第一输入端和第二输入端,第一输入端用于输入数据组中的有效特征数据,第二输入端用于输入数据组中的权重数据。第一输出端与第二输出端的输出均为该一级乘法器的乘法结果;
所述多级乘法器中的任一加法器均包括第三输出端,所述多级加法器中的二级加法器的输入为与该二级加法器对应的两个一级乘法器的第一输出端的输出,所述多级加法器中的其他级加法器的输入为与其他级加法器对应的上一级的两个加法器的第三输出端的输出;所述多级加法器中最后一级加法器之外的每级加法器均包含指定加法器,所述指定加法器还包括第四输出端。并且,第三输出端和第四输出端的输出均为所属加法器的加法结果。
进一步的,在具体的实施方式中,可以确定所述数据组中的有效特征数据的数量以得到有效数据数量;将所述有效数据量输入所述预设计算引擎阵列。根据所述有效数据数量确定所述预设计算引擎阵列的输出级数;若所述输出级数为一级,则将所述第二输出端的输出结果作为该数据组对应的运算结果;若所述输出级数为最后一级,则将最后一级加法器的第三输出端的输出结果作为该数据组对应的运算结果;若所述输出级数非一级且非最后一级,则将目标第四输出端的输出结果作为为该数据组的运算结果;其中,所述目标第四输出端为与所述输出级数对应级数的指定加法器的第四输出端。
另外,判断相邻数据组是否满足并行计算条件;若满足所述并行计算条件,则将相邻数据组同时输入所述预设计算引擎阵列。并且,在具体的实施方式中,可以基于相邻数据组中有效数据数量以及预设计算引擎阵列中乘法器的数量判断是否满足并行计算条件。
可以理解的是,分组完毕后,即可将数据组发送给PE(即Processing Engine计算引擎)阵列进行乘加运算,参见图5所示,图5为本申请实施例提供的一种传统的3×3PE阵列示意图。包括1级乘法器,以及4级加法器,包括2级加法器、3级加法器、4级加法器和5级加法器。其中,w1~w9表示权重矩阵中的权重数据,d1~d9表示特征矩阵中的数据。如果使用该计算阵列,无论数据为稀疏还是稠密,每个3×3卷积计算都会至少需要5个时钟周期(假设乘法也是1个时钟周期),如果数据稠密且连续,利用流水线功能整体的计算潜能可以发挥到最大,但是一旦数据为稀疏且非连续时,该PE计算阵列所需的计算时间不会减少,参见图6所示,图6为本申请实施例提供的一种传统计算引擎阵列的卷积时间示意图。需要15个时钟周期。
鉴于此,本申请提供了前述预设计算引擎阵列,参见图7所示,图7为本申请实施例公开的一种计算引擎阵列示意图。能够实现稀疏矩阵的快速计算。其中,组间隔标志位携带有效数据数量,快速计算判断单元用于根据所述有效数据数量确定所述预设计算引擎阵列的输出级数;若所述输出级数为一级,则将所述第二输出端的输出结果作为该数据组对应的运算结果;若所述输出级数为最后一级,则将最后一级加法器的第三输出端的输出结果作为该数据组对应的运算结果;若所述输出级数非一级且非最后一级,则将目标第四输出端的输出结果作为为该数据组的运算结果;其中,所述目标第四输出端为与所述输出级数对应级数的指定加法器的第四输出端。
进一步的,参见图8所示,本申请实施例公开了一种数据组运算示意图。假设3×3矩阵的数据只有图4中第一组的一个有效数据时,利用本PE阵列,无需5个时钟周期,只需要1个是周期即可完成计算和输出,即第一个乘法器为指定乘法器,直接将d1和w5的乘法结果输出。
进一步的,参见图9所示,本申请实施例公开了一种数据组运算示意图。假设3×3矩阵的数据只有图4中第二组的两个有效数据时,利用本PE阵列,无需5个时钟周期,只需要2个是周期即可完成计算和输出。
进一步的,参见图10所示,本申请实施例公开了一种数据组运算示意图。假设3×3矩阵的数据只有图4中第三组的四个有效数据时,利用本PE阵列,无需5个时钟周期,只需要三个是周期即可完成计算和输出。
所以,当计算类似上述三组不连续稀疏3×3矩阵时,快速PE计算单元所需要的时钟周期为6个周期,参见图11所示,图11为本申请实施例提供的一种预设计算引擎阵列卷积时间示意图,而如果使用传统PE阵列,则需要15个时钟周期。当计算连续稠密的3×3卷积计算时,两种PE计算单元计算效率没有差别。
另外,本申请提出的稀疏矩阵计算方式,还可以通过判断相邻两组计算数据的个数总和,如果小于9个(3×3),可以将快速PE阵列直接计算2组数据,继续优化计算时间。
也即,本申请实施例利用流水线去掉feature(特征)中对结果计算无影响的大块0值数据,将稀疏矩阵变为粗略的稠密矩阵。将上述矩阵中有效的计算数据和权重进行组合,同时去掉剩余无效0值,通过分级地减少稀疏数据中的0值,减少因为0值空计算而造成的无价值计算时间浪费,可以将在不影响稠密矩阵计算能力的前提下,将稀疏矩阵的计算处理时间按0值所占比重缩短。将分组数据输入给快速PE计算单元,快速PE计算单元按照输入组的有效数据个数,来判断可缩小并节约的计算周期,并完成快速卷积计算。
进一步的,参见图12所示,图12为本申请实施例公开的一种神经网络加速示意图。采用3×3卷积进行举例,具体包括以下步骤:
步骤1:原始稀疏feature数据经过padding(填充)单元,将3行数据存储到3个缓存FIFO中。
步骤2:当3个缓存FIFO同时存够整行数据后,并行输出3×3所需要的3行数据。
步骤3:根据tile(数据块)长度,将不影响计算的大块0值数据去除,只保留参与计算的有效数据矩阵。
步骤4:将有效数据矩阵中的有效数据和对应的权重矩阵数据进行组合打包,组合方式控制可以按照通用卷积组合或者子流型卷积组合。输出组合后的数据,并同步输出组间间隔标志位,说明本组数据的大小,供后端判断需要几级计算。
步骤5:将打包的数据和组件间隔标志位发送给快速PE计算阵列,完成稀疏矩阵计算。
步骤6:步骤1按照后端缓存FIFO的空间,继续填满下一行数据,然后重复步骤2-步骤5。
这样,采用非编码的方式,直接使用FPGA自动针对稀疏0值进行实时卷积加速,利用FPGA流水线降低原始feature中无效0值的数量,同时根据卷积计算的模式,将有效数据和权重参数进行打包分组,进一步降低无效0值对计算延迟的影响,最后,设计了一种快速PE阵列,能进一步降低在矩阵计算时的时钟周期。同时本方法兼容稀疏和稠密数据,无需进行复杂干预即可完成功能兼容。
可见,本申请实施例先从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据,之后将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,最后将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。也即,本申请实施例是先确定包含至少一个有效特征数据的有效特征矩阵,然后将有效数据矩阵中的有效特征数据以及权重矩阵中与有效特征数据对应的权重数据进行分组,得到数据组,最后将数据组输入预设计算引擎阵列进行运算,得到卷积结果。这样,先得到有效特征矩阵,之后将参与卷积运算的有效特征数据和权重数据分组,过滤掉无效特征数据,能够在避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。
参见图13所示,本申请实施例公开了一种神经网络加速装置,包括:
有效数据矩阵确定模块11,用于从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据;
特征权重数据组合模块12,用于将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;
卷积结果获取模块13,用于将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
可见,本申请实施例先从神经网络的目标特征数据中确定有效数据矩阵;所述有效特征矩阵中包含至少一个有效特征数据,之后将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,最后将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。也即,本申请实施例是先确定包含至少一个有效特征数据的有效特征矩阵,然后将有效数据矩阵中的有效特征数据以及权重矩阵中与有效特征数据对应的权重数据进行分组,得到数据组,最后将数据组输入预设计算引擎阵列进行运算,得到卷积结果。这样,先得到有效特征矩阵,之后将参与卷积运算的有效特征数据和权重数据分组,过滤掉无效特征数据,能够在避免无效数据引起延时的情况下,兼容稀疏和稠密数据,从而实现神经网络加速的优化。
其中,有效数据矩阵确定模块11,具体用于:
从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵;其中,所述无效数据矩阵中所有数据均为0。
进一步的,有效数据矩阵确定模块11,具体用于:
确定卷积运算的卷积核大小,并将所述卷积核大小确定为矩阵大小;
从所述目标特征数据中剔除所述矩阵大小的无效数据矩阵,得到所述矩阵大小的有效数据矩阵。
并且,有效数据矩阵确定模块11,具体用于:按照预设步进,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵。
其中,特征权重数据组合模块12,具体包括:
卷积类型确定子模块,用于确定卷积类型;
数据分组子模块,用于根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
在一种实施方式中,数据分组子模块具体用于:若卷积类型为通用卷积,针对任一所述有效数据矩阵,将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
在另一种实施方式中,数据分组子模块具体用于:若卷积类型为子流行卷积,则判断所述有效数据矩阵中中心位置的数据是否为有效特征数据,若所述有效数据矩阵中中心位置的数据为有效特征数据,则将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;若所述有效数据矩阵中中心位置的数据不为有效特征数据,则将该有效数据矩阵忽略。
在一种实施例中,预设计算引擎阵列包括多个一级乘法器,以及多级加法器;其中,
任一所述一级乘法器包括第一输出端,所述多个一级乘法器中的指定乘法器还包括第二输出端;
所述多级乘法器中的任一加法器均包括第三输出端,所述多级加法器中的二级加法器的输入为与该二级加法器对应的两个一级乘法器的第一输出端的输出,所述多级加法器中的其他级加法器的输入为与其他级加法器对应的上一级的两个加法器的第三输出端的输出;所述多级加法器中最后一级加法器之外的每级加法器均包含指定加法器,所述指定加法器还包括第四输出端。
所述装置,还包括:
有效数据量确定模块,用于确定所述数据组中的有效特征数据的数量以得到有效数据数量;
有效数据量输入模块,用于将所述有效数据量输入所述预设计算引擎阵列。
相应的,卷积结果获取模块13,还用于:
根据所述有效数据数量确定所述预设计算引擎阵列的输出级数;
若所述输出级数为一级,则将所述第二输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数为最后一级,则将最后一级加法器的第三输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数非一级且非最后一级,则将目标第四输出端的输出结果作为为该数据组的运算结果;
其中,所述目标第四输出端为与所述输出级数对应级数的指定加法器的第四输出端。
进一步的,卷积结果获取模块13,还包括:
条件判断子模块,用于判断相邻数据组是否满足并行计算条件;
并且,所述卷积结果获取模块13,具体用于若满足所述并行计算条件,则将相邻数据组同时输入所述预设计算引擎阵列。
在一种实施方式中,条件判断子模块,具体用于:
基于相邻数据组中有效数据数量以及预设计算引擎阵列中乘法器的数量判断是否满足并行计算条件。
在具体的实施方式中,有效数据矩阵确定模块11,具体包括:
数据缓存子模块,用于将神经网络的目标特征数据逐行存储至预设数量的缓存中,并利用所述预设数量的缓存并行输出数据;其中,每行数据对应一个缓存;
有效数据矩阵确定子模块,用于基于并行输出的数据确定有效数据矩阵。
其中,数据缓存子模块,具体用于将神经网络的目标特征数据进行行分割,逐行存储至预设数量的缓存中。
其中,所述装置还包括
预设数量确定模块,用于基于卷积计算的卷积核大小确定所述预设数量。
另外,在一种实施方式中,数据缓存子模块,具体用于:对神经网络的目标特征数据进行填充,将填充后的目标特征数据逐行存储至预设数量的缓存中。
参见图14所示,本申请实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的神经网络加速方法。
关于上述神经网络加速方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的神经网络加速方法。
关于上述神经网络加速方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种神经网络加速方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (20)

1.一种神经网络加速方法,其特征在于,包括:
从神经网络的目标特征数据中确定有效数据矩阵;所述有效数据矩阵中包含至少一个有效特征数据;
将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;
将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
2.根据权利要求1所述的神经网络加速方法,其特征在于,所述从神经网络的目标特征数据中确定有效数据矩阵,包括:
从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵;其中,所述无效数据矩阵中所有数据均为0。
3.根据权利要求2所述的神经网络加速方法,其特征在于,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵:
确定卷积运算的卷积核大小,并将所述卷积核大小确定为矩阵大小;
从所述目标特征数据中剔除所述矩阵大小的无效数据矩阵,得到所述矩阵大小的有效数据矩阵。
4.根据权利要求2所述的神经网络加速方法,其特征在于,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵,包括:
按照预设步进,从所述目标特征数据中剔除无效数据矩阵,得到有效数据矩阵。
5.根据权利要求1所述的神经网络加速方法,其特征在于,所述将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
确定卷积类型;
根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
6.根据权利要求5所述的神经网络加速方法,其特征在于,若卷积类型为通用卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
针对任一所述有效数据矩阵,将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
7.根据权利要求5所述的神经网络加速方法,其特征在于,若卷积类型为子流行卷积,则根据所述卷积类型对应的分组方式,将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组,包括:
判断所述有效数据矩阵中中心位置的数据是否为有效特征数据,若所述有效数据矩阵中中心位置的数据为有效特征数据,则将该有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组。
8.根据权利要求7所述的神经网络加速方法,其特征在于,还包括:
若所述有效数据矩阵中中心位置的数据不为有效特征数据,则将该有效数据矩阵忽略。
9.根据权利要求1所述的神经网络加速方法,其特征在于,预设计算引擎阵列包括多个一级乘法器,以及多级加法器;其中,
任一所述一级乘法器包括第一输出端,所述多个一级乘法器中的指定乘法器还包括第二输出端;
所述多级加法器中的任一加法器均包括第三输出端,所述多级加法器中的二级加法器的输入为与该二级加法器对应的两个一级乘法器的第一输出端的输出,所述多级加法器中的其他级加法器的输入为与其他级加法器对应的上一级的两个加法器的第三输出端的输出;所述多级加法器中最后一级加法器之外的每级加法器均包含指定加法器,所述指定加法器还包括第四输出端。
10.根据权利要求9所述的神经网络加速方法,其特征在于,还包括:
确定所述数据组中的有效特征数据的数量以得到有效数据数量;
将所述有效数据量输入所述预设计算引擎阵列。
11.根据权利要求10所述的神经网络加速方法,其特征在于,还包括:
根据所述有效数据数量确定所述预设计算引擎阵列的输出级数;
若所述输出级数为一级,则将所述第二输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数为最后一级,则将最后一级加法器的第三输出端的输出结果作为该数据组对应的运算结果;
若所述输出级数非一级且非最后一级,则将目标第四输出端的输出结果作为该数据组的运算结果;
其中,所述目标第四输出端为与所述输出级数对应级数的指定加法器的第四输出端。
12.根据权利要求10所述的神经网络加速方法,其特征在于,还包括:
判断相邻数据组是否满足并行计算条件;
若满足所述并行计算条件,则将相邻数据组同时输入所述预设计算引擎阵列。
13.根据权利要求12所述的神经网络加速方法,其特征在于,所述判断相邻数据组是否满足并行计算条件,包括:
基于相邻数据组中有效数据数量以及预设计算引擎阵列中乘法器的数量判断是否满足并行计算条件。
14.根据权利要求1至13任一项所述的神经网络加速方法,其特征在于,所述从神经网络的目标特征数据中确定有效数据矩阵,包括:
将神经网络的目标特征数据逐行存储至预设数量的缓存中,并利用所述预设数量的缓存并行输出数据;其中,每行数据对应一个缓存;
基于并行输出的数据确定有效数据矩阵。
15.根据权利要求14所述的神经网络加速方法,其特征在于,所述将神经网络的目标特征数据逐行存储至预设数量的缓存中,包括:
将神经网络的目标特征数据进行行分割,逐行存储至预设数量的缓存中。
16.根据权利要求14所述的神经网络加速方法,其特征在于,还包括
基于卷积计算的卷积核大小确定所述预设数量。
17.根据权利要求14所述的神经网络加速方法,其特征在于,所述将神经网络的目标特征数据逐行存储至预设数量的缓存中,包括:
对神经网络的目标特征数据进行填充,将填充后的目标特征数据逐行存储至预设数量的缓存中。
18.一种神经网络加速装置,其特征在于,包括:
有效数据矩阵确定模块,用于从神经网络的目标特征数据中确定有效数据矩阵;所述有效数据矩阵中包含至少一个有效特征数据;
特征权重数据组合模块,用于将所述有效数据矩阵中的有效特征数据,以及权重矩阵中与所述有效特征数据对应的权重数据进行分组,以得到数据组;
卷积结果获取模块,用于将所述数据组输入预设计算引擎阵列,并利用所述预设计算引擎阵列对所述数据组进行运算,得到卷积结果。
19.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至17任一项所述的神经网络加速方法。
20.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的神经网络加速方法。
CN202310458254.7A 2023-04-26 2023-04-26 一种神经网络加速方法、装置、设备及介质 Active CN116167425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310458254.7A CN116167425B (zh) 2023-04-26 2023-04-26 一种神经网络加速方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310458254.7A CN116167425B (zh) 2023-04-26 2023-04-26 一种神经网络加速方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN116167425A true CN116167425A (zh) 2023-05-26
CN116167425B CN116167425B (zh) 2023-08-04

Family

ID=86416793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310458254.7A Active CN116167425B (zh) 2023-04-26 2023-04-26 一种神经网络加速方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116167425B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116720551A (zh) * 2023-08-02 2023-09-08 苏州浪潮智能科技有限公司 脉冲神经网络的卷积加速方法及卷积加速器

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160379109A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Convolutional neural networks on hardware accelerators
CN108932548A (zh) * 2018-05-22 2018-12-04 中国科学技术大学苏州研究院 一种基于fpga的稀疏度神经网络加速系统
CN110135556A (zh) * 2019-04-04 2019-08-16 平安科技(深圳)有限公司 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质
CN110991631A (zh) * 2019-11-28 2020-04-10 福州大学 一种基于fpga的神经网络加速系统
CN111553471A (zh) * 2020-07-13 2020-08-18 北京欣奕华数字科技有限公司 一种数据分析处理方法及装置
CN111615706A (zh) * 2017-11-17 2020-09-01 脸谱公司 基于子流形稀疏卷积神经网络分析空间稀疏数据
WO2020238843A1 (zh) * 2019-05-24 2020-12-03 华为技术有限公司 神经网络计算设备、方法以及计算设备
CN113486298A (zh) * 2021-06-28 2021-10-08 南京大学 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN113705794A (zh) * 2021-09-08 2021-11-26 上海交通大学 一种基于动态激活位稀疏的神经网络加速器设计方法
US11237880B1 (en) * 2020-12-18 2022-02-01 SambaNova Systems, Inc. Dataflow all-reduce for reconfigurable processor systems
CN114492781A (zh) * 2022-04-02 2022-05-13 苏州浪潮智能科技有限公司 一种硬件加速器及数据处理方法、系统、设备、介质
CN115186799A (zh) * 2022-06-15 2022-10-14 奥比中光科技集团股份有限公司 一种基于卷积神经网络的稀疏化计算方法及芯片
CN115374395A (zh) * 2022-01-30 2022-11-22 西安交通大学 一种通过算法控制单元进行调度计算的硬件结构

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160379109A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Convolutional neural networks on hardware accelerators
CN111615706A (zh) * 2017-11-17 2020-09-01 脸谱公司 基于子流形稀疏卷积神经网络分析空间稀疏数据
CN108932548A (zh) * 2018-05-22 2018-12-04 中国科学技术大学苏州研究院 一种基于fpga的稀疏度神经网络加速系统
CN110135556A (zh) * 2019-04-04 2019-08-16 平安科技(深圳)有限公司 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质
WO2020238843A1 (zh) * 2019-05-24 2020-12-03 华为技术有限公司 神经网络计算设备、方法以及计算设备
CN110991631A (zh) * 2019-11-28 2020-04-10 福州大学 一种基于fpga的神经网络加速系统
CN111553471A (zh) * 2020-07-13 2020-08-18 北京欣奕华数字科技有限公司 一种数据分析处理方法及装置
US11237880B1 (en) * 2020-12-18 2022-02-01 SambaNova Systems, Inc. Dataflow all-reduce for reconfigurable processor systems
CN113486298A (zh) * 2021-06-28 2021-10-08 南京大学 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN113705794A (zh) * 2021-09-08 2021-11-26 上海交通大学 一种基于动态激活位稀疏的神经网络加速器设计方法
CN115374395A (zh) * 2022-01-30 2022-11-22 西安交通大学 一种通过算法控制单元进行调度计算的硬件结构
CN114492781A (zh) * 2022-04-02 2022-05-13 苏州浪潮智能科技有限公司 一种硬件加速器及数据处理方法、系统、设备、介质
CN115186799A (zh) * 2022-06-15 2022-10-14 奥比中光科技集团股份有限公司 一种基于卷积神经网络的稀疏化计算方法及芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENJAMIN GRAHAM等: "3D Semantic Segmentation with Submanifold Sparse Convolutional Networks", 2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, pages 9224 - 9232 *
余成宇;李志远;毛文宇;鲁华祥;: "一种高效的稀疏卷积神经网络加速器的设计与实现", 智能系统学报, no. 02 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116720551A (zh) * 2023-08-02 2023-09-08 苏州浪潮智能科技有限公司 脉冲神经网络的卷积加速方法及卷积加速器
CN116720551B (zh) * 2023-08-02 2023-09-29 苏州浪潮智能科技有限公司 脉冲神经网络的卷积加速方法及卷积加速器

Also Published As

Publication number Publication date
CN116167425B (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN111667051B (zh) 适用边缘设备的神经网络加速器及神经网络加速计算方法
CN111684473B (zh) 提高神经网络阵列的性能
CN111242289B (zh) 一种规模可扩展的卷积神经网络加速系统与方法
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
JP6945986B2 (ja) 演算回路、その制御方法及びプログラム
CN107239824A (zh) 用于实现稀疏卷积神经网络加速器的装置和方法
CN110543939B (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置
CN116167425B (zh) 一种神经网络加速方法、装置、设备及介质
CN108304926B (zh) 一种适用于神经网络的池化计算装置及方法
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
CN112734020B (zh) 卷积神经网络的卷积乘累加硬件加速装置、系统以及方法
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
JP2017151604A (ja) 演算処理装置
CN111768458A (zh) 一种基于卷积神经网络的稀疏图像处理方法
CN110543936A (zh) 一种cnn全连接层运算的多并行加速方法
CN111240746A (zh) 一种浮点数据反量化及量化的方法和设备
CN111931925A (zh) 基于fpga的二值化神经网络的加速系统
CN113283587A (zh) 一种Winograd卷积运算加速方法及加速模块
CN113344179A (zh) 基于fpga的二值化卷积神经网络算法的ip核
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
CN111008691A (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN108764182B (zh) 一种优化的用于人工智能的加速方法和装置
CN114462587A (zh) 一种用于光电混合计算神经网络的fpga实现方法
CN113158132A (zh) 一种基于非结构化稀疏的卷积神经网络加速系统
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant