一种基于Winograd的相关算法加速器计算方法技术

技术编号:36908813 阅读:26 留言:0更新日期:2023-03-18 09:27
本公开属于神经网络加速计算技术领域,具体而言涉及一种基于Winograd的相关算法加速器计算方法,包括:获取基准张量块和实时张量块;通过Winograd变换由基准张量块得到第一张量块,由实时张量块得到第二张量块;通过张量块逐点相乘由第一张量块和第二张量块得到第三张量块;沿通道方向累加所述第三张量块,得到第一矩阵;通过Winograd反变换由第一矩阵得到第二矩阵;逐点相加第二矩阵和偏执矩阵,得到过程矩阵;将所述过程矩阵输入至过程张量缓存中,遍历结束后输出。上述过程提高计算速率和计算连续性。和计算连续性。和计算连续性。

【技术实现步骤摘要】
一种基于Winograd的相关算法加速器计算方法


[0001]本公开属于神经网络加速计算
,具体而言涉及一种基于Winograd的相关算法加速器计算方法。

技术介绍

[0002]随着深度学习技术的快速发展,卷积神经网络(Convolutional Neural Network,CNN)开始用于图像匹配定位算法。该算法由CNN和相关(Correlation)算法组成,其中CNN用于基准图与实时图的特征提取,相关算法用于对CNN提取的特征数据进行相关运算,提取相关极大值。CNN一般由深度学习处理器(Deep

Learning Processing Unit,DPU)完成加速计算,但由于相关算法的计算特征与深度学习算法差异较大,导致DPU通常对其计算效率极低,从而催生了基于FPGA的相关算法加速器。

技术实现思路

[0003]本公开正是基于现有技术的上述需求而提出的,本公开要解决的技术问题是提供一种基于Winograd的相关算法加速器计算方法以提高计算速率和计算连续性。
[0004]为了解决上述问题,本公开提供的技术方案包括:
[0005]提供了一种基于Winograd的相关算法加速器计算方法,包括:获取基准张量块和实时张量块;通过Winograd变换由基准张量块得到第一张量块,由实时张量块得到第二张量块;通过张量块逐点相乘由第一张量块和第二张量块得到第三张量块;沿通道方向累加所述第三张量块,得到第一矩阵;通过Winograd反变换由第一矩阵得到第二矩阵;逐点相加第二矩阵和偏执矩阵,得到过程矩阵;将所述过程矩阵输入至过程张量缓存中,遍历结束后输出。
[0006]优选地,通过Winograd变换由基准张量块得到第一张量块,表示为:V=B
T
×
D
×
B,其中,V为第一张量块,D为基准张量块,B为Winograd第一变换矩阵。
[0007]优选地,通过Winograd变换由实时张量块得到第二张量块,表示为:U=G
T
×
F
×
G,其中,U为第二张量块,F为实时张量块,G为Winograd第二变换矩阵。
[0008]优选地,通过Winograd反变换由第一矩阵得到第二矩阵,表示为:Y=A
T
×
S
×
A,其中,Y为第二矩阵,S为第一矩阵,A为Winograd第三变换矩阵。
[0009]优选地,所述方法包括5层嵌套循环,最内层循环包括以相同的实时图矩阵块遍历基准图张量的行方向;次内层循环包括实时图矩阵块遍历实时张量的行方向;中间层循环包括实时图矩阵块和基准图矩阵块遍历输入张量的通道方向;次外层循环包括实时图矩阵块遍历基准图张量的列方向;最外层循环包括实时图矩阵块遍历实时张量的列方向。
[0010]与现有技术相比,本公开提出一种基于Winograd算法的Correlation加速器,可实现超越FPGA上计算资源物理上限的等效算力。本专利技术将公开该加速器的计算系统方法,包括计算系统整体架构与基本组成、基准张量与实时张量的整体计算顺序、基于Winograd算法的张量块Correlation计算流程、张量的Winograd变换实现方法、相关结果通道累加以及
Winograd反变换方法。该设计能够以较少的FPGA片上资源消耗量,实现较高的计算并行度和计算连续性,进而达到非常可观的加速效果。
附图说明
[0011]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0012]图1为本公开基于Winograd的相关算法加速器计算系统的结构框架示意图;
[0013]图2为相关算法的基本原理示意图;
[0014]图3为基于Winograd元过程加速Winograd运算的实时张量示意图;
[0015]图4为基于Winograd元过程加速Winograd运算的基准图张量示意图;
[0016]图5为基于Winograd元过程加速Winograd运算的相关结果矩阵示意图;
[0017]图6为实施例中Winograd元过程在具体实现流程图;
[0018]图7为基于Winograd的相关算法加速器计算方法的步骤流程图。
具体实施方式
[0019]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020]在本公开实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接可以是机械连接,也可以是电连接可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
[0021]全文中描述使用的术语“顶部”、“底部”、“在
……
上方”、“下”和“在
……
上”是相对于装置的部件的相对位置,例如装置内部的顶部和底部衬底的相对位置。可以理解的是装置是多功能的,与它们在空间中的方位无关。
[0022]为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。
[0023]为超越FPGA上DSP资源的限制,本专利技术提出利用Winograd算法对相关算法进行加速。
[0024]相关算法的基于其基本原理可将实时张量视为相关窗口,该相关窗口顺序地扫过基准图张量,得到相关结果矩阵。每个相关窗口内实时张量与基准图张量进行乘累加运算,得到一个相关结果值。表示如下:
[0025][0026]0<c
c
<C
c
[0027]0<r
c
<R
c
[0028]0<n<N
[0029]其中,C为相关结果矩阵,c
c
为相关结果矩阵内元素的列索引,r
c
为相关结果矩阵内元素的行索引,N为实时图张量的通道数,R
r
为实时图张量的高度,C
r
为实时图张量的宽度,B表示基准图张量,c
b
为基准图张量内元素的列索引,r
b
为基准图张量内元素的行索引,n为输入通道的索引,R表示实时图张量,c
r
为实时图张量内元素的列索引,r...

【技术保护点】

【技术特征摘要】
1.一种基于Winograd的相关算法加速器计算方法,其特征在于,包括:获取基准张量块和实时张量块;通过Winograd变换由基准张量块得到第一张量块,由实时张量块得到第二张量块;通过张量块逐点相乘由第一张量块和第二张量块得到第三张量块;沿通道方向累加所述第三张量块,得到第一矩阵;通过Winograd反变换由第一矩阵得到第二矩阵;逐点相加第二矩阵和偏执矩阵,得到过程矩阵;将所述过程矩阵输入至过程张量缓存中,遍历结束后输出。2.根据权利要求1所述的一种基于Winograd的相关算法加速器计算方法,其特征在于,通过Winograd变换由基准张量块得到第一张量块,表示为:V=B
T
×
D
×
B其中,V为第一张量块,D为基准张量块,B为Winograd第一变换矩阵。3.根据权利要求1所述的一种基于Winograd的相关算法加速器计算方法,其特征在于,通过Winograd变换由实时张量块得到第二张...

【专利技术属性】
技术研发人员:王晓峰李晓敏周辉赵雄波盖一帆蒋彭龙路坤锋李超然谢宇嘉吴敏林平董文杰吴松龄弥寒光黄鹂赵冠杰林玉野李杨珺王森李杰杨庆军靳蕊溪
申请(专利权)人:北京航天自动控制研究所
类型:发明
国别省市:

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

1