CN116776945A - 一种基于zynq平台的vgg16网络加速器设计实现方法 - Google Patents

一种基于zynq平台的vgg16网络加速器设计实现方法 Download PDF

Info

Publication number
CN116776945A
CN116776945A CN202310757735.8A CN202310757735A CN116776945A CN 116776945 A CN116776945 A CN 116776945A CN 202310757735 A CN202310757735 A CN 202310757735A CN 116776945 A CN116776945 A CN 116776945A
Authority
CN
China
Prior art keywords
data
output
buffer module
layer
module
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
Application number
CN202310757735.8A
Other languages
English (en)
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.)
Changchun Institute of Optics Fine Mechanics and Physics of CAS
Original Assignee
Changchun Institute of Optics Fine Mechanics and Physics of CAS
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 Changchun Institute of Optics Fine Mechanics and Physics of CAS filed Critical Changchun Institute of Optics Fine Mechanics and Physics of CAS
Priority to CN202310757735.8A priority Critical patent/CN116776945A/zh
Publication of CN116776945A publication Critical patent/CN116776945A/zh
Withdrawn legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于ZYNQ平台的VGG16网络加速器设计实现方法,包括步骤:ZYNQ的PS端通过读取SD卡获取待计算的特征图数据和权重数据;PS端通过AXI_DMA将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中;根据运行参数决定对输出结果是否进行池化。本发明中硬件8bit定点量化方案降低了网络模型大小和内存带宽需求;通过参数化设计复用硬件结构,节省了片上有限的硬件资源;通过串入并出、重叠数据复用、乒乓缓存等方式提高数据传输效率,实现了特征数据的行列数据复用,提高了数据复用率;在通道累加与输出缓存模块实现无缝计算输出,避免因数据输出而阻塞计算;池化模块和全连接层模块使用层融合的设计思想,减少层间时间损耗。

Description

一种基于ZYNQ平台的VGG16网络加速器设计实现方法
技术领域
本发明涉及卷积神经网络技术领域,特别涉及一种基于ZYNQ平台的VGG16网络加速器设计实现方法。
背景技术
卷积神经网络是人工智能领域内一种重要的算法,被广泛地应用在许多深度学习系统上,并在全息图像重建、目标检测和自动驾驶等多种计算机视觉任务中取得了显著的成效。其中,VGGNet的结构简洁,并在整个网络中都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。在保证具有相同感知野的条件下,提升了网络的深度,一定程度上提升了卷积神经网络的效果。
为了将卷积神经网络部署于低功耗的工作环境,多数设计开始使用ZYNQ平台对卷积神经网络进行加速。ZYNQ平台是由Xilinx公司推出的一款支持软硬件协同设计的SOC产品,它结合了CPU的指令控制能力和FPGA的并行计算能力,保证了加速系统的灵活性和高性能。
随着卷积神经网络的发展,其规模和参数量越来越大,从而使卷积神经网络的硬件加速效果受到能耗、硬件资源有限等因素的限制,计算效率也较低。
发明内容
本发明要解决现有技术中的技术问题,提供一种基于ZYNQ平台的VGG16网络加速器设计实现方法。
为了解决上述技术问题,本发明的技术方案具体如下:
一种基于ZYNQ平台的VGG16网络加速器设计实现方法,包括以下步骤:
步骤1:ZYNQ的PS端通过读取SD卡获取待计算的特征图数据和权重数据,并将其存入DDR内存,并设定PL端加速器的运行参数;
步骤2:PS端通过AXI_DMA将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中,并根据运行参数从数据缓存模块取出分块数据传输到卷积模块进行并行卷积运算,量化输出结果;
步骤3:根据运行参数决定对输出结果是否进行池化,之后输入通道累加与输出缓存模块后通过AXI_DMA输出到PS端DDR内存,并由PS端重新配置PL端加速器的控制寄存器来修改运行参数,进行下一层卷积神经网络计算;
步骤4:重复执行步骤2和步骤3,当卷积层全部完成后,运行三层全连接层,每层输出值存储在片上缓存中,直接输入下一层全连接层;
步骤5:所有层计算完成后,通过AXI_DMA将最终结果传输到PS端DDR中存储,ZYNQ的PS端将结果通过串口传输给上位机。
在上述技术方案中,在步骤1中,PS端通过EMIO输出当前层数信号到PL端,PL端根据当前层数信号设定加速器的运行参数。
在上述技术方案中,所述运行参数包括:当前网络层中特征图尺寸、当前网络层卷积核个数、当前网络层计算时输出通道并行度、当前网络层计算时输入通道并行度。
在上述技术方案中,在步骤2中,所述PS端通过AXI_DMA将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中,使用两路AXI-DMA分别传输特征数据和权重数据,并分别将特征数据和权重数据传输到特征数据缓存模块和权重数据缓存模块。
在上述技术方案中,在步骤2中,所述特征数据缓存模块由六组BRAM组成,每组存储多个输入通道的一行数据,采用串入并出的工作逻辑,并复用感受野间重叠的行列数据,输出4×4尺寸的多通道特征数据切片。
在上述技术方案中,在步骤2中,所述权重数据缓存模块存储经过Winograd预变换后的权重数据,并将其切分后存储在多个BRAM中,读取时同时从多个BRAM中读取数据并组合为整个矩阵合并的权重数据。
在上述技术方案中,在步骤2中,所述量化输出结果,是将经过卷积和累加后位宽增加的计算结果数据通过移位和约去小数位的方式重新得到INT8数据,其中移位后根据小数位的值判断是否进位,并根据移位后数据大小和INT8数据范围的关系判断是否对数据进行截断操作。
在上述技术方案中,在步骤3中,所述池化操作直接衔接于卷积计算之后,并对Winograd卷积计算输出的矩阵通过比较树的方式两两比较得到池化数据。
在上述技术方案中,在步骤3中,所述通道累加与输出缓存模块使用乒乓缓存的方式设计为两组,一组累加输入时另一组输出,完成后两组功能切换,使数据输入不会因数据输出而中断。
在上述技术方案中,在步骤4中,最后一层卷积层计算完成后,数据不再输出到PS端DDR中,而是直接保存于片上缓存,输出到量化模块或全连接层模块中使用。
本发明具有以下有益效果:
1、本发明设计的硬件8bit定点量化方案降低了网络模型大小和内存带宽需求。
2、本发明通过参数化设计复用硬件结构,节省了片上有限的硬件资源。
3、本发明通过串入并出、重叠数据复用、乒乓缓存等方式提高数据传输效率,实现了特征数据的行列数据复用,提高了数据复用率。
4、本发明在通道累加与输出缓存模块实现无缝计算输出,避免因数据输出而阻塞计算。
5、本发明设计池化模块和全连接层模块使用层融合的设计思想,减少层间时间损耗。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1为本发明的基于ZYNQ平台的VGG16网络加速器设计实现方法的整体架构框图。
图2为本发明的基于ZYNQ平台的VGG16网络加速器设计实现方法的硬件量化流程图。
图3为本发明的基于ZYNQ平台的VGG16网络加速器设计实现方法的特征数据缓存模块循环状态图。
图4为本发明的基于ZYNQ平台的VGG16网络加速器设计实现方法的通道累加与输出缓存模块循环状态图。
具体实施方式
下面结合附图对本发明做以详细说明。
本发明所加速的神经网络算法VGG16(Visual Geometry Group Network,视觉几何群网络)的网络结构,由13个卷积层、5个池化层和3个全连接层组成。原始输入图像是224×224的三通道数据,整个网络使用大小3×3,步幅为1的卷积核来构建卷积层,并通过ReLU(Rectified Linear Unit,线性整流函数)激活函数对每个卷积层计算的结果做非线性处理。每经过2个或者3个卷积层,使用一个2×2,步幅为2的最大池化层来降低网络尺寸,经过池化后特征图宽和高降低一半,通道数不改变。最后三层为全连接层,输出为1000种分类的类别以及概率大小。
如图1-4所示,本实施例提供一种基于ZYNQ(全可编程片上系统)平台的VGG16网络加速器设计实现方法,该方法包括以下步骤:
步骤1,ZYNQ的PS端(Processing System,处理系统)通过读取SD卡(SecureDigital Memory Card,安全数字存储卡)获取待计算的特征图数据和权重数据,并将其存入DDR内存(Double Data Rate SDRAM),并设定PL端(Progarmmable Logic,可编程逻辑)加速器的运行参数;
加速器运行VGG16网络,因此PS端通过EMIO(Extendable multiplexed I/O,可扩展多路复用I/O)输出当前层数信号到PL端,PL端根据当前层数信号使用多路选择器设定加速器的运行参数,所述运行参数包括:当前网络层中特征图尺寸、当前网络层卷积核个数、当前网络层计算时输出通道并行度、当前网络层计算时输入通道并行度。本实施例中设定各层运行参数如下表所示。
表1各层运行参数值
步骤2,PS端通过AXI_DMA(Advance eXtensible Interface Direct MemoryAccess,高级可扩展接口直接存储器访问)将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中,并根据运行参数从数据缓存模块(特征数据缓存模块和权重数据缓存模块)取出分块数据传输到卷积模块进行并行卷积运算,量化输出结果;
在本实施例中,通过两路AXI-DMA将数据从DDR内存中读取并通过AXI-Stream(Streaming Advanced eXtensible Interface,流式高级可扩展接口)传输到PL端,两路AXI-Stream的数据位宽为128bit(binary digit,二进制数字)。卷积运算采用Winograd(人名,维诺格拉德)算法,输入通道并行度为4,输出通道并行度为8,在卷积计算时同时有512个乘法器参与计算。
特征数据缓存模块由6个BRAM(Block Random Access Memory,块随机存取存储器)组成,每个存储四个输入通道的一行特征数据。数据以128bit位宽顺序写入,当写入完成前4个BRAM后,写入第5个BRAM的同时,并行输出前4个BRAM。当BRAM数据全部输出后,第5、6个BRAM也完成写入,此时在写入第1个BRAM的同时,复用第3、4个BRAM数据,并行输出后4个BRAM。依此交替,三个状态构成循环的一个周期。数据读出时,每个时钟周期读出四个通道的4行2列数据,拼接上个时钟周期的数据组成4行4列的切片传输到卷积模块,实现相邻感受野重叠行列数据的复用。
权重数据缓存模块存储经过Winograd预变换后的权重数据,一幅为192bit,将其切分为3个64bit后存储在3个BRAM中,读取时同时从3个BRAM中读取数据并组合为整个矩阵合并的192bit权重数据。为了实现同时读出多个通道的权重数据,所述3个BRAM为一组,共有8组,前4组存储4个通道,后4组存储下个卷积核的4个通道,达到乒乓缓存的作用。
量化输出结果时所使用的硬件量化流程如图2所示,将32bit浮点数权重经过训练后量化,可以得到8bit定点权重,与8bit定点特征数据卷积后,数据进一步扩大,为了防止数据溢出,扩展位宽到16bit。输出的中间数据还需要经过多通道累加,输出数据位宽继续扩展到32bit。最后加上偏置数据,根据该层的特征数据缩放比例,通过移位量化得到下一层计算所需的8bit特征数据。当某些移位量化后的数据超出8bit位宽表示范围时,可以使用截断的方法,将其限位为INT8(8位整型数)的上限或者下限。为减小误差,移位量化时对需要舍去的小数位采用向偶数进位的模式。
步骤3,根据运行参数决定对输出结果是否进行池化,之后输入通道累加与输出缓存模块后通过AXI_DMA输出到PS端DDR内存,并由PS端重新配置PL端加速器的控制寄存器来修改运行参数,进行下一层卷积神经网络计算;
当进行池化时,池化操作直接衔接于卷积计算之后,并对Winograd卷积计算输出的2×2矩阵通过比较树的方式两两比较得到最大值,并将一个时钟内得到的8通道最大值输入通道累加与输出缓存模块。通道累加与输出缓存模块使用乒乓缓存的方式设计为两组,两组都使用FIFO(First Input First Output,先入先出存储器)顺序存储数据,通道累加时反复从FIFO中读出累加后重新写入,一组累加输入时另一组输出,完成后两组功能切换,使数据输入不会因数据输出而中断。
步骤4,重复执行步骤2和步骤3,当卷积层全部完成后,运行三层全连接层,每层输出值存储在片上缓存中,直接输入下一层全连接层;
最后一层卷积层计算完成后,特征数据量较少,数据不再输出到PS端DDR中,而是直接保存于片上BRAM缓存,输出到量化模块或全连接层模块中使用,节省传输时间。
步骤5,所有层计算完成后,通过AXI_DMA将最终结果传输到PS端DDR中存储,ZYNQ的PS端将结果通过串口传输给上位机。
本发明的基于ZYNQ平台的VGG16网络加速器设计实现方法,硬件8bit定点量化方案降低了网络模型大小和内存带宽需求;通过参数化设计复用硬件结构,节省了片上有限的硬件资源;通过串入并出、重叠数据复用、乒乓缓存等方式提高数据传输效率,实现了特征数据的行列数据复用,提高了数据复用率;在通道累加与输出缓存模块实现无缝计算输出,避免因数据输出而阻塞计算;池化模块和全连接层模块使用层融合的设计思想,减少层间时间损耗。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,包括以下步骤:
步骤1:ZYNQ的PS端通过读取SD卡获取待计算的特征图数据和权重数据,并将其存入DDR内存,并设定PL端加速器的运行参数;
步骤2:PS端通过AXI_DMA将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中,并根据运行参数从数据缓存模块取出分块数据传输到卷积模块进行并行卷积运算,量化输出结果;
步骤3:根据运行参数决定对输出结果是否进行池化,之后输入通道累加与输出缓存模块后通过AXI_DMA输出到PS端DDR内存,并由PS端重新配置PL端加速器的控制寄存器来修改运行参数,进行下一层卷积神经网络计算;
步骤4:重复执行步骤2和步骤3,当卷积层全部完成后,运行三层全连接层,每层输出值存储在片上缓存中,直接输入下一层全连接层;
步骤5:所有层计算完成后,通过AXI_DMA将最终结果传输到PS端DDR中存储,ZYNQ的PS端将结果通过串口传输给上位机。
2.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤1中,PS端通过EMIO输出当前层数信号到PL端,PL端根据当前层数信号设定加速器的运行参数。
3.根据权利要求2所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,所述运行参数包括:当前网络层中特征图尺寸、当前网络层卷积核个数、当前网络层计算时输出通道并行度、当前网络层计算时输入通道并行度。
4.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤2中,所述PS端通过AXI_DMA将数据从PS端传输到PL端上的特征数据缓存模块和权重数据缓存模块中,使用两路AXI-DMA分别传输特征数据和权重数据,并分别将特征数据和权重数据传输到特征数据缓存模块和权重数据缓存模块。
5.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤2中,所述特征数据缓存模块由六组BRAM组成,每组存储多个输入通道的一行数据,采用串入并出的工作逻辑,并复用感受野间重叠的行列数据,输出4×4尺寸的多通道特征数据切片。
6.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤2中,所述权重数据缓存模块存储经过Winograd预变换后的权重数据,并将其切分后存储在多个BRAM中,读取时同时从多个BRAM中读取数据并组合为整个矩阵合并的权重数据。
7.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤2中,所述量化输出结果,是将经过卷积和累加后位宽增加的计算结果数据通过移位和约去小数位的方式重新得到INT8数据,其中移位后根据小数位的值判断是否进位,并根据移位后数据大小和INT8数据范围的关系判断是否对数据进行截断操作。
8.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤3中,所述池化操作直接衔接于卷积计算之后,并对Winograd卷积计算输出的矩阵通过比较树的方式两两比较得到池化数据。
9.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤3中,所述通道累加与输出缓存模块使用乒乓缓存的方式设计为两组,一组累加输入时另一组输出,完成后两组功能切换,使数据输入不会因数据输出而中断。
10.根据权利要求1所述的基于ZYNQ平台的VGG16网络加速器设计实现方法,其特征在于,在步骤4中,最后一层卷积层计算完成后,数据不再输出到PS端DDR中,而是直接保存于片上缓存,输出到量化模块或全连接层模块中使用。
CN202310757735.8A 2023-06-26 2023-06-26 一种基于zynq平台的vgg16网络加速器设计实现方法 Withdrawn CN116776945A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310757735.8A CN116776945A (zh) 2023-06-26 2023-06-26 一种基于zynq平台的vgg16网络加速器设计实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310757735.8A CN116776945A (zh) 2023-06-26 2023-06-26 一种基于zynq平台的vgg16网络加速器设计实现方法

Publications (1)

Publication Number Publication Date
CN116776945A true CN116776945A (zh) 2023-09-19

Family

ID=88009587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310757735.8A Withdrawn CN116776945A (zh) 2023-06-26 2023-06-26 一种基于zynq平台的vgg16网络加速器设计实现方法

Country Status (1)

Country Link
CN (1) CN116776945A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
CN110348574A (zh) * 2019-07-17 2019-10-18 哈尔滨理工大学 一种基于zynq的通用卷积神经网络加速结构及设计方法
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
CN112966807A (zh) * 2019-12-13 2021-06-15 上海大学 基于存储资源受限fpga的卷积神经网络实现方法
CN113222130A (zh) * 2021-04-09 2021-08-06 广东工业大学 一种基于fpga的可重构卷积神经网络加速器
CN113516236A (zh) * 2021-07-16 2021-10-19 西安电子科技大学 基于zynq平台的vgg16网络并行加速处理方法
CN115018062A (zh) * 2022-05-30 2022-09-06 南京航空航天大学 一种基于fpga的卷积神经网络加速器
CN115688892A (zh) * 2022-10-13 2023-02-03 北京工业大学 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
CN110348574A (zh) * 2019-07-17 2019-10-18 哈尔滨理工大学 一种基于zynq的通用卷积神经网络加速结构及设计方法
CN112966807A (zh) * 2019-12-13 2021-06-15 上海大学 基于存储资源受限fpga的卷积神经网络实现方法
CN111416743A (zh) * 2020-03-19 2020-07-14 华中科技大学 一种卷积网络加速器、配置方法及计算机可读存储介质
CN113222130A (zh) * 2021-04-09 2021-08-06 广东工业大学 一种基于fpga的可重构卷积神经网络加速器
CN113516236A (zh) * 2021-07-16 2021-10-19 西安电子科技大学 基于zynq平台的vgg16网络并行加速处理方法
CN115018062A (zh) * 2022-05-30 2022-09-06 南京航空航天大学 一种基于fpga的卷积神经网络加速器
CN115688892A (zh) * 2022-10-13 2023-02-03 北京工业大学 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法

Similar Documents

Publication Publication Date Title
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
US10936941B2 (en) Efficient data access control device for neural network hardware acceleration system
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108665063B (zh) 用于bnn硬件加速器的双向并行处理卷积加速系统
CN109447241B (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
Chu et al. PIM-prune: Fine-grain DCNN pruning for crossbar-based process-in-memory architecture
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN110516801A (zh) 一种高吞吐率的动态可重构卷积神经网络加速器架构
WO2022037257A1 (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
CN110321997B (zh) 高并行度计算平台、系统及计算实现方法
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
CN111898733A (zh) 一种深度可分离卷积神经网络加速器架构
US20220179823A1 (en) Reconfigurable reduced instruction set computer processor architecture with fractured cores
CN110705702A (zh) 一种动态可扩展的卷积神经网络加速器
CN110705703A (zh) 基于脉动阵列的稀疏神经网络处理器
CN111931918A (zh) 神经网络加速器
CN110598844A (zh) 一种基于fpga的并行卷积神经网络加速器及加速方法
CN113516236A (zh) 基于zynq平台的vgg16网络并行加速处理方法
CN111008691B (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN109740619B (zh) 用于目标识别的神经网络终端运行方法和装置
CN108647780B (zh) 面向神经网络的可重构池化操作模块结构及其实现方法
CN114004351A (zh) 一种卷积神经网络硬件加速平台
CN114003201A (zh) 矩阵变换方法、装置及卷积神经网络加速器
CN110766136B (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

Application publication date: 20230919

WW01 Invention patent application withdrawn after publication