CN115292662B - 一种卷积加速运算方法、装置、电子设备及存储介质 - Google Patents

一种卷积加速运算方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115292662B
CN115292662B CN202210995284.7A CN202210995284A CN115292662B CN 115292662 B CN115292662 B CN 115292662B CN 202210995284 A CN202210995284 A CN 202210995284A CN 115292662 B CN115292662 B CN 115292662B
Authority
CN
China
Prior art keywords
data
dimensional
convolution
convolution kernel
target
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.)
Active
Application number
CN202210995284.7A
Other languages
English (en)
Other versions
CN115292662A (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.)
Shanghai Suiyuan Technology Co ltd
Original Assignee
Shanghai Enflame 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 Shanghai Enflame Technology Co ltd filed Critical Shanghai Enflame Technology Co ltd
Priority to CN202210995284.7A priority Critical patent/CN115292662B/zh
Publication of CN115292662A publication Critical patent/CN115292662A/zh
Application granted granted Critical
Publication of CN115292662B publication Critical patent/CN115292662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种卷积加速运算方法、装置、电子设备及存储介质,包括:将目标卷积运算对应的输入特征图数据以及卷积核数据加载至高级缓存区中;目标卷积运算对应的膨胀率为2;将高级缓存区中的各数据逐级搬运至低级缓存区;将低级缓存区中的各数据搬运至计算单元,通过计算单元根据各输入特征图数据以及卷积核数据,将目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;通过计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。本发明实施例的技术方案可以减少卷积运算的耗时,提高卷积运算的效率。

Description

一种卷积加速运算方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种卷积加速运算方法、装置、电子设备及存储介质。
背景技术
随着卷积神经网络的兴起,涌现出了各种各样的经典网络,无论网络结构如何变化,网络的核心基本都是卷积。卷积运算过程的处理性能很大程度上决定了卷积神经网络的处理性能。
现有技术中,针对膨胀率为1的卷积运算,提出了一些对应的卷积加速算法,可以大幅减少卷积运算量,提高运算速度。
但是,针对膨胀率为2的卷积运算,现有技术中缺乏一种有效的技术手段,可以实现卷积加速运算,导致卷积运算效率较低。
发明内容
本发明提供了一种卷积加速运算方法、装置、电子设备及存储介质,可以减少卷积运算的耗时,提高卷积运算的效率。
根据本发明的一方面,提供了一种卷积加速运算方法,包括:
将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2;
将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区;
将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;
通过所述计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
根据本发明的另一方面,提供了一种卷积加速运算装置,所述装置包括:
数据加载模块,用于将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2;
数据搬运模块,用于将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区;
拆分模块,用于将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;
结果确定模块,用于通过所述计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的卷积加速运算方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的卷积加速运算方法。
本发明实施例提供的技术方案,通过将目标卷积运算的输入特征图数据以及卷积核数据加载至高级缓存区中,将高级缓存区中的输入特征图数据以及卷积核数据逐级搬运至低级缓存区,将低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过计算单元将目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算,通过计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算的目标结果的技术手段,可以减少卷积运算的耗时,提高卷积运算的效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种卷积加速运算方法的流程图;
图2是根据本发明实施例提供的另一种卷积加速运算方法的流程图;
图3是根据本发明实施例提供的另一种卷积加速运算方法的流程图;
图4是根据本发明实施例提供的一种卷积加速运算装置的结构示意图;
图5是实现本发明实施例的卷积加速运算方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例一提供的一种卷积加速运算方法的流程图,本实施例可适用于对膨胀率为2的卷积运算进行加速的情况,该方法可以由卷积加速运算装置来执行,该卷积加速运算装置可以采用硬件和/或软件的形式实现,该卷积加速运算装置可配置于具备数据处理功能的电子设备(例如终端或者服务器)中。如图1所示,该方法包括:
步骤110、将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2。
在本实施例中,所述目标卷积运算可以为输入膨胀率为2的,等待进行加速的卷积运算。所述目标芯片可以为基于通用计算单元(General Compute Unit,GCU)架构开发的算力加速处理器芯片。
具体的,获取到输入特征图数据以及卷积核数据后,可以通过直接储存访问控制器(Direct Memory Access,DMA),分别将输入特征图数据以及卷积核数据,从目标芯片的主存储器(Host Memory)加载至目标芯片的高级缓存区中。
步骤120、将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
在本实施例中,由于低级缓存区对数据的处理性能较高,且缓存容量有限,因此需要将高级缓存区中的输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区,以在低级缓存区中对输入特征图数据以及卷积核数据进行处理。
在一个具体的实施例中,假设目标芯片中的缓存区从高级到低级依次分为L3缓存、L2缓存以及L1缓存,则可以将输入特征图数据以及卷积核数据经由L3缓存、L2缓存,最终搬运至L1缓存。
在本实施例中,还可以在L2缓存与L1缓存中设置双缓存区,以隐藏数据的搬运耗时,使得计算单元可以连续工作而不必等待数据搬运。
步骤130、将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算。
在本实施例中,将输入特征图数据以及卷积核数据搬运至低级缓存区后,可以由目标芯片中的计算单元,将低级缓存区中的数据加载到向量寄存器,由所述向量寄存器将目标卷积运算进行拆分。可选的,在对目标卷积运算进行拆分时,可以采用Winograd加速卷积算法,根据目标卷积运算的输入膨胀率,将目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算。
在一个具体的实施例中,假设目标卷积运算为F(4×4,3×3),其中,输出尺寸为4×4,卷积核尺寸为3×3,输入膨胀率为2,则可以将所述目标卷积运算拆分成一个F(2×2,2×2)的二维卷积运算,以及四个F(2,2)的一维卷积运算。
步骤140、通过所述计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
在此步骤中,可选的,可以根据Winograd加速卷积算法,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果。
在本实施例的一个实施方式中,根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果,包括:将各第一运算结果与第二运算结果进行组合,得到目标卷积运算对应的目标结果。
在本实施例中,针对膨胀率为2的目标卷积运算,通过将所述目标卷积运算拆分成多个子运算,并分别计算每个子运算对应的结果,最后将全部子运算对应的结果进行组合,提供了一种有效的卷积加速运算方法,可以减少卷积运算的耗时,提高卷积运算的效率;其次,通过将目标卷积运算对应的输入特征图数据以及卷积核数据,从高级缓存区逐级搬运至低级缓存区,可以使得卷积加速运算过程全部通过硬件完成,通过配置合理的定点数算力,可以明显提升目标芯片对卷积运算的处理性能。
本发明实施例提供的技术方案,通过将目标卷积运算的输入特征图数据以及卷积核数据加载至高级缓存区中,将高级缓存区中的输入特征图数据以及卷积核数据逐级搬运至低级缓存区,将低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过计算单元将目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算,通过计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算的目标结果的技术手段,可以减少卷积运算的耗时,提高卷积运算的效率。
图2为本发明实施例二提供的一种卷积加速运算方法的流程图,本实施例是对上述实施例的进一步细化。如图2所示,该方法包括:
步骤210、将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2。
步骤220、将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
在本实施例的一个实施方式中,将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区,包括:根据目标芯片中各级缓存区的容量,以及寄存器的数量,对各输入特征图数据以及卷积核数据进行切分;将切分后的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
在本实施例中,由于低级缓存区的容量存在限制,当输入特征图数据或卷积核数据的数据量过大时,很难实现一次将所有数据搬运至低级缓存区。因此,需要对输入特征图数据以及卷积核数据进行切分,分批次将切分后的数据搬运至低级缓存区。
在一个具体的实施例中,卷积核数据可以包括以下四个维度:高度Height、宽度Width、输入通道数Input channel以及输出通道数Output channel。在对卷积核数据进行切分时,可以在输入通道数和输出通道数上进行切分。其中,切分尺寸可以根据缓存区的容量以及寄存器的数量进行确定。
在另一个具体的实施例中,输入特征图数据可以包括以下四个维度:数量Number、高度Height、宽度Width以及输入通道数Input channel。在对输入特征图数据进行切分时,可以对上述四个维度分别进行切分。具体的,在对高度和宽度上的切分尺寸可以为3×3,重叠大小为1。
步骤230、将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元。
步骤240、通过所述计算单元,将各输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,并将各卷积核数据拆分为多个一维卷积核数据以及至少一个二维卷积核数据。
在本实施例的一个实施方式中,通过所述计算单元,将各输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,包括:根据所述目标卷积运算对应的膨胀率,对所述输入特征图数据进行填充;将填充后的输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据。
在本实施例中,以目标卷积运算F(4×4,3×3)为例,由于输入特征图数据的膨胀率为2,当输入特征图数据的实际尺寸为3×3时,可以在输入特征图数据中的每两个元素之间填充一个零,得到输入特征图数据的尺寸为6×6。具体的,假设目标卷积运算的输入特征图数据为:
则可以对上述输入特征图数据进行填充,得到填充后的输入特征图数据:
假设目标卷积运算对应的卷积核数据为:
则可以将填充后的输入特征图数据,以及卷积核数据拆分为一个二维卷积运算convolution0,以及四个一维卷积运算convolution1、convolution2、convolution3和convolution4,其中:
在本实施例中,convolution0通过二维输入数据以及二维卷积核数据计算得到,convolution1、convolution2、convolution3和convolution4通过对应的一维输入数据以及一维卷积核数据计算得到。
步骤250、通过所述计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换。
在此步骤中,可选的,可以根据Winograd加速卷积算法中的卷积计算公式,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换。具体的,一维卷积的Winograd计算公式为:
二维卷积的Winograd计算公式为:
其中,Y代表输出特征图数据,g代表卷积核数据,G代表卷积核转换矩阵,d代表输入特征图数据,B代表输入转换矩阵,o代表哈达玛积,A代表输出转换矩阵。
在一个具体的实施例中,假设:
则可以根据二维卷积计算公式中的GgGT对convolution0中的二维卷积核数据进行转换,并根据BTdB对convolution0中的二维输入数据进行转换,转换后的二维输入数据与二维卷积核数据分别为:
同理,可以根据一维卷积计算公式中的Gg对convolution1、convolution2、convolution3和convolution4中的一维卷积核数据进行转换,并根据BTd对各一维输入数据进行转换。
具体的,convolution1中转换后的各一维输入数据与对应的一维卷积核数据分别为:
Convolution2中转换后的各一维输入数据与对应的一维卷积核数据分别为:
Convolution3中转换后的各一维输入数据与对应的一维卷积核数据分别为:
Convolution4中转换后的各一维输入数据与对应的一维卷积核数据分别为:
步骤260、通过计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积。
在此步骤中,可以将每个子运算(convolution0、convolution1、convolution2、convolution3和convolution4)中,转换后的输入数据与转换后的卷积核数据对应位置的元素相乘,得到每个子运算分别对应的哈达玛积。
步骤270、通过所述计算单元根据各哈达玛积,以及目标卷积运算对应的输出转换矩阵,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果。
在此步骤中,可以根据一维卷积的Winograd计算公式,以及二维卷积的Winograd计算公式,将各哈达玛积与对应的输出转换矩阵A相乘,得到各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果。
具体的,以上述convolution0、convolution1、convolution2、convolution3和convolution4为例,convolution0对应的运算结果可以为:
Convolution1对应的运算结果可以为:
result1=[r4 r6]
Convolution2对应的运算结果可以为:
result2=[r1 r9]
Convolution3对应的运算结果可以为:
result3=[r12 r14]
Convolution4对应的运算结果可以为:
result4=[r3 r11]
步骤280、根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
在此步骤中,除上述五个子运算对应的结果之外,还有r5=d4×g4,r7=d5×g4,r13=d7×g4,r15=d8×g4,因此,可以将各运算结果进行组合,得到与目标卷积运算对应的目标结果:
本发明实施例提供的技术方案,通过将目标卷积运算对应的输入特征图数据以及卷积核数据加载至高级缓存区中,将高级缓存区中的各输入特征图数据以及卷积核数据逐级搬运至低级缓存区,将低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过计算单元将各输入特征图数据拆分为一维输入数据以及二维输入数据,并将各卷积核数据拆分为一维卷积核数据以及二维卷积核数据,通过计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换,通过计算单元确定转换后的各一维输入数据与一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与二维卷积核数据的哈达玛积,通过计算单元根据各哈达玛积以及输出转换矩阵,确定第一运算结果以及第二运算结果,根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果的技术手段,可以减少卷积运算的耗时,提高卷积运算的效率。
图3为本发明实施例三提供的一种卷积加速运算方法的流程图,本实施例是对上述实施例的进一步细化。如图3所示,该方法包括:
步骤301、将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2。
步骤302、将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
步骤303、将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元将各输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,并将各卷积核数据拆分为多个一维卷积核数据以及至少一个二维卷积核数据。
步骤304、通过所述计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换。
在此步骤中,可以通过向量寄存器对卷积核数据进行转换,并将转换后的五个卷积核数据组合在一起,由于五个转换后的卷积核数据中存在相同元素,例如Convolution1和Convolution3中转换后的卷积核数据相同,因此可以只保存其中一份数据,以减少缓存区的占用。具体的,将上述转换后的五个卷积核数据组合后,可以得到如下数据:
同理,可以通过向量寄存器对输入数据进行转换,并将转换后的五个输入数据组合在一起。具体的,将上述转换后的五个输入数据组合后,可以得到如下数据:
步骤305、将转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的高级缓存区。
在此步骤中,可以通过DMA将步骤304中组合后的卷积核数据,以及组合后的输入数据搬运至L2缓存或L3缓存,当L2空闲缓存大小足够存下所有的转换后的数据时,则将转换后的数据存储于L2,否则存储于L3。
步骤306、将所述高级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的低级缓存区。
步骤307、将所述低级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,搬运至计算单元。
步骤308、通过所述计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积。
在此步骤中,可选的,可以根据步骤304中组合后的卷积核数据,以及组合后的输入数据,计算哈达玛积,得到以下结果:
步骤309、通过所述计算单元根据各哈达玛积,以及目标卷积运算对应的输出转换矩阵,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果。
步骤310、根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
在本实施例中,可选的,可以将步骤308中的哈达玛积标记为:
通过所述哈达玛积与输出转换矩阵A相乘,可以得到目标卷积运算对应的目标结果:
在本实施例中,得到目标结果后,可以将目标结果写回至L1缓存,然后通过DMA将目标结果由L1搬运到L2、L3,最终搬运到Host Memory。
本发明实施例提供的技术方案,通过将目标卷积运算对应的输入特征图数据以及卷积核数据加载至高级缓存区中,将高级缓存区中的输入特征图数据以及卷积核数据逐级搬运至低级缓存区,将低级缓存区中的输入特征图数据以及卷积核数据搬运至计算单元,通过计算单元将输入特征图数据拆分为一维输入数据以及二维输入数据,并将卷积核数据拆分为一维卷积核数据以及二维卷积核数据,通过计算单元采用Winograd加速卷积算法,对一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换,将转换后的一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据逐级搬运至高级缓存区,将高级缓存区中转换后的数据逐级搬运至低级缓存区,将低级缓存区中转换后的各数据搬运至计算单元,通过计算单元确定哈达玛积,并根据各哈达玛积以及输出转换矩阵,确定目标结果的技术手段,可以减少卷积运算的耗时,提高卷积运算的效率。
图4为本发明实施例四提供的一种卷积加速运算装置的结构示意图,如图4所示,该装置包括:数据加载模块410、数据搬运模块420、拆分模块430和结果确定模块440。
其中,数据加载模块410,用于将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2;
数据搬运模块420,用于将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区;
拆分模块430,用于将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;
结果确定模块440,用于通过所述计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果。
本发明实施例提供的技术方案,通过将目标卷积运算的输入特征图数据以及卷积核数据加载至高级缓存区中,将高级缓存区中的输入特征图数据以及卷积核数据逐级搬运至低级缓存区,将低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过计算单元将目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算,通过计算单元确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算的目标结果的技术手段,可以减少卷积运算的耗时,提高卷积运算的效率。
在上述实施例的基础上,所述数据搬运模块420包括:
数据切分单元,用于根据目标芯片中各级缓存区的容量,以及寄存器的数量,对各输入特征图数据以及卷积核数据进行切分;
切分数据处理单元,用于将切分后的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
所述拆分模块430包括:
数据拆分单元,用于通过所述计算单元,将各输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,并将各卷积核数据拆分为多个一维卷积核数据以及至少一个二维卷积核数据;
数据填充单元,用于根据所述目标卷积运算对应的膨胀率,对所述输入特征图数据进行填充;
填充数据处理单元,用于将填充后的输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据。
所述结果确定模块440包括:
数据转换单元,用于通过所述计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换;
哈达玛积确定单元,用于通过计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积;
运算结果确定单元,用于通过所述计算单元根据各哈达玛积,以及目标卷积运算对应的输出转换矩阵,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果;
结果组合单元,用于将各第一运算结果与第二运算结果进行组合,得到目标卷积运算对应的目标结果;
转换数据处理单元,用于将转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的高级缓存区;
转换数据搬运单元,用于将所述高级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的低级缓存区;将所述低级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,搬运至计算单元;
转换数据计算单元,用于通过所述计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如卷积加速运算方法。
在一些实施例中,卷积加速运算方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的卷积加速运算方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行卷积加速运算方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (6)

1.一种卷积加速运算方法,其特征在于,包括:
将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2;
将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区;
将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;
通过所述计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换;
将转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的高级缓存区;
将所述高级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的低级缓存区;
将所述低级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,搬运至计算单元;
通过所述计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积;
通过所述计算单元根据各哈达玛积,以及目标卷积运算对应的输出转换矩阵,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果;
根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果;
其中,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算,包括:根据所述目标卷积运算对应的膨胀率,对所述输入特征图数据进行填充;将填充后的输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,并将各卷积核数据拆分为多个一维卷积核数据以及至少一个二维卷积核数据。
2.根据权利要求1所述的方法,其特征在于,根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果,包括:
将各第一运算结果与第二运算结果进行组合,得到目标卷积运算对应的目标结果。
3.根据权利要求1所述的方法,其特征在于,将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区,包括:
根据目标芯片中各级缓存区的容量,以及寄存器的数量,对各输入特征图数据以及卷积核数据进行切分;
将切分后的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区。
4.一种卷积加速运算装置,其特征在于,包括:
数据加载模块,用于将目标卷积运算对应的输入特征图数据以及卷积核数据,加载至目标芯片的高级缓存区中;所述目标卷积运算对应的膨胀率为2;
数据搬运模块,用于将所述高级缓存区中的各输入特征图数据以及卷积核数据,逐级搬运至目标芯片的低级缓存区;
拆分模块,用于将所述低级缓存区中的各输入特征图数据以及卷积核数据搬运至计算单元,通过所述计算单元根据各输入特征图数据以及卷积核数据,将所述目标卷积运算拆分为多个一维卷积运算,以及至少一个二维卷积运算;
结果确定模块,用于通过所述计算单元采用Winograd加速卷积算法,对各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据进行转换;将转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的高级缓存区;将所述高级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,逐级搬运至目标芯片的低级缓存区;将所述低级缓存区中转换后的各一维输入数据、二维输入数据、一维卷积核数据以及二维卷积核数据,搬运至计算单元;通过所述计算单元确定转换后的各一维输入数据与对应的一维卷积核数据的哈达玛积,并确定转换后的各二维输入数据与对应的二维卷积核数据的哈达玛积;通过所述计算单元根据各哈达玛积,以及目标卷积运算对应的输出转换矩阵,确定各一维卷积运算对应的第一运算结果,以及二维卷积运算对应的第二运算结果,并根据各第一运算结果以及第二运算结果,确定与目标卷积运算对应的目标结果;
其中,所述拆分模块还用于根据所述目标卷积运算对应的膨胀率,对所述输入特征图数据进行填充;将填充后的输入特征图数据拆分为多个一维输入数据以及至少一个二维输入数据,并将各卷积核数据拆分为多个一维卷积核数据以及至少一个二维卷积核数据。
5.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3中任一项所述的卷积加速运算方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-3中任一项所述的卷积加速运算方法。
CN202210995284.7A 2022-08-18 2022-08-18 一种卷积加速运算方法、装置、电子设备及存储介质 Active CN115292662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210995284.7A CN115292662B (zh) 2022-08-18 2022-08-18 一种卷积加速运算方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210995284.7A CN115292662B (zh) 2022-08-18 2022-08-18 一种卷积加速运算方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115292662A CN115292662A (zh) 2022-11-04
CN115292662B true CN115292662B (zh) 2023-09-22

Family

ID=83829843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210995284.7A Active CN115292662B (zh) 2022-08-18 2022-08-18 一种卷积加速运算方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115292662B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871510A (zh) * 2019-01-08 2019-06-11 广东浪潮大数据研究有限公司 二维卷积运算处理方法、系统、设备及计算机存储介质
CN111008040A (zh) * 2019-11-27 2020-04-14 厦门星宸科技有限公司 缓存装置及缓存方法、计算装置及计算方法
CN113449852A (zh) * 2021-08-05 2021-09-28 安谋科技(中国)有限公司 卷积神经网络的计算方法、片上系统和电子设备
CN113570031A (zh) * 2021-06-08 2021-10-29 中国科学院深圳先进技术研究院 卷积运算的处理方法、电子设备及计算机可读存储介质
CN113989169A (zh) * 2020-07-08 2022-01-28 嘉楠明芯(北京)科技有限公司 一种膨胀卷积加速计算方法及装置
CN114003859A (zh) * 2021-11-10 2022-02-01 安谋科技(中国)有限公司 卷积运算方法、可读介质和电子设备
CN114565501A (zh) * 2022-02-21 2022-05-31 格兰菲智能科技有限公司 用于卷积运算的数据加载方法及其装置
CN114723029A (zh) * 2022-05-05 2022-07-08 中山大学 一种基于混合多行数据流策略的dcnn加速器
CN114764615A (zh) * 2021-01-13 2022-07-19 华为技术有限公司 卷积运算的实现方法、数据处理方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871510A (zh) * 2019-01-08 2019-06-11 广东浪潮大数据研究有限公司 二维卷积运算处理方法、系统、设备及计算机存储介质
CN111008040A (zh) * 2019-11-27 2020-04-14 厦门星宸科技有限公司 缓存装置及缓存方法、计算装置及计算方法
CN113989169A (zh) * 2020-07-08 2022-01-28 嘉楠明芯(北京)科技有限公司 一种膨胀卷积加速计算方法及装置
CN114764615A (zh) * 2021-01-13 2022-07-19 华为技术有限公司 卷积运算的实现方法、数据处理方法及装置
CN113570031A (zh) * 2021-06-08 2021-10-29 中国科学院深圳先进技术研究院 卷积运算的处理方法、电子设备及计算机可读存储介质
CN113449852A (zh) * 2021-08-05 2021-09-28 安谋科技(中国)有限公司 卷积神经网络的计算方法、片上系统和电子设备
CN114003859A (zh) * 2021-11-10 2022-02-01 安谋科技(中国)有限公司 卷积运算方法、可读介质和电子设备
CN114565501A (zh) * 2022-02-21 2022-05-31 格兰菲智能科技有限公司 用于卷积运算的数据加载方法及其装置
CN114723029A (zh) * 2022-05-05 2022-07-08 中山大学 一种基于混合多行数据流策略的dcnn加速器

Also Published As

Publication number Publication date
CN115292662A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
CN115880132B (zh) 图形处理器、矩阵乘法任务处理方法、装置及存储介质
CN116451174A (zh) 任务执行装置、方法、电子设备和存储介质
CN114463551A (zh) 图像处理方法、装置、存储介质及电子设备
CN115292662B (zh) 一种卷积加速运算方法、装置、电子设备及存储介质
CN114564149B (zh) 一种数据存储方法、装置、设备及存储介质
US20220113943A1 (en) Method for multiply-add operations for neural network
CN113657408B (zh) 确定图像特征的方法、装置、电子设备和存储介质
CN115438007A (zh) 一种文件合并方法、装置、电子设备及介质
CN115237372A (zh) 一种乘法电路、机器学习运算电路、芯片及数据处理方法
CN115081607A (zh) 基于嵌入算子的反向计算方法、装置、设备以及存储介质
CN115511047B (zh) Softmax模型的量化方法、装置、设备及介质
CN115495312B (zh) 业务请求处理方法和装置
CN116468824B (zh) 动画重定向方法、装置、电子设备及存储介质
CN115391727B (zh) 一种神经网络模型的计算方法、装置、设备及存储介质
CN116579914B (zh) 一种图形处理器引擎执行方法、装置、电子设备及存储介质
CN117632431A (zh) 云计算任务的调度方法、装置、设备及存储介质
CN117271840B (zh) 图数据库的数据查询方法、装置及电子设备
CN115599307B (zh) 数据存取方法、装置、电子设备、存储介质
CN116402141B (zh) 一种模型推理方法、装置、电子设备及存储介质
CN118132909A (zh) 一种数据处理方法、装置以及电子设备
US20230244974A1 (en) Quantum state processing method, computing device and storage medium
CN117892050A (zh) 一种基于多核硬件的矩阵运算方法、装置、设备及介质
CN117610623A (zh) 一种数据处理方法、装置、电子设备和存储介质
CN117273069A (zh) 一种基于神经网络模型的推理方法、装置、设备及介质
CN115098074A (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
CP03 Change of name, title or address

Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Patentee after: Shanghai Suiyuan Technology Co.,Ltd.

Country or region after: China

Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address