论文部分内容阅读
随着人工智能的快速发展,卷积神经网络成为了热门的研究领域。然而由于卷积神经网络的高复杂度计算,传统的CPU无法满足实时性要求。GPU虽然被广泛用于网络的训练中,但是由于其过高的功耗无法满足嵌入式应用需求。因此,FPGA凭借其低功耗、可重构、低延时的特点逐步成为研究的热点。目前传统在FPGA上部署卷积神经网络的方法主要是构建大型的乘累加阵列,该方法的最大性能受限于FPGA上乘法器单元的数量,并且无法利用卷积神经网络中参数量冗余的特点来获得更高的性能,针对这些问题,本文针对GoogLeNet网络,创新性的使用以下方法进行解决:
(1)提出多维度算法压缩框架包括剪枝、聚类和量化三种压缩算法来对GoogLeNet网络进行轻量化以解决其存在的计算量大、参数量多的问题。根据剪枝率以及GoogLeNet网络不同卷积层参数的分布,动态调整剪枝阈值,将不重要的参数去除,使用K-Means聚类算法对GoogLeNet网络进行聚类,并提出根据网络卷积核大小以及非零参数量的不同设置不同的聚类类别来达到最优的聚类效果,最后结合Ristretto算法对GoogLeNet网络进行8bit量化探索以降低模型的存储空间。实验结果表明,同时使用三种算法压缩后的GoogLeNet网络模型的存储空间降为原模型的十分之一,计算量降为原模型的四分之一。
(2)基于OpenCL异构计算框架,结合压缩后的GoogLeNet网络模型以及课题组所提出的ABM-SpConv稀疏卷积算法,设计了面向稀疏GoogLeNet网络的硬件架构。通过将卷积运算中加法、乘法解耦为两个阶段,先在加法单元中将权值对应的特征图数据相加,然后再将累加结果送到乘法单元中和对应的权值相乘,从而减少了乘法器单元的用量。并提出将GoogLeNet网络中的归一化层和卷积层相融合的方法来进一步降低部署的难度以及对压缩后的网络模型参数进行编码以解决传统稀疏卷积算法中访存效率低的问题。最后本文设计了一套完整的设计空间探索流程,通过对资源、频率、性能进行理论建模分析,得到本文架构在目标板卡上的最优性能,为跨设备移植提供便利。
本文将GoogLeNet网络部署在Arria10GXFPGA开发板上并进行了实验,取得了非常好的结果。在最优电路参数的配置下,识别一张图片的时间为3.4毫秒,最大吞吐量为1456GOPS,能效比是CPU的34倍,GPU的4倍,和之前最优的架构相比,速度提升了1倍,吞吐量提升了3倍。
(1)提出多维度算法压缩框架包括剪枝、聚类和量化三种压缩算法来对GoogLeNet网络进行轻量化以解决其存在的计算量大、参数量多的问题。根据剪枝率以及GoogLeNet网络不同卷积层参数的分布,动态调整剪枝阈值,将不重要的参数去除,使用K-Means聚类算法对GoogLeNet网络进行聚类,并提出根据网络卷积核大小以及非零参数量的不同设置不同的聚类类别来达到最优的聚类效果,最后结合Ristretto算法对GoogLeNet网络进行8bit量化探索以降低模型的存储空间。实验结果表明,同时使用三种算法压缩后的GoogLeNet网络模型的存储空间降为原模型的十分之一,计算量降为原模型的四分之一。
(2)基于OpenCL异构计算框架,结合压缩后的GoogLeNet网络模型以及课题组所提出的ABM-SpConv稀疏卷积算法,设计了面向稀疏GoogLeNet网络的硬件架构。通过将卷积运算中加法、乘法解耦为两个阶段,先在加法单元中将权值对应的特征图数据相加,然后再将累加结果送到乘法单元中和对应的权值相乘,从而减少了乘法器单元的用量。并提出将GoogLeNet网络中的归一化层和卷积层相融合的方法来进一步降低部署的难度以及对压缩后的网络模型参数进行编码以解决传统稀疏卷积算法中访存效率低的问题。最后本文设计了一套完整的设计空间探索流程,通过对资源、频率、性能进行理论建模分析,得到本文架构在目标板卡上的最优性能,为跨设备移植提供便利。
本文将GoogLeNet网络部署在Arria10GXFPGA开发板上并进行了实验,取得了非常好的结果。在最优电路参数的配置下,识别一张图片的时间为3.4毫秒,最大吞吐量为1456GOPS,能效比是CPU的34倍,GPU的4倍,和之前最优的架构相比,速度提升了1倍,吞吐量提升了3倍。