基于脉动阵列的高吞吐量目标检测加速器制造技术

技术编号:37635864 阅读:14 留言:0更新日期:2023-05-20 08:56
本发明专利技术公开了一种基于脉动阵列的高吞吐量目标检测加速器,该加速器包括:输入特征图寄存单元(1)、输入特征图读写缓存单元(2)、脉动阵列计算部分(3)、权重读写缓存单元(4)、池化单元(5)、输出结果读写缓存单元(6)以及全局配置单元(7);它不仅简化了卷积计算和硬件复杂的数据流设计,而且引入了设计空间探索的步骤,保证了硬件的高资源利用率和高吞吐量。在脉动阵列的计算单元中引入了流水线技术,使得该架构能够提高计算并行度,并使用混合数据复用策略减少带宽压力。该加速器的核心是通过设计空间探索动态寻找脉动阵列的最佳规模,使目标检测算法能够充分利用给定FPGA的硬件资源。标检测算法能够充分利用给定FPGA的硬件资源。标检测算法能够充分利用给定FPGA的硬件资源。

【技术实现步骤摘要】
基于脉动阵列的高吞吐量目标检测加速器


[0001]本专利技术涉及一种基于脉动阵列的高吞吐量目标检测加速器设计,属于计算架构领域。

技术介绍

[0002]近年来,目标检测技术在道路监控、无人驾驶、医学图像分析和国防安全等领域有着广阔的应用。神经网络是目标检测的核心算法,具有数据量大、计算量大和访存量大等特点。然而,通用处理器的性能增长速度减缓,难以跟上神经网络快速的应用发展步伐。因此,优化计算系统正成为越来越受关注的问题。
[0003]计算系统的主流优化策略可分为:电路级别的乘法优化、近似计算、参数级别的量化、网络结构级别的剪枝、访存级别的带宽优化以及架构级别的计算并行与数据复用。近似计算、量化和剪枝等会影响网络原始的精度。而基于脉动阵列的计算并行和数据复用策略在不影响网络原始精度的情况下,可以优化内存操作,减少外部存储和读取带宽,提高数据利用率。
[0004]由于YOLOv2

tiny各层间计算量相差较大,如果脉动阵列规模设计过大,会导致资源利用率不高;如果脉动阵列规模设计过小,可能会受存储墙问题的影响。所以需要合理地探索脉动阵列的设计空间。因此,基于脉动阵列的YOLOv2

tiny加速器需要在有限的资源约束下,采用roofline建模的方法,对脉动阵列进行设计空间探索,平衡资源利用率低和计算延迟的问题,从而找到高吞吐量、高利用率的解决方案。

技术实现思路

[0005]技术问题:针对上述问题,本专利技术公开了一种基于脉动阵列的高吞吐量目标检测加速器设计,它不仅简化了卷积计算和硬件复杂的数据流设计,而且引入了设计空间探索的步骤,保证了硬件的高资源利用率和高吞吐量。在脉动阵列的计算单元中引入了流水线技术,使得该架构能够提高计算并行度,并使用混合数据复用策略减少带宽压力。该加速器的核心是通过设计空间探索动态寻找脉动阵列的最佳规模,使目标检测算法能够充分利用给定的FPGA硬件资源。
[0006]技术方案:本专利技术的一种基于脉动阵列的高吞吐量目标检测加速器包括:输入特征图寄存单元1、输入特征图读写缓存单元2、脉动阵列计算部分3、权重读写缓存单元4、池化单元5、输出结果读写缓存单元6以及全局配置单元7;输入特征图寄存单元1、输入特征图读写缓存单元2、脉动阵列3、权重读写缓存单元4、池化单元5、输出结果读写缓存单元6以及全局配置单元7;其中全局配置单元7的输出分别连接输入特征图寄存单元1、输入特征图读写缓存单元2、权重读写缓存单元4、池化单元5、输出结果读写缓存单元6;输入特征图寄存单元1的输出连接输入特征图读写缓存单元2,输入特征图读写缓存单元2的输出连接脉动阵列计算部分3;权重读写缓存单元4的输出分别连接脉动阵列计算部分3;池化单元5的输入连接脉动阵列计算部分3;池化单元5的输出连接输出结果读写缓存单元6;在基于脉动阵
列的高吞吐量目标检测加速器中实现YOLOv2

Tiny目标检测。
[0007]所述脉动阵列包括多个单个计算单元,其中每一个单个计算单元包括:特征图输入端口31,输入特征图寄存器单元32,权重输入端口33,权重寄存器单元34,然后通过乘法器35和加法器36中进行卷积计算,通过判断器37判断是否完成完整卷积计算,如果没有完成,将计算部分和存入寄存器38继续进行累加,如果计算完成,将结果进行池化处理39;输入特征图通过寄存器312传递给右边计算单元314,权重通过寄存器313传递给下面计算单元315,下面计算单元的输出结果316暂存到寄存器中317,通过数据选择器310选择输出当前计算结果还是下一个脉动单元的传递过来的计算结果。
[0008]所述的单个计算单元,在输出结果脉动传递处加入寄存器单元,构成流水线设计,根据YOLOv2

Tiny目标检测算法不同层的参数可以灵活设计流水线的延迟时间,以便增加计算的并行度,提高加速器的吞吐量。
[0009]所述的高吞吐量目标检测加速器,其工作模式为:将存在加速器外部内存中的输入特征图通过AXI4

Stream总线传输到输入特征图寄存单元1,然后全局配置单元控制单元7将输入特征图寄存单元1中的值配置成脉动阵列所需要的形式存入输入特征图读写缓存单元2中,最后依次输出到脉动阵列的每一行进行计算;通过AXI4

Stream总线传输权重数据到权重读写缓存单元4,然后每一列依次输出权重数据到脉动阵列与脉动阵列行输入的数据进行卷积计算;每个计算单元的结果向上一个计算单元传递,第一层的计算结果将在池化单元5中进行完池化操作后按设计的数据排布方式存入输出结果读写缓存单元6,最终通过AXI4

Stream总线传输输出结果到加速器外的内存中。
[0010]所述的脉动阵列计算部分,对于给定的YOLOv2

Tiny目标检测算法,在不同的硬件平台上所能设计的脉动规模不一样,为了使YOLOv2

Tiny目标检测算法在硬件平台上获得较高的资源利用率和吞吐量,引入了设计空间探索的步骤,依次选取YOLOv2

Tiny目标检测算法的每一层输入数据,权重数据和输出数据,记输出数据的三维规模为R行C列M通道,权重数据的四维规模为K行K列N通道M块,因此YOLOv2

Tiny目标检测算法该层的计算操作数Ops为公式1,
[0011]Ops=2
×
R
×
C
×
M
×
N
×
K
×
K 公式1
[0012]对输出数据进行分块,记Tm为通道的分块尺寸,Tr为行分块尺寸,Tc为列分块尺寸,总分块数Blocks和计算每一块的所需要的时间Timeperblock如公式2,公式3,
[0013][0014]Timeperblock=K
×
K
×
N+Tr+Tc

1公式3
[0015]记B
in
、B
w
、B
out
分别为计算一块输出数据时,所需要的输入特征图寄存单元,权重读写缓存单元和输出结果读写缓存单元的大小,S为卷积计算的滑动窗口步长,分别如公式4

1,4

2,4

3,
[0016]B
in
=N
×
(S
×
Tr+K

S)
×
(S
×
Tc+K

S)公式4
‑1[0017]B
w
=K
×
K
×
N
×
Tm公式4
‑2[0018]B
out
=Tr
×
Tc
×
Tm公式4
‑3[0019]记α
in...

【技术保护点】

【技术特征摘要】
1.一种基于脉动阵列的高吞吐量目标检测加速器,其特征在于:该加速器包括:输入特征图寄存单元(1)、输入特征图读写缓存单元(2)、脉动阵列计算部分(3)、权重读写缓存单元(4)、池化单元(5)、输出结果读写缓存单元(6)以及全局配置单元(7);其中全局配置单元(7)的输出分别连接输入特征图寄存单元(1)、输入特征图读写缓存单元(2)、权重读写缓存单元(4)、池化单元(5)、输出结果读写缓存单元(6);输入特征图寄存单元(1)的输出连接输入特征图读写缓存单元(2),输入特征图读写缓存单元(2)的输出连接脉动阵列计算部分(3);权重读写缓存单元(4)的输出分别连接脉动阵列计算部分(3);池化单元(5)的输入连接脉动阵列计算部分(3);池化单元(5)的输出连接输出结果读写缓存单元(6);在基于脉动阵列的高吞吐量目标检测加速器中实现YOLOv2

Tiny目标检测。2.根据权利要求1所述的基于脉动阵列的高吞吐量目标检测加速器,其特征在于:所述脉动阵列计算部分(3)包括多个单个计算单元,其中每一个单个计算单元包括:特征图输入端口(31),输入特征图寄存器单元(32),权重输入端口(33),权重寄存器单元(34),然后通过乘法器(35)和加法器(36)中进行卷积计算,通过判断器(37)判断是否完成完整卷积计算,如果没有完成,将计算部分和存入寄存器(38)继续进行累加,如果计算完成,将结果进行池化处理(39);输入特征图通过寄存器(312)传递给右边计算单元(314),权重通过寄存器(313)传递给下面计算单元(315),下面计算单元的输出结果(316)暂存到寄存器中(317),通过数据选择器(310)选择输出当前计算结果还是下一个脉动单元的传递过来的计算结果。3.根据权利要求2所述的基于脉动阵列的高吞吐量目标检测加速器,其特征在于:所述的单个计算单元,在输出结果脉动传递处加入寄存器单元,构成流水线设计,根据YOLOv2

Tiny目标检测算法不同层的参数可以灵活设计流水线的延迟时间,以便增加计算的并行度,提高加速器的吞吐量。4.根据权利要求1所述的基于脉动阵列的高吞吐量目标检测加速器,其特征在于:所述的高吞吐量目标检测加速器,其工作模式为:将存在加速器外部内存中的输入特征图通过AXI4

Stream总线传输到输入特征图寄存单元(1),然后全局配置单元(7)控制单元将输入特征图寄存单元(1)中的值配置成脉动阵列所需要的形式存入输入特征图读写缓存单元(2)中,最后依次输出到脉动阵列的每一行进行计算;通过AXI4

Stream总线传输权重数据到权重读写缓存单元(4),然后每一列依次输出权重数据到脉动阵列与脉动阵列行输入的数据进行卷积计算;每个计算单元的结果向上一个计算单元传递,第一层的计算结果将在池化单元(5)中进行完池化操作后按设计的数据排布方式存入输出结果读写缓存单元(6),最终通过AXI4

Stream总线传输输出结果到加速器外的内存中。5.根据权利要求4所述的基于脉动阵列的高吞吐量目标检测加速器,其特征在于:所述的脉动阵列计算部分(3),对于给定的YOLOv2

Tiny目标检测算法,在不同的硬件平台上所能设计的脉动规模不一样,为了使YOLOv2

Tiny目标检测算法在硬件平台上获得较高的资源利用率和吞吐量,引入了设计空间探索的步骤,依次选取YOLOv2

Tiny目标检测算法的每一层输入数据,权重数据和输出数据,记输出数据的三维规模为R行C列M通道,权重数据的四维规模为K行K列N通道M块,因此YOLOv2

Tiny目标检测算法该层的计算操作数Ops为公式1,Ops=2
×
R
×
C
×
M
×
N
×
K
×
K 公式1
对输出数据进行分块,记Tm为通道的分块尺寸,Tr为行分块尺寸,Tc为列分块尺寸,总分块数Blocks和计算每一块的所需要的时间Time per block如公式2,公式3,Time per block=K
×
K
×
N+Tr+Tc

1 公式3记B
in
、B
w
、B
out
分别为计算一块输出数据时,所需要的输入特征图寄存单元,权重读写缓存单元和输出结果读写缓存单元的大小,S为卷积计算的滑动窗口步长,分别如公式4

1,4

2,4

3,B
in
=N
×
(S
×
Tr+K

S)
×
(S
×
Tc+K

S)公式4

1B
w
=K

【专利技术属性】
技术研发人员:刘昊朱月
申请(专利权)人:东南大学苏州研究院
类型:发明
国别省市:

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

1