CN113705795A - 卷积处理方法、装置、卷积神经网络加速器和存储介质 - Google Patents

卷积处理方法、装置、卷积神经网络加速器和存储介质 Download PDF

Info

Publication number
CN113705795A
CN113705795A CN202111086222.6A CN202111086222A CN113705795A CN 113705795 A CN113705795 A CN 113705795A CN 202111086222 A CN202111086222 A CN 202111086222A CN 113705795 A CN113705795 A CN 113705795A
Authority
CN
China
Prior art keywords
data
multiply
pipeline
add operation
weight
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.)
Pending
Application number
CN202111086222.6A
Other languages
English (en)
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.)
Shenzhen Smartmore Technology Co Ltd
Shanghai Smartmore Technology Co Ltd
Original Assignee
Shenzhen Smartmore Technology Co Ltd
Shanghai Smartmore Technology 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 Shenzhen Smartmore Technology Co Ltd, Shanghai Smartmore Technology Co Ltd filed Critical Shenzhen Smartmore Technology Co Ltd
Priority to CN202111086222.6A priority Critical patent/CN113705795A/zh
Publication of CN113705795A publication Critical patent/CN113705795A/zh
Pending legal-status Critical Current

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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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

Landscapes

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

Abstract

本申请涉及人工智能技术领域,提供一种卷积处理方法、装置、卷积神经网络加速器和存储介质,该方法可以提高卷积处理的效率,该方法主要包括:确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;按照数据组的数量,确定用于乘加运算的流水线的数量;流水线的数量与数据组的数量具有整数倍关系,且小于数据组的数量;将多个数据组等份划分至各条流水线进行乘加运算。

Description

卷积处理方法、装置、卷积神经网络加速器和存储介质
技术领域
本申请涉及人工智能技术领域,特别是涉及一种卷积处理方法、装置、卷积神经网络加速器和存储介质。
背景技术
随着人工智能时代的到来,卷积神经网络被应用在各种各样的场景中。卷积神经网络的处理中卷积处理是必不可少的,该卷积处理主要是对权重数据和特征数据进行乘加运算,所涉及的数据量巨大,卷积处理效率难以保证。
发明内容
基于此,有必要针对上述技术问题,提供一种卷积处理方法、装置、卷积神经网络加速器和存储介质。
一种卷积处理方法,所述方法包括:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,若数据组包括两个权重数据和一个特征数据,所述将所述多个数据组等份划分至各条流水线进行乘加运算,包括:
在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,所述方法还包括:
在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
在其中一个实施例中,所述数据组的数量与卷积核包括的权重数据的数量一致。
在其中一个实施例中,各条流水线以并行方式进行乘加运算。
一种卷积处理装置,所述装置包括:
数据组确定模块,用于确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
流水线数量确定模块,用于按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
第一乘加运算模块,用于将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,若数据组包括两个权重数据和一个特征数据,所述第一乘加运算模块,还用于在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,所述装置还包括第二乘加运算模块,用于在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
一种卷积神经网络加速器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
上述卷积处理方法、装置、卷积神经网络加速器和存储介质,确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;将所述多个数据组等份划分至各条流水线进行乘加运算。本申请中,按照包括权重数据和特征数据的数据组的数量确定进行乘加运算的流水线的数量,并将各数据组等份划分至各条流水线中进行乘加运算,相较于对各数据组进行串行运算,处理效率较高。
附图说明
图1为一个实施例中卷积处理方法的运算架构示意图;
图2为一个实施例中卷积处理方法的流程示意图;
图3为一个实施例中卷积处理方法的运算架构示意图;
图4为一个实施例中卷积处理方法的运算架构示意图;
图5为一个实施例中卷积处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请提供一种卷积处理方法,可以应用于卷积神经网络加速器对图像的卷积处理中,该卷积神经网络加速器可以包括FPGA芯片(Field Programmable Gate Array,现场可编程逻辑门阵列)。本申请基于卷积神经网络加速器的计算单元(如DSP48)的特性,采用多条流水线并行方式对权重数据和特征数据进行乘加运算,解决了串行计算的时间耗时长与寄存前一级计算的结果的问题。
以下结合图1至图2介绍该方法。该方法主要包括如下步骤:
步骤S201,确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
示例性地,针对3×3的卷积核,该卷积核包括9个权重数据(可以分别记为W0、W1、W2、W3、W4、W5、W6、W7、W8和W9),每个权重数据与特征图上对应的特征数据(可以分别记为A0、A1、A2、A3、A4、A5、A6、A7、A8和A9)进行乘加运算,得到的结果作为卷积运算结果(可以记为SUM),也即,SUM=A0*W0+A1*W1+A2*W2+A3*W3+A4*W4+A5*W5+A6*W6+A7*W7+A8*W8
其中,可以将每一权重数据和每一权重各自对应的特征数据作为一个数据组,得到待乘加运算的9个数据组,如(A0,W0)、(A1,W1)和(A2,W2)等;该数据组的数量与卷积核包括的权重数据的数量一致。
步骤S202,按照所述数据组的数量,确定用于乘加运算的流水线的数量;其中,所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量。
其中,如图1所示,用于乘加运算的各条流水线可以包括一个乘法器101和一个加法器102,乘法器101用于对权重数据和特征数据进行乘法运算,加法器102用于对乘法器输出的多个结果进行相加。
若数据组的数量为9个,那么可以确定用于乘加运算的流水线的数量为3;若数据组的数量为16个,那么可以确定流水线的数量为2或4或8;该流水线的数量与数据组的量具有整数倍关系且小于数据组的数量。
步骤S203,将所述多个数据组等份划分至各条流水线进行乘加运算
如图1所示,针对(A0,W0)、(A1,W1)、(A2,W2)、(A3,W3)、(A4,W4)、(A5,W5)、(A6,W6)、(A7,W7)和(A8,W8)这9个数据组,可以将(A0,W0)、(A1,W1)和(A2,W2)划分至同一条流水线,将(A3,W3)、(A4,W4)和(A5,W5)划分至同一条流水线,将(A6,W6)、(A7,W7)和(A8,W8)划分至同一条流水线;每条流水线进行3个数据组的乘加运算,因此可以称为每条流水线具有3级流水的乘加运算;在一条流水线上,需要打第一级流水的拍用于第二级流水的乘加运算,需要打第二级流水的拍用于第三级流水的乘加运算。如图1所示,在各条流水线完成对应数据组的乘加运算后,将各条流水线输出的结果进行相加,得到的output作为卷积运算结果SUM。
上述卷积处理方法中,按照包括权重数据和特征数据的数据组的数量确定进行乘加运算的流水线的数量,并将各数据组等份划分至各条流水线中进行乘加运算,相较于对各数据组进行串行运算,处理效率较高。
如图3所示,在3×3的卷积数据(权重数据和特征数据)数据流输入至多channel(通道)运算单元,每个channel都有一个如图1所示的运算架构。
若采用图4所示的采用单级级联方式进行串联,将计算数值(权重数据和特征数据)进行每一级打拍处理,总共打8拍完成一次3×3的卷积运算;而本申请提供的卷积处理方法中,各条流水线可以以并行方式进行乘加运算,提高运算效率。
本申请提出的卷积处理方法中,在计算数值(如权重数据)在两个数值来回切换情况下,采用打拍控制切换信号的方式进行切换每次乘法运算的数值替代原来直接打拍计算数值的方式,可以减小flip flop(触发器)数量,降低实现运算的电路面积与功耗。
具体来说,上述步骤S203可以进一步包括:在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
示例性地,若需要用两个卷积核分别对特征图进行卷积运算,那么上述数据组可以包括两个权重数据和一个特征数据,两个权重数据分别属于各卷积核,例如(A01,A02,W0)中,A01和A02分别属于第一卷积核、第二卷积核。
此时,针对数据组包括两个权重数据,需在两个权重数据之间切换的情况,可以采用打拍信号触发对A01和W0的乘加运算,采用该打拍信号与下一个打拍信号之间的信号触发对A02和W0的乘加运算。
上述实施方式中,随着时钟可以在两个权重数据之间切换,省去对权重数据的打拍处理,降低运算电路所用的flip flop(触发器)数量。
为了更好地理解上述方法,以下详细阐述一个本申请卷积处理方法的应用实例。
进一步地,还包括如下步骤:在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
示例性地,在第一条流水线完成对第一个数据组(A01,A02,W0)的乘加运算后,可以通过下一个打拍信号触发第一条流水线进行第二个数据组(A11,A12,W1)中的A11和W1的乘加运算。
上述方式中,在完成当前数据组的乘加运算后,通过下一个打拍信号触发流水线进行下个数据组包括的其中一个权重数据和对应的特征数据的乘加运算,保证卷积处理的正常进行。
在一个实施例中,该卷积处理方法可以应用于FPGA芯片对图像进行卷积处理的场景中,该图像可以是包括待检测对象(如车辆、行人等)的图像。按照卷积核的不同,对图像进行卷积处理具有不同的效果;例如卷积核是边缘检测算子时,利用该边缘检测算子对图像进行卷积处理可以凸显图像中的边缘;又例如卷积核是图像平滑算子,利用图像平滑算子对图像进行卷积处理可以提高图像的平滑性,降低图像噪声。
利用卷积核对图像进行卷积处理主要是卷积核的权重数据和对应的图像特征数据进行相乘,并将各个相乘结果进行相加。对应地,该实施例中的数据组是针对图像进行卷积处理的数据组,每一数据组包括图像的特征数据和卷积核的权重数据;其中,每一条流水线均包括乘法器和加法器,用于对对应数据组进行乘加运算。
本实施例中,卷积核是3×3的边缘检测算子,包括9个权重数据(可以分别记为W0、W1、W2、W3、W4、W5、W6、W7、W8和W9),图像是针对车辆拍摄得到的;为凸显图像中的车辆轮廓,可以利用该边缘检测算子对图像进行卷积处理,该图像的特征数据分别记为A0、A1、A2、A3、A4、A5、A6、A7、A8和A9。对应地,可以得到待乘加运算的9个数据组:(A0,W0)、(A1,W1)、(A2,W2)、(A3,W3)、(A4,W4)、(A5,W5)、(A6,W6)、(A7,W7)和(A8,W8)。
接着,将(A0,W0)、(A1,W1)和(A2,W2)划分至同一条流水线,将(A3,W3)、(A4,W4)和(A5,W5)划分至同一条流水线,将(A6,W6)、(A7,W7)和(A8,W8)划分至同一条流水线;每条流水线进行3个数据组的乘加运算,也即,每条流水线具有3级流水的乘加运算;在一条流水线上,需要打第一级流水的拍用于第二级流水的乘加运算,需要打第二级流水的拍用于第三级流水的乘加运算。在各条流水线完成对应数据组的乘加运算后,将各条流水线输出的结果进行相加,得到的output作为卷积运算结果SUM=A0*W0+A1*W1+A2*W2+A3*W3+A4*W4+A5*W5+A6*W6+A7*W7+A8*W8
同样地,按照上述方式对该图像的其他特征数据进行乘加运算处理,并得到对应的卷积运算结果;根据多个卷积运算结果可以使得车辆轮廓在图像上凸显出来。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种卷积处理装置,包括:
数据组确定模块501,用于确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
流水线数量确定模块502,用于按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
第一乘加运算模块503,用于将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,若数据组包括两个权重数据和一个特征数据,所述第一乘加运算模块503,还用于在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,所述装置还包括第二乘加运算模块,用于在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
在其中一个实施例中,所述数据组的数量与卷积核包括的权重数据的数量一致。
在其中一个实施例中,各条流水线以并行方式进行乘加运算。
关于卷积处理装置的具体限定可以参见上文中对于卷积处理方法的限定,在此不再赘述。上述卷积处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于处理器中,也可以以软件形式存储于存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种卷积神经网络加速器,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如下步骤:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
在其中一个实施例中,所述数据组的数量与卷积核包括的权重数据的数量一致。
在其中一个实施例中,各条流水线以并行方式进行乘加运算。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
在其中一个实施例中,处理器执行计算机程序时还实现如下步骤:在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
在其中一个实施例中,所述数据组的数量与卷积核包括的权重数据的数量一致。
在其中一个实施例中,各条流水线以并行方式进行乘加运算。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上的实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种卷积处理方法,其特征在于,所述方法包括:
确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
将所述多个数据组等份划分至各条流水线进行乘加运算。
2.根据权利要求1所述的方法,其特征在于,若数据组包括两个权重数据和一个特征数据,所述将所述多个数据组等份划分至各条流水线进行乘加运算,包括:
在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述数据组的数量与卷积核包括的权重数据的数量一致。
5.根据权利要求1至3任一项所述的方法,其特征在于,各条流水线以并行方式进行乘加运算。
6.一种卷积处理装置,其特征在于,所述装置包括:
数据组确定模块,用于确定待乘加运算的多个数据组;各数据组均包括权重数据和特征数据;
流水线数量确定模块,用于按照所述数据组的数量,确定用于乘加运算的流水线的数量;所述流水线的数量与所述数据组的数量具有整数倍关系,且小于所述数据组的数量;
第一乘加运算模块,用于将所述多个数据组等份划分至各条流水线进行乘加运算。
7.根据权利要求6所述的装置,其特征在于,若数据组包括两个权重数据和一个特征数据,所述第一乘加运算模块,还用于在流水线上进行当前数据组的乘加运算时,针对所述当前数据组包括的其中一个权重数据,通过打拍信号,触发所述流水线进行所述其中一个权重数据与所述特征数据的乘加运算,以及针对所述当前数据组包括的另一个权重数据,通过所述打拍信号与下个打拍信号之间的信号,触发所述流水线进行所述另一个权重数据与所述特征数据的乘加运算。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括第二乘加运算模块,用于在流水线上完成针对所述当前数据组的乘加运算后,通过所述下个打拍信号,触发所述流水线进行下个数据组包括的其中一个权重数据与对应的特征数据的乘加运算。
9.一种卷积神经网络加速器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法。
CN202111086222.6A 2021-09-16 2021-09-16 卷积处理方法、装置、卷积神经网络加速器和存储介质 Pending CN113705795A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111086222.6A CN113705795A (zh) 2021-09-16 2021-09-16 卷积处理方法、装置、卷积神经网络加速器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111086222.6A CN113705795A (zh) 2021-09-16 2021-09-16 卷积处理方法、装置、卷积神经网络加速器和存储介质

Publications (1)

Publication Number Publication Date
CN113705795A true CN113705795A (zh) 2021-11-26

Family

ID=78661126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111086222.6A Pending CN113705795A (zh) 2021-09-16 2021-09-16 卷积处理方法、装置、卷积神经网络加速器和存储介质

Country Status (1)

Country Link
CN (1) CN113705795A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528526A (zh) * 2022-04-24 2022-05-24 深圳思谋信息科技有限公司 卷积数据处理方法、装置、卷积运算加速器和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988183B1 (en) * 1998-06-26 2006-01-17 Derek Chi-Lan Wong Methods for increasing instruction-level parallelism in microprocessors and digital system
US20180373677A1 (en) * 2017-05-16 2018-12-27 Jaber Technology Holdings Us Inc. Apparatus and Methods of Providing Efficient Data Parallelization for Multi-Dimensional FFTs
CN109313723A (zh) * 2018-01-15 2019-02-05 深圳鲲云信息科技有限公司 人工智能卷积处理方法、装置、可读存储介质、及终端
CN109416755A (zh) * 2018-01-15 2019-03-01 深圳鲲云信息科技有限公司 人工智能并行处理方法、装置、可读存储介质、及终端
CN110598844A (zh) * 2019-08-06 2019-12-20 天津大学 一种基于fpga的并行卷积神经网络加速器及加速方法
CN110647975A (zh) * 2018-06-27 2020-01-03 龙芯中科技术有限公司 一种数据处理方法、装置、设备以及介质
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
WO2020173183A1 (en) * 2019-02-27 2020-09-03 Huawei Technologies Co., Ltd. Parallel processing pipeline considerations for video data with portions designated for special treatment
US20200349433A1 (en) * 2018-01-15 2020-11-05 Shenzhen Corerain Technologies Co., Ltd. Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988183B1 (en) * 1998-06-26 2006-01-17 Derek Chi-Lan Wong Methods for increasing instruction-level parallelism in microprocessors and digital system
US20180373677A1 (en) * 2017-05-16 2018-12-27 Jaber Technology Holdings Us Inc. Apparatus and Methods of Providing Efficient Data Parallelization for Multi-Dimensional FFTs
CN109313723A (zh) * 2018-01-15 2019-02-05 深圳鲲云信息科技有限公司 人工智能卷积处理方法、装置、可读存储介质、及终端
CN109416755A (zh) * 2018-01-15 2019-03-01 深圳鲲云信息科技有限公司 人工智能并行处理方法、装置、可读存储介质、及终端
US20200349433A1 (en) * 2018-01-15 2020-11-05 Shenzhen Corerain Technologies Co., Ltd. Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal
CN110647975A (zh) * 2018-06-27 2020-01-03 龙芯中科技术有限公司 一种数据处理方法、装置、设备以及介质
WO2020173183A1 (en) * 2019-02-27 2020-09-03 Huawei Technologies Co., Ltd. Parallel processing pipeline considerations for video data with portions designated for special treatment
CN110598844A (zh) * 2019-08-06 2019-12-20 天津大学 一种基于fpga的并行卷积神经网络加速器及加速方法
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐欣;刘强;王少军;: "一种高度并行的卷积神经网络加速器设计方法", 哈尔滨工业大学学报, no. 04 *
陈磊;叶焱;: "多方向自适应阈值边缘检测算法及FPGA并行实现", 无线通信技术, no. 04 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528526A (zh) * 2022-04-24 2022-05-24 深圳思谋信息科技有限公司 卷积数据处理方法、装置、卷积运算加速器和存储介质
CN114528526B (zh) * 2022-04-24 2022-08-02 深圳思谋信息科技有限公司 卷积数据处理方法、装置、卷积运算加速器和存储介质

Similar Documents

Publication Publication Date Title
JP6507271B2 (ja) Cnn処理方法およびデバイス
CN115344237B (zh) 结合Karatsuba和蒙哥马利模乘的数据处理方法
US20190146756A1 (en) Segment divider, segment division operation method, and electronic device
EP3769208B1 (en) Stochastic rounding logic
US20180088908A1 (en) Circuit for Performing a Multiply-and-Accumulate Operation
US20140351566A1 (en) Moving average processing in processor and processor
CN113705795A (zh) 卷积处理方法、装置、卷积神经网络加速器和存储介质
JP7387017B2 (ja) アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム
CN111445016B (zh) 加速非线性数学计算的系统及方法
US20070198811A1 (en) Data-driven information processor performing operations between data sets included in data packet
CN110659014B (zh) 乘法器及神经网络计算平台
CN110716751B (zh) 高并行度计算平台、系统及计算实现方法
CN113033813A (zh) 数据处理方法、装置、计算机设备和存储介质
CN111179175B (zh) 基于卷积神经网络的图像处理方法、装置及存储介质
CN112668709B (zh) 计算装置以及用于数据重用的方法
CN111008697B (zh) 一种卷积神经网络加速器实现架构
CN114385112A (zh) 处理模数乘法的装置及方法
CN116157807A (zh) 用于可变卷积运算的弹性瓶颈架构
Fischer et al. BinArray: A scalable hardware accelerator for binary approximated CNNs
CN111124358A (zh) 一种序列累加器的运算方法和设备
Zadiraka et al. Calculating the Sum of Multidigit Values in a Parallel Computational Model
CN112862109B (zh) 深度学习模型的执行方法、装置、电子设备及存储介质
CN111340215B (zh) 一种网络模型推理加速方法、装置、存储介质和智能设备
CN111694543B (zh) 近似乘法器设计方法、近似乘法器和图像锐化电路
CN116301903B (zh) 一种编译器、ai网络编译方法、处理方法、执行系统

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
CB03 Change of inventor or designer information

Inventor after: Hu Feng

Inventor after: Zhang Bin

Inventor after: Liang Youqiang

Inventor after: Liu Zhaohan

Inventor after: Shen Xiaoyong

Inventor after: Lv Jiangbo

Inventor before: Hu Feng

Inventor before: Zhang Bin

Inventor before: Liang Youqiang

Inventor before: Liu Zhaohan

Inventor before: Yu Bei

Inventor before: Shen Xiaoyong

Inventor before: Lv Jiangbo

Inventor before: Jia Jiaya

CB03 Change of inventor or designer information