APP下载

面向小型边缘计算的深度可分离神经网络模型与硬件加速器设计

2024-05-24孟群康李强赵峰庄莉王秋琳陈锴罗军常胜

计算机应用研究 2024年3期
关键词:边缘计算

孟群康 李强 赵峰 庄莉 王秋琳 陈锴 罗军 常胜

摘 要:

神經网络参数量和运算量的扩大,使得在资源有限的硬件平台上流水线部署神经网络变得更加困难。基于此,提出了一种解决深度学习模型在小型边缘计算平台上部署困难的方法。该方法基于应用于自定义数据集的深度可分离网络模型,在软件端使用迁移学习、敏感度分析和剪枝量化的步骤进行模型压缩,在硬件端分析并设计了适用于有限资源FPGA的流水线硬件加速器。实验结果表明,经过软件端的网络压缩优化,这种量化部署模型具有94.60%的高准确率,16.64 M的较低的单次推理定点数运算量和0.079 M的参数量。此外,经过硬件资源优化后,在国产FPGA开发板上进行流水线部署,推理帧率达到了366 FPS,计算能效为8.57 GOPS/W。这一研究提供了一种在小型边缘计算平台上高性能部署深度学习模型的解决方案。

关键词:边缘计算;深度可分离卷积;流水线部署;硬件加速器;FPGA

中图分类号:TP391.7   文献标志码:A    文章编号:1001-3695(2024)03-032-0861-05doi: 10.19734/j.issn.1001-3695.2023.07.0335

Design of depthwise separable neural network models and

hardware accelerator for small-scale edge computing

Meng Qunkang1, Li Qiang2, Zhao Feng2, Zhuang Li3, Wang Qiulin3, Chen Kai3, Luo Jun4, Chang Sheng1

(1.School of Physics and Technology, Wuhan University, Wuhan 430072, China; 2.State Grid Information & Telecommunication Co., Ltd., Beijing 102211, China; 3.Fujian Yirong Information Technology Co., Ltd., Fuzhou 350003, China; 4.Institute of Electronic Fifth Research Dept., Ministry of Industry and Information Technology, Guangzhou 510507, China)

Abstract:

The parameter and computational requirements of neural networks have increased, making it increasingly difficult to deploy neural networks on hardware platforms with limited resources. This paper proposed a method to address the challenge of deploying deep learning models on small edge computing platforms. The method utilized a depthwise separable network model applied to a custom dataset. This method carried out model compression on the software end by employing steps as transfer learning, sensitivity analysis, and pruning quantization. On the hardware end, it analyzed and designed a pipeline hardware accelerator suitable for FPGA with limited resources. Experimental results demonstrate that after software-based network compression optimization, this quantized deployment model achieves a high accuracy rate of 94.60%, with a lower single-inference fixed-point operation count of 16.64 M and a parameter count of 0.079 M. Furthermore, after hardware resource optimization, the pipeline deployment on a domestic FPGA development board achieved an inference frame rate of 366 FPS and a computational efficiency of 8.57 GOPS/W. This research provides a solution for high-performance deployment of deep learning models on small-scale edge computing platforms. Key words:edge computing; depthwise separable convolution; pipelined deployment; hardware accelerator; FPGA

0 引言

随着人工智能技术的发展,深度学习算法在图像识别[1]、目标检测[2]、自然语言处理[3]等领域取得了巨大的进展,但这种进展需要庞大、功耗高、性能高的计算机硬件支持[4],即使是可重构的FPGA,也日益难以支持规模逐渐变大的神经网络参数量和计算量[5,6],这也限制了模型实际应用的落地,例如Anastasios等人[7]分析了边缘IoT(Internet of Things,物联网)设备部署神经网络在内存和算力方面的困难。目前关于神经网络的边缘部署的研究,主要分为图形处理器(graphics processing unit,GPU)、中央处理器(central processing unit,CPU)/微控制单元(microcontroller unit,MCU)和现场可编程逻辑门阵列(field programmable gate array,FPGA)等方向[8]。其中,GPU具有最强的运算能力,但由于其高功耗的特点,在许多功耗敏感领域的使用受到限制[9]。CPU/MCU虽然具有较高的逻辑处理能力,但其在神经网络的应用中效率较低。相比之下,FPGA具有可重构的特点[10],设计较为灵活,越来越受边缘计算应用需求的青睐,例如Ferdian等人[11]的研究列举了大量FPGA应用于边缘IoT设备的实例。但是基于FPGA平台设计的高并行度流水线AI加速器,通常需要消耗大量的资源且功耗较高[12],超出大多数小型FPGA平台的承受能力。例如,Xiao等人[13]为了将MobileNet-V1的每一层均部署在FPGA上且达到55.6的识别帧率,采用了数字信号处理器(digital signal processor,DSP)数量大于600的FPGA开发板,且最终功耗超过8 W;Xie等人[14]为了使用较低资源的FPGA运行MobileNet-v2网络,计算单元较少,仅达到16推理帧率的情况下功率为2.74 W,运算能效不高。目标检测任务方面,文献[15]在较高资源的ZU3EG的FPGA开发板上仅能全流水部署较小的YOLOv3-Tiny网络,也充分说明了边缘设备应用先进深度学习算法的困难。

为了缓解上述困难,本文完成的主要工作是应用迁移学习、敏感度分析、剪枝量化和特征图尺寸压缩等方法,设计一套在自定义数据集上效果良好的轻量级深度可分离神经网络,并且在此基础上,设计出基于国产小资源FPGA的流水线网络加速模块,最后配合不同的输入输出模块完成了推理结果叠加图片的显示功能。

为了克服神经网络的流水线展开消耗的FPGA资源过高的困难,本文的主要贡献有:

a)提出了一种基于自定义数据集的,应用迁移学习、敏感度分析、剪枝量化和特征图尺寸压缩等模型优化算法的、面向有限资源FPGA的深度可分离网络模型。

b)进行了深度可分离卷积(depthwise separable convolution,DSC)硬件加速器中所消耗的缓存资源的设计空间探索,在硬件平台的算力和资源方面取得平衡。

c)在国产小资源FPGA开发板上对自定义DSC加速模块进行运行测试,在达到366 FPS的推理运行速度的性能下,功率仅为0.71 W,达到8.57 GOPS/W的高能效比。

1 深度可分离网络设计优化与硬件加速器设计

1.1 硬件友好的深度可分离卷积

深度可分离卷积的思路最早由Google团队的Howard等人[16]提出。其思想是将标准卷积操作分为深度卷积和逐点卷积。具体来说,深度可分离卷积使得每个输入通道先单独卷积,然后再在输出通道之间使用1×1逐点卷积,实现通道信息的融合,如图1所示。深度可分离卷积的优势主要体现在不显著降低分类精度的同时显著降低参数量和运算量,减小模型规模,减轻过拟合风险。相比于在云端运行的计算密集型网络,深度可分离卷积非常适合边缘侧硬件平台部署,目前被广泛应用于卷积神经网络中,例如MobileNet、Xception等模型,并取得了良好的效果。本文主要应用深度可分离网络的思想设计和优化网络结构,在保证精确度的情况下提高硬件适配度和性能。

1.2 DSC硬件加速器缓存资源设计空间探索

与在资源和内存丰富的云端和边端部署神经网络不同,在面向小型边缘计算平台的时候,运算资源和功耗成为了更加重要的考虑因素。DSC硬件加速器缓存资源设计空间探索的目的就是在有限资源的FPGA平台上实现算力、资源和存储的平衡,以达到最佳的性能和效率。

通过对FPGA硬件资源的分析和对深度可分离卷积模块的参数建模,可以得出硬件对于不同通道数/层数网络的支持能力。与一般的卷积神经网络对于并行度的支持相对自由不同,深度可分离卷积网络由于其交替进行深度可分离卷积DW(depthwise convolution)和点卷积PW(pointwise convolution)的特点,硬件如果无法对PW的全部卷积核作全并行处理的话,就需要数据等待,利用流水线寄存器进行数据重排,才能保证下一卷积层相同位置的数据及时计算完毕。

1.2.1 数据重排的硬件端实现

由于深度可分离卷积神经网络的深度可分离卷积层各层时间数据相互独立,在计算上一层的点卷积的时不必等待其他通道的完成即可把数据送出给到深度分离卷积,所以可以在硬件流水线中按照“点卷积-深度分离卷积“的结构构建层流水,能够节约一半的层间缓存寄存器。图中给出一般的情况,即通道并行没有完全充满的情况下,深度分离卷积到点卷积的计算需要数据重排器对数据重新组合。数据重排器可以理解为层间寄存器。其具体功能如图2所示。

1.3.4 特征图尺寸压缩的软硬件综合评估

针对自定义数据集,较大的特征图尺寸通常提供了过多的信息,而神经网络推理只需要其中关键的部分。因此,对特征图尺寸进行合理的压缩,并不会明显降低识别准确度,或者在接受一定准确度下降的情况下,能够节省硬件资源。通常情况下,卷积运算是计算密集型的网络层,因此特征图尺寸对卷积神经网络的计算资源使用并没有太大影响。然而,由于卷积神经网络在处理图像序列输入时需要进行缓存,特征圖尺寸主要会影响作为寄存器的查找表(LUT)和触发器(FF)。而对于全连接层而言,特征图尺寸的大小将极大地影响计算资源和存储资源的利用情况。因此,通过压缩特征图尺寸,可以减轻全连接层的负担,并减少整个图像识别过程的端到端延迟。

在本文中,由于需要综合考虑网络的精度和资源消耗,可以通过软件评估压缩后的特征图尺寸对网络精度的影响,并使用EDA软件评估压缩后特征图对全连接层资源的消耗情况。这样可以在保证精度的同时,有效地利用计算和存储资源。特征图尺寸压缩后的精度、延时和全连接层所消耗的硬件资源的情况在2.3节中示出。

1.4 DSC卷积加速器与流水线设计

一般流水线的计算设计按照“卷积-层寄存”的方式堆叠,但是深度可分离卷积的深度分离层各层之间数据没有联系,使得这种卷积计算可以减少一半的层缓存,具体设计如图6所示。

2 实验平台部署与结果

2.1 初始模型的选取与迁移学习精度

本实验的代码环境为PyTorch 1.13,所采用的数据集分为预训练阶段的完整的、包含120万张训练集图片和5万张验证集图片的1 000分类ImageNet-ILSVRC2012数据集,和模型压缩部署阶段自定义的包含一共13 393张来自互联网公开野生动物图片的10分类数据集,该数据集的基本情况如图7所示。

由于动物种类数量较多,所以本文主要关注图7中标注的9类动物,其他野生动物和没有任何野生动物出现的环境背景将同作为背景一类进行分类。较好的监督学习模型需要更大量的标注数据,如果直接使用学习能力很强的CNN在该小规模数据集上进行训练,很容易就会陷入过拟合状态,因此引入大数据集预训练的思路。预训练阶段选取了采用深度可分离卷积的经典网络MobileNet V1作为原始网络,在ImageNet-ILSVRC2012数据集上训练作为初始的卷积分类权重,如图8所示。经过60个epochs的完整训练之后,最终的ImageNet最佳测试集准确度为67.18%。自定义数据集上的迁移学习过程如图4(b)所示,保留整个卷积部分的结构和参数不变,仅改变全连接层的输出维度,再次做60个epochs的完整训练之后,将整个网络所有参数全部设置为可训练,然后再降低学习率再次做20个epochs,最终在自定义10分类数据集上的精度为97.05%,这个精度也作为后期网络结构调整的基准线。

2.2 敏感度分析与层剪枝精度

对于上述的网络进行剪枝,然后再在整个数据集上微调训练,得到的每一卷积层的敏感度,如图9所示。

可以发现,对于浅层卷积神经网络而言,大量的剪枝都不会造成分类精度明显下降,而最初层卷积神经网络也能承受较大的剪枝率。因此可以把最浅层的神经网络层conv13和conv14层完全丢弃。接下来分别采用部分数据集微调训练,减少微调训练数据和使用非代表性样本来进行微调,裁剪最不敏感网络层以进一步减小模型的大小,适应不同场景的需求,分别得到图9(b)~(e)的剪枝结果。最终采用的模型剪枝率和模型推理精度、卷积网络层数、浮点运算量FLOPS、参数量和模型所占空间的大小如表2所示。

2.3 特征图尺寸压缩的软硬件综合评估结果

采用软硬件对特征图尺寸压缩之后的网络精度和全连接层所消耗的硬件资源的情况如图10所示。由于采用不同的并行度所需要的全连接层数据产出和接收速度不同,LUT消耗量与并行度μ也有紧密联系,所以在图中画出不同并行度μ下的资源消耗曲线。横坐标的特征图压缩率越高,表明输入特征图的尺寸越小,优势是能节约大量的全连接层运算和存储资源(主要以LUT计),而劣势是压缩损失信息导致的精度下降越发明显,因此需要在两者之间取得平衡。本文的做法是根据能承受的最大全连接层资源量,选择最高的精度和压缩率,根据延迟速度的要求来选择并行度μ。

2.4 量化训练结果

采用静态量化位INT8位宽整型数的策略,可以达到92.79%的精度,相较于浮点模型下降了2.58%,采用量化训练策略得到的量化后的精度可以恢复到94.60%,相比于浮点模型仅下降了0.77%,如图11所示。由于INT8量化所带来的存储器位宽消耗仅为float型浮点数的四分之一,所以在模型结构不变的情况下,模型参数量缩小为原先的25%,在剪枝量化后仅有83 KB的定点数参数量;配合软硬件协同评估的特征图尺寸压缩,模型计算量缩小为16.64 MOPS。

2.5 FPGA部署资源消耗和运行结果

本文选用的开发板是国产Gowin GW2A FPGA,LUT逻辑资源为20 k,BRAM共828 KB,用作乘法器的DSP共48个。本文在逻辑和计算资源均受限的情况下,设计硬件结构能够运行上述软硬件综合优化后的压缩模型。

系统的整体结构如图12所示,设计的DSC流水线模块需要和其他外设控制模块配合使用,其中MCU软核主要作用是控制输出参数。

整体上板运行结果如图13所示,分别是系统整体结构图、在USB串口输出的检测结果、通过HDMI显示器和LCD屏幕显示的输出结果。

最终设计的整体性能情况与其他硬件加速器工作性能对比如表3所示,其中资源和功耗情况为EDA软件Gowin FPGA Designer编译得到,FPS数据为仿真和实际上板运行得到,算力和能耗比数据从上述已有的数据中推算出。

本文模型与其他硬件平台的性能参数对比如图14所示。将相同的神经网络分别部署在本地的Intel的i7-1165的CPU平台和NVIDIA的GTX1080Ti平台上,以及云端GTX4090服务器上,可以实测得到其功耗和FPS速度等性能参数。经过对比可以发现,本文设计的硬件加速器在GOPS/W的能效上有明显的优势,相比于本地CPU和本地GPU平台分别有8.24倍和47.61倍的提升,相比于云端GTX4090服务器有19.11倍的提升,充分发挥了边缘计算平台低功耗的优势。另外,本研究在边缘小型计算平台上的延迟优势相比云端计算平台也很明显,经过和云端测定的实际延迟进行对比发现,本地计算延迟不到云端计算延遲的1%,甚至低于高功耗高FPS的GPU平台,充分发挥了边缘计算的低延迟低功耗优势。另外,边缘小面积FPGA平台相比于云端和边端计算的巨大优势,是一旦部署完成之后,无须上位机电脑和操作系统的支持,就可以完全独立运行。

本文的硬件设计部分充分发挥了国产有限资源FPGA中的LUT和DSP,以及存储所用的BRAM资源,系统总时钟约束为54 Hz。而由于边缘侧FPGA整体芯片较小,因此总功耗仅0.71 W。与其他文献对比,满负载运行时,计算能效比较高,达8.57 GOPS/W、推理速度能够达到较快的366 FPS。

3 结束语

本文的研究应用迁移学习、敏感度分析和剪枝量化方法等模型压缩算法,设计出了一个在自定义数据集上表现优秀的轻量级深度可分离神经网络,并将其设计为适用于资源有限的边缘FPGA的流水线网络加速模块。本文的贡献主要是提出了面向小型边缘计算的轻量级深度可分离网络模型,该模型在自定义数据集上表现良好;进行了DSC硬件加速器缓存空间设计空间探索,实现了算力和资源的平衡;最终该可部署模型在自定义数据集上准确率达到了94.60%,深度可分离卷积层降低到7层,单次推理定点数运算量仅为16.64 M,参数量仅为0.079 M。该网络经过硬件资源优化后实现了在20 k LUT逻辑资源的国产FPGA开发板上的流水线部署,在54 MHz的时钟约束下,推理帧率达到366 FPS,计算能效达到8.57 GOPS/W。这对于提高推理运行速度、降低功耗以及实现高能效比具有重要意义。此研究结果在边缘计算以及较低资源FPGA领域具有实际应用价值和推广潜力。

致谢 本文的神经网络优化得到武汉大学超算中心的支持!

参考文献:

[1]He Kaiming,Zhang Xiangyu,Ren Shaoqing,et al. Deep residual learning for image recognition [C]// Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway,NJ: IEEE Press,2016: 770-778.

[2]Wu Dong,Liao Manwen,Zhang Weitian,et al. YOLOP: you only look once for panoptic driving perception [J]. Machine Intelligence Research,2022,19(6): 550-562.

[3]Sangmin P,Sungho P,Harim J,et al. Scenario-mining for level 4 automated vehicle safety assessment from real accident situations in urban areas using a natural language process[J].Sensors,2021,21(20):6929.

[4]安勝彪,郭昱岐,白宇,等. 小样本图像分类研究综述 [J]. 计算机科学与探索,2023,17(3): 511-532. (An Shengbiao,Guo Yuqi,Bai Yu,et al. Survey of few-shot image classification research [J]. Journal of Frontiers of Computer Science and Technology,2023,17(3): 511-532.)

[5]Kim J. Advanced AI hardware designs based on FPGAs [J]. Electronics,2021,10(20):2551.

[6]陈瑶,王永强,王远飞,等. 降低实现神经网络的FPGA硬件资源消耗的方法研究 [J]. 科学技术创新,2023 (13): 78-82. (Chen Yao,Wang Yongqiang,Wang Yuanfei,et al. Research on reduce FPGA for implementing neural networks [J]. Innovation Science and Technology,2023 (13): 78-82.)

[7]Anastasios F,Theofanis O,Konstantinos K,et al. Power efficient machine learning models deployment on edge IoT devices [J]. Sensors,2023,23(3):1595.

[8]Chang Liang,Li Chenglong,Zhang Zhaomin,et al. Energy-efficient computing-in-memory architecture for AI processor: device,circuit,architecture perspective [J]. Science China:Information Sciences,2021,64(6): 45-59.

[9]Ahuja P S,Czarnecki E,Willison S. Multi-factor performance compa-rison of Amazon Web services elastic compute cluster and Google Cloud platform compute engine [J]. International Journal of Cloud Applications and Computing,2020,10(3):1-16.

[10]Dong Yong,Hu Wei,Wang Yonghao,et al. Optimizing accelerator on FPGA for deep convolutional neural networks [C]// Proc of the 20th International Conference on Algorithms and Architectures for Parallel Processing. Berlin: Springer,2020: 97-110.

[11]Ferdian R,Aisuwarya R,Erlina T. Edge computing for Internet of Things based on FPGA [C]// Proc of International Conference on Information Technology Systems and Innovation. Piscataway,NJ: IEEE Press,2020: 20-23.

[12]Bai Lin,Zhao Yiming,Huang Xinming. A CNN accelerator on FPGA using depthwise separable convolution [J]. IEEE Trans on Circuits and Systems II: Express Briefs,2018,65(10):1415-1419.

[13]Xiao Chunhua,Xu Dandan,Qiu Shi,et al. FGPA: fine-grained pipelined acceleration for depthwise separable CNN in resource constraint scenarios [C]// Proc of the 19th IEEE International Symposium on Parallel and Distributed Processing with Applications. Piscataway,NJ: IEEE Press,2021: 246-254.

[14]Xie Xiaofei,Zhao Guodong,Wei Wei,et al. MobileNetV2 accelerator for power and speed balanced embedded applications [C]// Proc of the 2nd International Conference on Data Science and Computer Application. Piscataway,NJ: IEEE Press,2022: 134-139.

[15]江瑜,朱鐵柱,蒋青松,等. 基于FPGA的卷积神经网络硬件加速器设计 [J]. 电子器件,2023,46(4): 973-977. (Jiang Yu,Zhu Tiezhu,Jiang Qingsong,et al. Design of a convolutional neural network hardware accelerator based on FPGA [J]. Chinese Journal of Electron Devices,2023,46(4): 973-977.)

[16]Howard A G,Zhu Menglong,Chen Bo,et al. MobileNets: efficient convolutional neural networks for mobile vision applications [EB/OL]. (2017-04-17) [2023-07-26]. https://doi. org/10. 48550/arXiv. 1704. 04861.

[17]Butt U,Ullah H,Letchmunan S,et al. Leveraging transfer learning for spatio-temporal human activity recognition from video sequences [J]. Computers,Materials & Continua,2022,74(3):5017-5033.

[18]Deepak G,Kilho L,Seong-heum K. Loss-aware automatic selection of structured pruning criteria for deep neural network acceleration [J]. Image and Vision Computing,2023,136: 104745.

猜你喜欢

边缘计算
面向5G MEC边缘云的CDN下沉方案
区块链技术在物联网中的应用分析
边缘计算下移动智能终端隐私数据的保护方法
边缘计算在农业物联网中的应用
从“边缘计算”看未来企业办公场景