本发明属于fpga的cnn加速计算领域,特别是涉及基于fpga的vgg-16的卷积加速器设计以及部署方法。
背景技术:
1、卷积神经网络(cnn)是一种深度学习模型,特别适用于处理图像数据。它通过卷积层、池化层和全连接层的组合,能够自动提取和学习图像中的特征。当cnn进行分类识别任务时,输入图像会先通过多个卷积核进行卷积运算,提取不同特征。(卷积核的参数是通过训练数据学习得到)卷积计算的结果应用非线性激活函数(如relu),增加模型的非线性表达能力。在激活函数后进行池化操作,减少数据维度,保留重要特征,增加模型的鲁棒性。自此就完成了一层卷积和池化操作。根据部署的cnn模型不同,多次重复卷积核池化操作,逐层提取更高层次更抽象的特征。最后将最终的特征图展开并输入到全连接层,进行分类。
2、vgg-16是一种经典的卷积神经网络架构,以其深度和简单的网络设计而闻名。尽管vgg-16并不是专门为计算电磁学和天线方向设计的,但是但其深度学习能力可以应用在这些领域中。一些研究已经表明,利用卷vgg-16,可以有效地预测复杂结构中的电磁场分布。它通过训练模型,可以在不进行大量数值模拟的情况下快速获得高精度预测结果。另外,研究人员利用vgg-16等深度学习模型,通过大量天线设计数据的训练,实现了天线性能的快速预测和优化。然而,由于cpu和gpu功耗高、实时性差等问题,vgg-16的部署已经成为一个难点。
技术实现思路
1、本发明为克服vgg-16网络模型过大,在边缘设备上实时性部署性能不高,本发明提供一种基于fpga的vgg-16卷积加速器设计及部署方法。
2、本发明的目的是通过以下技术方案实现,包括:
3、s100.预先训练vgg-16网络的模型参数,包括卷积层的权重、偏置数据和全连接层的权重数据;
4、s200.量化整个vgg-16网络模型,并将各个层量化后的权重和偏置以及量化因子导出;
5、s300.给定输入/输出样本,使用高层次综合(hls)工具,进行仿真测试,并在达到给定的误差范围内结束量化过程。
6、进一步地,所述s300包括以下步骤:
7、s310.给定多组输入/输出样本对;
8、s320.将量化后的数据导入到高层次综合工具上,进行仿真测试;
9、s330.判断仿真测试结果误差是否在给定误差范围内,若是,则结束量化流程,若否,则重新进行训练量化。
10、s400.在片外ddr上开辟数据区用来存储量化后的模型数据,以及分配一定的地址空间用来存储卷积计算过程中生成的中间数据和最后的输出结果;
11、s500.根据vgg-16涉及到各个卷积层大小不同,部署通用卷积加速器用来反复调用直到完成整体网络计算;
12、进一步,所述s500包括以下步骤:
13、s510.固定通用卷积加速器的输入特征图大小,确保vgg-16网络模型中所有卷积层的输入特征图大小大于或等于通用卷积加速的输入特征图大小。若大于,通过多次调用卷积加速器直到,完成本层卷积计算;
14、s520.确定通用卷积加速器的输入特征图通道数和输出特征图通道数,使其小于或等于vgg-16网络模型中各个卷积层的输入特征图通道数和输出特征图通道数。若卷积加速器通道数小于某一卷积层通道数,需要多次调用卷积加速器,完成本层卷积计算;
15、s600.基于fpga的vgg-16卷积卷积加速器设计;
16、进一步,所述s600包括以下步骤:
17、s610.在卷积加速器上分配额外的存储区域,将输入缓冲区的特征图像分块处理,使块与块之间不产生任何数据依赖;
18、s620.对卷积加速器的输入通道完全平铺展开,分配计算资源,实现高性能卷积计算;
19、s630.对卷积加速器的输出通道完全平铺展开,充分利用fpga的并行性完成卷积计算;
20、s700.将卷积加速器上分块后的每一块卷积得到的计算结果拼接为原始输出特征图像,保存到输出缓冲区中,再通过axi总线输出到片外ddr上,便于下一层卷积计算使用;
21、s800.重复500~700直到完成整个网络卷积计算。
22、本发明的有益效果是:本发明提出了一种便于部署vgg-16的部署方法,即将vgg-16各个卷积层中,输入特征图较大的部分分块再重复多次调用卷积加速器完成计算。其次还设计了vgg-16卷积加速器,即将输入到卷积加速器上的输入特征图像进行分块,并行执行每一块的卷积计算。本发明设计的卷积加速器通过执行片上分块策略,在卷积计算上增加并行度,充分利用了fpga的并行性,提高了计算资源dsp的利用率。
1.一种基于fpga的vgg-16卷积加速器设计及部署方法,其特征在于,包括一下步骤:
2.根据权利要求1所述的一种vgg-16卷积神经网络加速器部署方法,特征在于,所述s500.包括以下步骤:
3.根据权利要求2所述的一种vgg-16卷积神经网络加速器部署方法,其特征在于,所述s600包括以下步骤:
4.根据权利要求3所述的一种vgg-16卷积加速器部署,其特征在于,通用卷积加速器的输入特征图大小为16×16,输出特征图大小为14×14;采用行分块策略,将输入特征图以每4行为一块进行分块,得到4块大小为4×14特征图像,第一块图像包含1-4行输入特征图像,第二块图像包含5-8行输入特征图像,第三块图像包含9-12行输入特征图像,第四块图像包含13-16行输入特征图像;为避免相邻块之间的数据依赖,复制相邻块之间的数据依赖部分,存储到额外增加的一块特征图像上;复制第一块图像和第二块图像之间的数据依赖部分的第3-6行输入特征图为单独一块;复制第二块图像和第三块图像之间的数据依赖部分的第7-10行输入特征图像为单独一块;复制第三块图像和第四块图像之间的数据依赖部分的第11-14行输入特征图像为单独一块;由此,通用卷积加速器的输入特征图像被划分为7块大小为4×14且相邻块之间没有数据依赖的特征图像;在进行卷积计算时,7块输入特征图像块能够实现完全并行展开计算,实现更高的计算吞吐量。