【技术实现步骤摘要】
基于脉动阵列的高吞吐量目标检测加速器
[0001]本专利技术涉及一种基于脉动阵列的高吞吐量目标检测加速器设计,属于计算架构领域。
技术介绍
[0002]近年来,目标检测技术在道路监控、无人驾驶、医学图像分析和国防安全等领域有着广阔的应用。神经网络是目标检测的核心算法,具有数据量大、计算量大和访存量大等特点。然而,通用处理器的性能增长速度减缓,难以跟上神经网络快速的应用发展步伐。因此,优化计算系统正成为越来越受关注的问题。
[0003]计算系统的主流优化策略可分为:电路级别的乘法优化、近似计算、参数级别的量化、网络结构级别的剪枝、访存级别的带宽优化以及架构级别的计算并行与数据复用。近似计算、量化和剪枝等会影响网络原始的精度。而基于脉动阵列的计算并行和数据复用策略在不影响网络原始精度的情况下,可以优化内存操作,减少外部存储和读取带宽,提高数据利用率。
[0004]由于YOLOv2
‑
tiny各层间计算量相差较大,如果脉动阵列规模设计过大,会导致资源利用率不高;如果脉动阵列规模设计过小,可能会受存储墙问题的影响。所以需要合理地探索脉动阵列的设计空间。因此,基于脉动阵列的YOLOv2
‑
tiny加速器需要在有限的资源约束下,采用roofline建模的方法,对脉动阵列进行设计空间探索,平衡资源利用率低和计算延迟的问题,从而找到高吞吐量、高利用率的解决方案。
技术实现思路
[0005]技术问题:针对上述问题,本专利技术公开了一种基于脉动阵列的高吞吐量目标检测加速
【技术保护点】
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。