CN109117187A - 卷积神经网络加速方法及相关设备 - Google Patents
卷积神经网络加速方法及相关设备 Download PDFInfo
- Publication number
- CN109117187A CN109117187A CN201810981303.4A CN201810981303A CN109117187A CN 109117187 A CN109117187 A CN 109117187A CN 201810981303 A CN201810981303 A CN 201810981303A CN 109117187 A CN109117187 A CN 109117187A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- filter
- calculation result
- transformation
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例公开了一种卷积神经网络加速装置,用于通过将大量的乘法运算转化为加法运算,从而提高卷积神经网络的运算速度。本申请实施例还提供了相应的方法和滤波器。本申请实施例方法包括:该装置包括滤波器和存储器,该滤波器用于从特征图中获取第一行数据,并将该第一行数据存储于该存储器,该存储器存储一行宽度的该第一行数据;该滤波器还用于对该第一行数据进行维诺格拉德变换,得到第一计算结果;该滤波器还用于将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种卷积神经网络加速方法及相关设备。
背景技术
得益于深度学习的进步以及大数据技术的发展,作为其中的核心算法卷积神经网络(convolutional neural network,CNN)广泛被应用到图片分类、人脸识别、图像语义理解、无人驾驶等诸多应用领域。伴随着海量的矢量计算和频繁的访存操作,传统的中央处理器(central processing unit,CPU)计算平台无法满足CNN在很多应用场合下的低延时需求。现场可编程门阵列(field-programmable gate array,FPGA)平台以其低成本、低延时、高能效、高可靠的特点,为CNN的硬件加速提出了一种全新的尝试。
在FPGA平台上对卷积神经网络进行硬件加速时,通常采用二维滤波器,通过滤波器窗口滑动的方式依次将特征图上包含的数据和滤波器系数进行卷积。比如常见的3*3滤波器窗口,需要提取窗口里的9个数和滤波器中的9个系数做卷积运算。
由于在进行二维卷积运算过程中需要进行大量的乘法运算,而FPGA平台中的乘法器资源有限,因此需要花费较长时间才能利用较少的乘法器完成大量的乘法运算,降低了卷积运算的速度。
发明内容
本申请实施例提供了一种卷积神经网络加速装置,用于通过将大量的乘法运算转化为加法运算,从而提高卷积神经网络的运算速度。本申请实施例还提供了相应的方法和滤波器。
第一方面,本申请实施例提供一种卷积神经网络加速装置,该装置包括滤波器和存储器,
该滤波器用于从特征图中获取第一行数据,并将该第一行数据存储于该存储器,该存储器存储一行宽度的该第一行数据;
该滤波器还用于对该第一行数据进行维诺格拉德变换,得到第一计算结果;
该滤波器还用于将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
第二方面,本申请实施例提供一种滤波器,该滤波器包括:
获取单元,用于从特征图中获取第一行数据,该第一行数据的宽度为一行;
变换单元,用于对该第一行数据进行维诺格拉德变换,得到第一计算结果;
相加单元,用于将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
第三方面,本申请实施例提供一种卷积神经网络加速方法,该方法应用于滤波器,该方法包括:
从特征图中获取第一行数据,该第一行数据的宽度为一行;
对该第一行数据进行维诺格拉德变换,得到第一计算结果;
将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有缓存数据处理的指令,当其在计算机上运行时,使得计算机执行上述第三方面所述的方法。
第五方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上技术方案可以看出,本申请实施例具有以下优点:
由存储器存储从特征图中获取的第一行数据,该第一行数据的宽度为一行,通过滤波器对该第一行数据进行维诺格拉德变换,得到第一计算结果,并对至少两个第二计算结果相加得到卷积结果,其中第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。也即将二维卷积运算转化为至少两个一维卷积运算并且利用维诺格拉德变换,将大量乘法操作变为了加法操作,从而可以减少对硬件中乘法器资源的使用,从而提高卷积神经网络的运算速度,进而提高系统计算性能;此外,通过二维滤波器窗口取数较麻烦,不利于形成流水线,通过一维的方式来按行取数,简化了取数过程,更易提高系统处理速度。
附图说明
图1为本申请实施例提供的卷积神经网络加速装置的结构示意图;
图2为本申请实施例提供的卷积神经网络加速装置的另一种结构示意图;
图3为本申请实施例提供的滤波器的结构示意图;
图4为本申请实施例提供的卷积神经网络加速方法的流程示意图。
具体实施方式
本申请实施例提供了一种卷积神经网络加速装置,用于通过将大量的乘法运算转化为加法运算,从而提高卷积神经网络的运算速度。本申请实施例还提供了相应的方法和滤波器。
本申请的说明书和权利要求书中的术语“第一”、“第二”、“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
本申请实施例可以应用于现场可编程门阵列FPGA平台10,该FPGA平台10上运行有卷积神经网络加速装置100,该卷积神经网络加速装置100可以包括滤波器1000、存储器1001和寄存器1002。
本申请实施例中,该滤波器1000可以为卷积核为3个的滤波器,也可以为卷积核为5个的滤波器,也可以为卷积核为7个的滤波器,还可以为卷积核个数为其他数额的滤波器,用于对从特征图中提取的数据进行卷积运算,具体卷积核的数量,此处不做限定。
存储器1001可以为先进先出存储器,存储器1001的数量可以为一个,也可以为多个,用于存储特征图中包含的数据。
寄存器1002用于存储特征图中包含的数据,容量比存储器1001小,寄存器1002的数量可以与存储器1001的数量一致。
下面对本申请中的卷积神经网络加速装置进行详细描述,本申请实施例提供的一种卷积神经网络加速装置,请参阅图1,本申请实施例中卷积神经网络加速装置100可以包括滤波器1000和存储器1001;
滤波器1000用于从特征图中获取第一行数据,并将该第一行数据存储于该存储器1001,该存储器1001存储一行宽度的该第一行数据。
本实施例中,特征图为由多行行数据组成的二维数据图,其中,每行行数据中包含多个数据。
本实施例中,每个存储器1001只能存储一行宽度的行数据,该存储器1001可以为多个,该存储器1001的个数可以根据该滤波器的行数确定,作为示例,例如该滤波器采用的为3*3的滤波器窗口,则存储器1001的个数可以为3个;作为另一示例,例如该滤波器采用的为5*5的滤波器窗口,则存储器1001的个数可以为5个,具体存储器1001的数量,应结合滤波器的行数灵活设定,具体此处不做限定。
滤波器1000用于对该第一行数据进行维诺格拉德变换,得到第一计算结果;
本实施例中,维诺格拉德(winograd)变换是傅里叶变换算法的一种,进行变换过程中所采用的数据和滤波器系数均为一维行向量。
滤波器1000还用于将至少两个第二计算结果相加,得到卷积结果。
本实施例中,滤波器1000对特征图包含的多行行数据,逐行进行维诺格拉德变换,从而得到至少两个第二计算结果,其中,该第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行,将至少两个第二计算结果相加,得到卷积结果。
应当理解,第一计算结果为在逐行进行维诺格拉德变换的多次变换过程中的某一次变换得到的计算结果,第二计算结果为对计算结果执行相加操作时的多个计算结果,第二计算结果包含第一计算结果。
本实施例中,第二计算结果的个数可以根据该滤波器的行数确定,作为示例,例如该滤波器采用的为3*3的滤波器窗口,则第二计算结果的个数可以为3个;作为另一示例,例如该滤波器采用的为5*5的滤波器窗口,则第二计算结果的个数可以为5个,具体第二计算结果的个数,应结合滤波器的行数灵活设定,具体此处不做限定。
本实施例中,由存储器1001存储从特征图中获取的第一行数据,该第一行数据的宽度为一行,通过滤波器1000对该第一行数据进行维诺格拉德变换,得到第一计算结果,并对至少两个第二计算结果相加得到卷积结果,其中第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。也即将二维卷积运算转化为至少两个一维卷积运算并且利用维诺格拉德变换,将大量乘法操作变为了加法操作,从而可以减少对硬件中乘法器资源的使用,从而提高卷积神经网络的运算速度,进而提高系统计算性能。
基于前述图1所描述的实施例,本申请实施例提供的另一种缓存数据处理装置,如图1所示本申请实施例中卷积神经网络加速装置100可以包括滤波器1000、存储器1001和寄存器1002,具体参阅图2,该卷积神经网络加速装置100可以执行如下步骤:
201、滤波器1000从特征图中获取第一行数据,并将该第一行数据存储于该存储器1001。
本实施例中,特征图中包含多行行数据,由于该存储器只能存储一行宽度的行数据,因此,滤波器可以从特征图中获取一行宽度的第一行数据,并将该第一行数据存储于存储器1001中。作为示例,例如滤波器采用的为3*3的滤波器窗口,28*28的特征图,则存储器1001的个数可以为3个,第一个存储器可以依次存储第1到第26行特征图的数据,第二个存储器可以依次存储第2到第27行特征图的数据,第三个存储器可以依次存储第3到第28行特征图的数据,应当理解,此处仅证明本方案的可实现性,不具有限定意义。
202、滤波器1000从存储器1001存储的该第一行数据中顺序提取预设个数的该数据,并将预设个数的该数据通过寄存器1002锁存。
本实施例中,由于该第一行数据中可以包含多个数据,而滤波器的卷积核数量有限,一次只能对预设个数的数据进行维诺格拉德变换,因此滤波器1000可以从每个存储器1001存储的该第一行数据中顺序提取预设个数的该数据,并将预设个数的该数据通过寄存器1002锁存。作为示例,例如存储器为三个,滤波器可以从第一个存储器中顺序提取预设个数的数据,放入对应的第一个寄存器,再从第二个存储器中顺序提取预设个数的数据,放入对应的第二个寄存器,滤波器可以从第三个存储器中顺序提取预设个数的数据,放入对应的第三个寄存器,应当理解,此处仅证明本方案的可实现性,不具有限定意义。
本实施例中,寄存器1002的个数可以与存储器1001的个数一致。
203、滤波器1000对预设个数的数据进行维诺格拉德变换,得到第三计算结果。
本实施例中,滤波器1000可以对多个寄存器1002中锁存的预设个数的数据进行维诺格拉德变换,从而得到第三计算结果。作为示例,例如滤波器的卷积核为三个,存储器为三个,寄存器为三个,对三个寄存器中存储的预设个数的数据由三个卷积核分别进行维诺格拉德变换,应当理解,此处仅证明本方案的可实现性,不具有限定意义。
本实施例中,维诺格拉德(winograd)变换可以表现为F(m,n),m表示进行该变换运算后输出的结果的长度,该n表示卷积核的长度。其中,m和n有多种取值组合,作为一个示例,可以为m取2,n取3;作为另一示例,也可以为m取4,n取3等,应当理解,m和n还有其他的取值组合,具体此处不做限定。
本实施例中,维诺格拉德变换(winograd)具体表现为:
F(m,n)=AT[(Gg)⊙(BTd)]
其中,该m为该第三计算结果的长度,该n为卷积核的长度,当该m和该n确定时,该AT、该G和该BT为确定取值的矩阵,g为滤波器系数,d为该预设个数的数据,该预设个数为m+n-1,该(Gg)⊙(BTd)为对该Gg和BTd进行点积运算。
本实施例中,当滤波器采用的为3*3的滤波器窗口时,存储器1001的个数可以为三个,m的取值可以为2,n的取值可以为3时,则d的取值个数为4,也即寄存器1002可以一次锁存4个数据,在该m和该n确定后,该AT、该G和该BT也可以确定,本其中,
本实施例中,确定了m和n的取值,增加了本方案的可实施性。
204、滤波器1000重复执行步骤202和步骤203,直至对该第一行数据中包含的多个数据均进行该维诺格拉德变换。
本实施例中,滤波器1000重复执行步骤202和步骤203,直至对该第一行数据中包含的多个数据均进行该维诺格拉德变换,每执行一次可以得到一个第三计算结果,多次执行后,可以得到多个第三计算结果,其中,每个第三计算结果的长度为n。
205、滤波器1000组合多个第三计算结果。
本实施例中,滤波器1000将多个长度为n的第三计算结果进行组合,以得到第一计算结果。本申请中通过寄存器对预设个数的数据进行锁存后,再逐次对预设个数的数据进行维诺格拉德变换,进而对得到的多个第三计算结果组合,以获得第一计算结果,替代了原有二维滤波器滑动窗口提取数据的方式,降低了读取数据的难度。
206、滤波器1000将至少两个第二计算结果进行流水线相加。
本实施例中,滤波器1000在获得第一计算结果后,利用加法树将至少两个第二计算结果进行流水线相加,其中,第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行,也即该至少两个第二计算结果包含该第一结果,该至少两个第二结果为在进行流水线相加时的第一计算结果。
图3是本申请实施例提供的滤波器的一种结构示意图,滤波器300可以包括:
获取单元301,用于从特征图中获取第一行数据,该第一行数据的宽度为一行;
变换单元302,用于对该第一行数据进行维诺格拉德变换,得到第一计算结果;
相加单元303,用于将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
一种可能的实现方式中,变化单元302具体用于执行如下步骤:
1)从该第一行数据中顺序提取预设个数的该数据,并通过该寄存器进行锁存;2)对该预设个数的数据进行维诺格拉德变换,得到第三计算结果;重复执行步骤1)和步骤2),直至对该第一行数据中包含的多个数据均进行该维诺格拉德变换,得到多个该第三计算结果;组合该多个第三计算结果,得到该第一计算结果。
一种可能的实现方式中,相加单元303具体用于:
将该至少两个第二计算结果进行流水线相加。
一种可能的实现方式中,该维诺格拉德变换具体表现为:
F(m,n)=AT[(Gg)⊙(BTd)]
其中,该m为该第三计算结果的长度,该n为卷积核的长度,当该m和该n确定时,该AT、该G和该BT为确定取值的矩阵,g为滤波器系数,d为该预设个数的数据,该预设个数为m+n-1,该(Gg)⊙(BTd)为对该Gg和BTd进行点积运算。
一种可能的实现方式中,该m的取值为2,该n的取值为3,该d的预设个数为4,
本实施例中,由存储器存储从特征图中获取的第一行数据,该第一行数据的宽度为一行,通过变换单元302对该第一行数据进行维诺格拉德变换,得到第一计算结果,并由相加单元303对至少两个第二计算结果相加得到卷积结果,其中第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。也即将二维卷积运算转化为至少两个一维卷积运算并且利用维诺格拉德变换,将大量乘法操作变为了加法操作,从而可以减少对硬件中乘法器资源的使用,从而提高卷积神经网络的运算速度,进而提高系统计算性能;此外,通过二维滤波器窗口取数较麻烦,不利于形成流水线,通过一维的方式来按行取数,简化了取数过程,更易提高系统处理速度。
图4是本申请实施例提供的卷积神经网络加速方法的一种流程示意图,本实施例提供的方法可以包括:
401、滤波器从特征图中获取第一行数据,该第一行数据的宽度为一行;
402、滤波器对该第一行数据进行维诺格拉德变换,得到第一计算结果;
403、滤波器将至少两个第二计算结果相加,得到卷积结果,其中,该第二计算结果为对第二行数据进行行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。
一种可能的实现方式中,该第一行数据包含多个数据,该步骤402具体包括:
1)滤波器从该第一行数据中顺序提取并锁存预设个数的该数据;
2)滤波器对该预设个数的数据进行维诺格拉德变换,得到第三计算结果;
滤波器重复执行步骤1)和步骤2),直至对该第一行数据中包含的多个数据均进行该维诺格拉德变换,得到多个该第三计算结果;
滤波器组合该多个第三计算结果,得到该第一计算结果。
一种可能的实现方式中,该步骤403具体包括:
滤波器将该至少两个第二计算结果进行流水线相加。
一种可能的实现方式中,该维诺格拉德变换具体表现为:
F(m,n)=AT[(Gg)⊙(BTd)]
其中,该m为该第三计算结果的长度,该n为卷积核的长度,当该m和该n确定时,该AT、该G和该BT为确定取值的矩阵,g为滤波器系数,d为该预设个数的数据,该预设个数为m+n-1,该(Gg)⊙(BTd)为对该Gg和BTd进行点积运算。
一种可能的实现方式中,该m的取值为2,该n的取值为3,该d的预设个数为4,
本实施例中,由存储器存储从特征图中获取的第一行数据,该第一行数据的宽度为一行,通过滤波器对该第一行数据进行维诺格拉德变换,得到第一计算结果,并对至少两个第二计算结果相加得到卷积结果,其中第二计算结果为对第二行数据进行维诺格拉德变换获得,该第一行数据和该第二行数据归属于同一特征图,且宽度均为一行。也即将二维卷积运算转化为至少两个一维卷积运算并且利用维诺格拉德变换,将大量乘法操作变为了加法操作,从而可以减少对硬件中乘法器资源的使用,从而提高卷积神经网络的运算速度,进而提高系统计算性能;此外,通过二维滤波器窗口取数较麻烦,不利于形成流水线,通过一维的方式来按行取数,简化了取数过程,更易提高系统处理速度。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有卷积神经网络加速的指令,当其在计算机上运行时,使得计算机执行如前述图1和图2所示实施例中描述的卷积神经网络加速方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种卷积神经网络加速装置,其特征在于,所述装置包括滤波器和存储器,
所述滤波器用于从特征图中获取第一行数据,并将所述第一行数据存储于所述存储器,所述存储器存储一行宽度的所述第一行数据;
所述滤波器还用于对所述第一行数据进行维诺格拉德变换,得到第一计算结果;
所述滤波器还用于将至少两个第二计算结果相加,得到卷积结果,其中,所述第二计算结果为对第二行数据进行维诺格拉德变换获得,所述第一行数据和所述第二行数据归属于同一特征图,且宽度均为一行。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括寄存器,所述第一行数据中包含多个数据,
所述滤波器具体用于执行如下步骤:
1)从所述存储器存储的所述第一行数据中顺序提取预设个数的所述数据,并通过所述寄存器进行锁存;
2)对所述预设个数的数据进行维诺格拉德变换,得到第三计算结果;
重复执行步骤1)和步骤2),直至对所述第一行数据中包含的多个数据均进行所述维诺格拉德变换,得到多个所述第三计算结果;
组合所述多个第三计算结果,得到所述第一计算结果。
3.一种滤波器,其特征在于,所述滤波器包括:
获取单元,用于从特征图中获取第一行数据,所述第一行数据的宽度为一行;
变换单元,用于对所述第一行数据进行维诺格拉德变换,得到第一计算结果;
相加单元,用于将至少两个第二计算结果相加,得到卷积结果,其中,所述第二计算结果为对第二行数据进行行维诺格拉德变换获得,所述第一行数据和所述第二行数据归属于同一特征图,且宽度均为一行。
4.根据权利要求3所述的滤波器,其特征在于,所述第一行数据中包含多个数据,
所述变换单元具体用于执行如下步骤:
1)从所述第一行数据中顺序提取预设个数的所述数据,并通过所述寄存器进行锁存;
2)对所述预设个数的数据进行维诺格拉德变换,得到第三计算结果;
重复执行步骤1)和步骤2),直至对所述第一行数据中包含的多个数据均进行所述维诺格拉德变换,得到多个所述第三计算结果;
组合所述多个第三计算结果,得到所述第一计算结果。
5.一种卷积神经网络加速方法,其特征在于,所述方法应用于滤波器,所述方法包括:
从特征图中获取第一行数据,所述第一行数据的宽度为一行;
对所述第一行数据进行维诺格拉德变换,得到第一计算结果;
将至少两个第二计算结果相加,得到卷积结果,其中,所述第二计算结果为对第二行数据进行行维诺格拉德变换获得,所述第一行数据和所述第二行数据归属于同一特征图,且宽度均为一行。
6.根据权利要求5所述的方法,其特征在于,所述第一行数据包含多个数据,
1)从所述第一行数据中顺序提取并锁存预设个数的所述数据;
2)对所述预设个数的数据进行维诺格拉德变换,得到第三计算结果;
重复执行步骤1)和步骤2),直至对所述第一行数据中包含的多个数据均进行所述维诺格拉德变换,得到多个所述第三计算结果;
组合所述多个第三计算结果,得到所述第一计算结果。
7.根据权利要求5所述的方法,其特征在于,所述将至少两个第二计算结果相加,包括:
将所述至少两个第二计算结果进行流水线相加。
8.根据权利要求6所述的方法,其特征在于,所述维诺格拉德变换具体表现为:
F(m,n)=AT[(Gg)⊙(BTd)]
其中,所述m为所述第三计算结果的长度,所述n为卷积核的长度,当所述m和所述n确定时,所述AT、所述G和所述BT为确定取值的矩阵,g为滤波器系数,d为所述预设个数的数据,所述预设个数为m+n-1,所述(Gg)⊙(BTd为对所述Gg和BTd进行点积运算。
9.根据权利要求8所述的方法,其特征在于,所述m的取值为2,所述n的取值为3,所述d的预设个数为4,
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有缓存数据处理的指令,当其在计算机上运行时,使得计算机执行上述权利要求5-9任一所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810981303.4A CN109117187A (zh) | 2018-08-27 | 2018-08-27 | 卷积神经网络加速方法及相关设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810981303.4A CN109117187A (zh) | 2018-08-27 | 2018-08-27 | 卷积神经网络加速方法及相关设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN109117187A true CN109117187A (zh) | 2019-01-01 |
Family
ID=64861180
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810981303.4A Withdrawn CN109117187A (zh) | 2018-08-27 | 2018-08-27 | 卷积神经网络加速方法及相关设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109117187A (zh) |
Cited By (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
| CN110264412A (zh) * | 2019-05-16 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 图像处理方法、装置、终端设备以及存储介质 |
| CN110737473A (zh) * | 2019-09-24 | 2020-01-31 | 北京小米移动软件有限公司 | 数据处理方法及装置、终端、存储介质 |
| CN111814957A (zh) * | 2020-06-28 | 2020-10-23 | 深圳云天励飞技术有限公司 | 神经网络运算方法及相关设备 |
| CN112149047A (zh) * | 2019-06-27 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 数据的处理方法及装置、存储介质和电子装置 |
| CN112215330A (zh) * | 2019-07-09 | 2021-01-12 | 杭州海康威视数字技术股份有限公司 | 基于神经网络的卷积方法及装置 |
| CN112528219A (zh) * | 2019-09-19 | 2021-03-19 | 三星电子株式会社 | 存储器装置及其运算方法、计算设备 |
| WO2021082723A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置 |
| WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
| CN112784206A (zh) * | 2019-11-01 | 2021-05-11 | 中科寒武纪科技股份有限公司 | winograd卷积运算方法、装置、设备及存储介质 |
| CN114065119A (zh) * | 2021-11-22 | 2022-02-18 | Oppo广东移动通信有限公司 | 数据处理方法及相关产品 |
| CN114254255A (zh) * | 2020-09-25 | 2022-03-29 | 华为技术有限公司 | 卷积计算方法及相关装置 |
| CN115039121A (zh) * | 2020-02-03 | 2022-09-09 | 高通股份有限公司 | 混合卷积运算 |
-
2018
- 2018-08-27 CN CN201810981303.4A patent/CN109117187A/zh not_active Withdrawn
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
| CN110264412A (zh) * | 2019-05-16 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 图像处理方法、装置、终端设备以及存储介质 |
| CN112149047A (zh) * | 2019-06-27 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 数据的处理方法及装置、存储介质和电子装置 |
| EP3958149A4 (en) * | 2019-06-27 | 2022-04-27 | ZTE Corporation | DATA PROCESSING METHOD AND DEVICE, STORAGE MEDIA, AND ELECTRONIC DEVICE |
| CN112215330B (zh) * | 2019-07-09 | 2024-04-26 | 杭州海康威视数字技术股份有限公司 | 基于神经网络的卷积方法及装置 |
| CN112215330A (zh) * | 2019-07-09 | 2021-01-12 | 杭州海康威视数字技术股份有限公司 | 基于神经网络的卷积方法及装置 |
| CN112528219A (zh) * | 2019-09-19 | 2021-03-19 | 三星电子株式会社 | 存储器装置及其运算方法、计算设备 |
| CN110737473A (zh) * | 2019-09-24 | 2020-01-31 | 北京小米移动软件有限公司 | 数据处理方法及装置、终端、存储介质 |
| CN112784206A (zh) * | 2019-11-01 | 2021-05-11 | 中科寒武纪科技股份有限公司 | winograd卷积运算方法、装置、设备及存储介质 |
| CN112765542A (zh) * | 2019-11-01 | 2021-05-07 | 中科寒武纪科技股份有限公司 | 运算装置 |
| WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
| WO2021082723A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置 |
| US12547670B2 (en) | 2019-11-01 | 2026-02-10 | Cambricon Technologies Corporation Limited | Operation apparatus |
| CN115039121A (zh) * | 2020-02-03 | 2022-09-09 | 高通股份有限公司 | 混合卷积运算 |
| CN111814957B (zh) * | 2020-06-28 | 2024-04-02 | 深圳云天励飞技术股份有限公司 | 神经网络运算方法及相关设备 |
| CN111814957A (zh) * | 2020-06-28 | 2020-10-23 | 深圳云天励飞技术有限公司 | 神经网络运算方法及相关设备 |
| CN114254255A (zh) * | 2020-09-25 | 2022-03-29 | 华为技术有限公司 | 卷积计算方法及相关装置 |
| CN114254255B (zh) * | 2020-09-25 | 2025-01-17 | 华为技术有限公司 | 卷积计算方法及相关装置 |
| CN114065119A (zh) * | 2021-11-22 | 2022-02-18 | Oppo广东移动通信有限公司 | 数据处理方法及相关产品 |
| CN114065119B (zh) * | 2021-11-22 | 2025-01-17 | Oppo广东移动通信有限公司 | 数据处理方法及相关产品 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109117187A (zh) | 卷积神经网络加速方法及相关设备 | |
| Wang et al. | Wide compression: Tensor ring nets | |
| CN107609642B (zh) | 计算装置和方法 | |
| CN110941698B (zh) | 一种基于bert下卷积神经网络的服务发现方法 | |
| KR20220129107A (ko) | 행렬 곱셈기 | |
| CN112163601B (zh) | 图像分类方法、系统、计算机设备及存储介质 | |
| CN110766128A (zh) | 卷积计算单元、计算方法及神经网络计算平台 | |
| Bouguezel et al. | A new radix-2/8 FFT algorithm for length-q/spl times/2/sup m/DFTs | |
| CN114764615A (zh) | 卷积运算的实现方法、数据处理方法及装置 | |
| CN112200300A (zh) | 卷积神经网络运算方法及装置 | |
| JP7299317B2 (ja) | 言語処理のためのリカレントニューラルネットワークにおける隠れ状態の生成方法及び装置 | |
| CN112561028B (zh) | 训练神经网络模型的方法、数据处理的方法及装置 | |
| WO2023045516A1 (zh) | 执行fft的方法、装置及设备 | |
| CN107451097B (zh) | 国产申威26010众核处理器上多维fft的高性能实现方法 | |
| CN112364989A (zh) | 一种基于快速傅里叶变换的卷积神经网络加速设计方法 | |
| CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
| WO2018228399A1 (zh) | 运算装置和方法 | |
| CN109583586A (zh) | 一种卷积核处理方法及装置 | |
| Xiao et al. | FPGA-based scalable and highly concurrent convolutional neural network acceleration | |
| de Geus et al. | Variability Evaluation of CNNs using Cross-validation on Viruses Images. | |
| Arredondo-Velazquez et al. | A streaming architecture for Convolutional Neural Networks based on layer operations chaining | |
| CN113918876B (zh) | 反卷积计算的方法、硬件加速器、设备及可读存储介质 | |
| WO2024239971A1 (zh) | 神经网络模型的编译方法、推理方法、装置、设备和介质 | |
| CN113065997A (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
| CN112215338A (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 | ||
| WW01 | Invention patent application withdrawn after publication | ||
| WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190101 |