优先出版卷积神经网络的软硬件协同加速技术
Posted 航空兵器
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优先出版卷积神经网络的软硬件协同加速技术相关的知识,希望对你有一定的参考价值。
DOI:10.12321/ISSN.1679-5048.2020.0011
引用格式
李欣瑶,刘飞阳,文鹏程,等.卷积神经网络的软硬件协同加速技术[J/OL]. 航空兵器,DOI:10.12321/ISSN.1679-5048.2020.0011.
Li Xinyao,Liu Feiyang,Wen Pengcheng, et al. Software and Hardware Cooperative Acceleration Technology for CNN[J/OL].Aero Weaponry,DOI:10.12321/ISSN.1679-5048.2020.0011. (in Chinese)
卷积神经网络的软硬件协同加速技术
李欣瑶 1,2* ,刘飞阳 1,2 ,文鹏程 1,2 ,李 鹏 1,2
1. 航空工业西安航空计算技术研究所
2. 机载、弹载计算机航空科技重点实验室
摘 要
面向构建智能化航空电子系统的需求,提升有人机/无人机智能化作战水平,设计并实现卷积神经网络 CNN 的软硬件协同加速技术,以解决目标识别、辅助决策、自主规划等复杂问题。针对算法模型的庞大参数量与嵌入式环境有限存储资源的冲突问题,采用模型结构优化及量化算法压缩网络规模。针对复杂浮点运算与计算资源紧缺的冲突问题,基于 Verilog HDL 设计卷积、池化两种加速算子,采用流水线+全并行方式,以达到计算加速的目的。通过软件优化设计与硬件加速运算的协同作用,实现卷积神经网络的推理过程加速。以 YOLOv3 及 YOLOv3-Tiny 两种典型 CNN 为例进行加速,并在 Xilinx ZCU102 FPGA 评估板上进行验证。结果表明,加速后的模型与原模型对比,参数量可压缩 4 倍左右,YOLOv3 的推理速度提升近 65 倍,YOLOv3-Tiny 提升 23 倍左右。
关 键 词
智能计算;硬件加速;目标检测;模型压缩;FPGA
0
●
引 言
随着人工智能算法模型结构的快速更迭,神经网络正逐步被应用于解决智慧医疗、自动驾驶等多种复杂智能问题。在航空领域,有人机与无人机的空战过程均朝着智能化的方向发展[1],目标识别跟踪、辅助决策、自主规划等复杂任务均可依赖神经网络完成。但机载嵌入式环境对功耗、实时性都有着严格的制约,且存储、计算资源都较为紧缺,如何将神经网络模型部署于资源受限的嵌入式环境成为亟待解决的问题。
本文面向智能化航空电子系统的需求,设计并实现一种面向卷积神经网络(Convolutional Neural Network, CNN)的软硬件协同加速方法。针对庞大网络模型参数量与有限存储资源的冲突问题,以及大量复杂浮点运算与计算资源紧缺的冲突问题,从软硬件两方面对网络模型进行了优化与加速,解决了基于 CAFFE(Convolutional Architecture for Fast Feature Embedding)框架的网络结构优化问题、模型参数量化问题以及神经网络加速算子的构建问题,以 YOLOv3 及 YOLOv3-Tiny 两种用于目标检测的典型 CNN 网络为例进行加速,并在 Xilinx ZCU102 FPGA 评估板上进行验证。实验结果表明,本文提出的方法可有效加速深度神经网络的推理速度,为深度神经网络部署于存储、计算资源均较为紧缺的嵌入式环境提供了技术支撑。
1
●
国内外研究现状
一个完整的深度学习框架通常包含训练与推理两个主要部分,本文所针对的主要是推理部分的优化与加速。目前普遍应用于推理阶段的加速方法主要从软硬件两方面开展相关工作。
在软件加速方面,分解卷积核使得参数量大幅减少 的SqueezeNet 模型[2] 、逐个通道进行卷积后将结果串联以减少计算量的MobileNet 模型[3] 、采用残差网络思想并在不影响精度的情况下降低分辨率的ShuffleNet 模型[4]、更改卷积运算流程以提高网络效率的Xception 模型[5]等轻量化模型被相继提出并不断优化。除轻量化模型以外,剪枝、奇异值分解、哈弗曼编码等轻量化技术亦得到广泛采用,该类方法的核心思想均为压缩网络模型大小,以减少计算量和降低计算复杂度,虽然会损失网络模型的部分精度,但模型推理速度会得到大幅度提升。目前,在众多轻量化算法中,量化算法具有较为突出的表现。
深度神经网络的训练阶段普遍采用的数据格式是 float 32(简称 FP32),量化算法即采用较低精度的数据格式(如 float 16 和 int 8,简称 FP16 和 INT8)代替高精度的数据格式[6] 。此外,二值化(所有权重的值取+1 或 -1)[7] 和三值化(将所有权重的值量化为[-α,0,+α]三个数之一,其中 α 为可训练的参数)[8] 也都是常用的量化 方法。
在硬件加速方面,目前主流采用 GPU、ASIC与FPGA 三种智能计算架构进行深度神经网络模型加速[9]。其中,高性能 GPU 主要应用于神经网络训练阶段,对环境和库的依赖性较大,国内技术积累较弱,难以实现技术自主可控;ASIC 是为特定需求而专门定制优化开发的架构,灵活性较差,缺乏统一的软硬件开发环境,开发周期长且造价极高;FPGA 是可编程的半定制芯片,具有高灵活性、低延时特性,开发难点在于硬件逻辑实现复杂。目前,面向智能化航空电子系统多应用需求的智能计算加速技术多处于预研阶段,考虑后期的移植、再开发等工作,相对来说 FPGA 架构更适用于航空领域的智能计算加速。
综上,本文面向智能化航空电子系统的应用需求, 设计并实现一种软硬件协同智能计算加速技术,以解决嵌入式环境存储与计算资源受限的瓶颈。设计技术包括:
a. 设计并实现基于CAFFE 框架的网络结构优化方法,并采用量化算法进一步压缩网络模型,解决了嵌入式环境存储资源受限的瓶颈;
b. 基于流水线+并行化思想设计并实现卷积、池化加速算子,根据网络结构调用相应加速算子,解决了嵌入式环境计算资源受限的瓶颈。
实验结果表明,加速后的模型与原模型对比,参数量可压缩 4 倍左右,YOLOv3 及 YOLOv3-Tiny 两种模型的推理速度均有显著提升。
2
●
面向 CNN 的软硬件协同加速方法
深度神经网络在处理复杂智能问题时具有巨大的优势,但机载嵌入式环境的存储、计算资源均受限,为满足航空电子系统智能化场景感知的应用需求,本文设计 了一种面向CNN的软硬件协同加速方法,如图 1 所示。
图1 CNN的软硬件协同加速方法
Fig.1 Software and hardware cooperative acceleration technology for CNN
软硬件协同设计方法是针对系统开发中软硬件设计的相互作用关系而提出的[10]。由于在机载嵌入式环境中,存储资源与计算资源均较为受限,难以将规模庞大的神经网络移植到FPGA平台上,且FPGA并不擅于进行浮点运算,不能发挥FPGA在算力方面的优势,实现计算加速。因此,本文选用软硬件协同方法对卷积神经网络进行加速。软件优化方面,基于CAFFE框架实现结构优化与参数量化,旨在压缩网络模型规模,以大幅降低网络模型对嵌入式平台功耗、内存的需求。硬件加速方面,基于Verilog HDL设计加速算子,采用流水线+全并行的方式,充分利用有限的计算资源,达到计算加速的目的。软件优化与硬件加速两部分协同作用,使得卷积神经网络能够部署于资源受限的嵌入式环境。
本文构建了含雷达、舰船、坦克、汽车、建筑五类物体在内的空对地小目标数据集,从 30°、90°两类不同视角以及彩色、红外、黑白三种不同视图场景进行影像采集,将采集到的 12 个视频片段逐帧截取成 5 000 余 张 1 024×768 像素的高分辨率图片,参照 PASCAL VOC 标准数据集格式,标注生成以航空应用为背景的数据集, 包括训练集 3 000 余张、测试集 1 000 余张和验证集 1 000 余张,单张图片平均含有 7.4 个物体。
开发阶段分为软件优化设计与硬件加速设计两部分。软件优化设计基于 CAFFE 框架对网络结构进行调整、优化,并采用量化算法压缩网络模型,为模型部署于嵌入式环境奠定基础。硬件加速设计基于 FPGA 模块化设计思想,针对典型 CNN 网络中占用资源最多的卷积、池化网络层设计加速算子。
验证阶段将网络移植到 Xilinx ZCU102 评估板上进行验证。其中,卷积、池化加速算子封装为IP核,在PL端实现,其余各层算子在以 ARM 为核心的PS端实现,PL与 PS 之间通过 DMA 进行通信。
3
●
面向 CNN 的软件优化技术
由于构建的空对地小目标数据集以小目标(目标占 图片总比例的 0.5%以内)为主,且目标分布较为集中, 综合考虑航空嵌入式环境对实时性的需求,选用 YOLOv3 及 YOLOv3-Tiny 两种典型 CNN 网络模型进行优化与加速 [11]。YOLOv3 及 YOLOv3-Tiny 模型具有高检测速度及小目标高检测精度的特点,适用于本文构建的数据集。
文献[12]指出,FPGA 加速卷积神经网络推理过程时面临的主要瓶颈体现在两方面,一是计算量,二是数据传输。其中计算量对应本文所述计算资源受限的瓶颈, 数据传输对应存储资源受限的瓶颈。具体来看,卷积神经网络中的卷积层、池化层等网络层涉及大量复杂浮点运算,浮点运算占用资源较多且运行速度较慢,而FPGA中DSP资源较少,若在FPGA加速之前对数据类型进行转化,可有效提高FPGA中的并行计算能力和计算效率,从而解决计算量庞大造成的瓶颈。此外,由于片上存储资源有限,大量中间网络层数据在运算过程中需进行多次访问存储,由此导致严重的传输延迟。为解决该瓶颈,本文对模型结构进行优化设计,减少中间参数,降低访问存储次数,从而降低数据传输开销,提高 FPGA 加速性能。
3.1 基于CAFFE框架的模型结构优化
CAFFE是一个开源的深度学习框架,无硬件与平台的限制,提供网络模型训练、微调、部署所需的完整工具包。与Darknet 框架相比,CAFFE框架提供了卷积、池化、激活等多种算法接口,能够快速、高效地搭建网络模型;而Darknet 框架较为小众,对除YOLO系列以外的网络模型支持度较低。本文基于CAFFE框架搭建 YOLOv3以及YOLOv3-Tiny两种网络,并在原有模型基础上对卷积层结构进行调整优化。CAFFE框架虽然提供了卷积层的接口,但由于YOLOv3及YOLOv3-Tiny两种网络中,每一个卷积层之后都会连接一个归一化层(Batch Normalization,简称 BN),而BN层主要用于训练时解决梯度消失或梯度爆炸问题,单独实现会占用大量显存空间。为提高本文构建模型的推理速度,减少BN层的运算,在基于CAFFE框架搭建时,将BN层参数合并到卷积层,实现为Conv+BN层。融合前原卷积层运算公式为
3.2 模型量化处理
网络模型参数量会直接影响存储资源和计算资源的占用情况,从而影响网络推理速度。为能更精准地提取出待识别图片的各类特征,神经网络通常需要大量卷积层和大量滤波器进行复杂浮点的乘加运算,这意味着一个精度较高的网络模型在计算量上可达10亿量级,参数量更是轻易突破百兆量级[13] 。如在 YOLOv3-Tiny 网络中,仅第 13 层的参数量便高达 8 亿个,在不考虑复用的情况下,该层需进行的乘加运算约 9 000 万次。如果将原始FP32 型数据映射到硬件上,不仅会占用大量的BRAM存储资源,其推理过程更会消耗大量的DSP计算资源, 这对资源受限的嵌入式环境来说是难以承受的。基于硬件资源的考虑,采用量化算法将 FP32 位数据映射为 INT8 位数据,节省存储资源占用情况。以 n×n 卷积核 K 为例,量化过程为
4
●
面向 CNN 的硬件加速技术
FPGA 作为一种可编程重构的硬件架构,能够很好地兼顾处理速度与调控能力。目前,高层次综合(High-Level Synthesis,HLS)与 Verilog HDL 是常用于设计神经网络加速模块的硬件结构及硬件语言。HLS 是指将高层次语言(如 C、C++、System C 等)描述的逻辑结构,自动转换成低抽象级语言描述的电路模型[14], 更注重于上层算法的实现,但基于 HLS 结构实现的神经网络有两个弊端,一是资源占用不合理、不可控,网络运行时能达到的并行度较为受限,特别是搭建中大型神经网络时,并行度较低直接导致其推理速度难以提升;二是转换后的代码不具备可读性,这不仅加大了排查故障的难度,在不满足设计需求时也很难对其进行优化。
而 Verilog HDL 适合于 RTL 级的硬件描述,用于从 算法级、门级到开关级的多种抽象设计层次的数字系统 建模,更偏重于底层,因而基于 Verilog HDL 的设计更 灵活,且效率更高。
在 YOLOv3(共 106 层网络层)及 YOLOv3-Tiny(共 23 层网络层)网络中,卷积层与池化层(共 94 层)占所有网络层的 73%左右,其中涉及的乘加、比较等运算是影响其推理性能的主要因素。为充分合理利用有限的计算资源以满足卷积神经网络中的大量运算,从而达到加速目的,基于 Verilog HDL 设计卷积、池化两种加速算子,并将其封装为 IP 核,便于在加速其他具有相同结构 的网络模型时复用。
4.1 卷积加速算子的设计与实现
卷积加速算子实现 3×3 滤波器的卷积运算。采用全并行加流水线方式,单次卷积运算调用 9 个乘法器,每 个时钟处理 9 组数据的乘法运算,加法运算通过 2 级流 水线完成。卷积算子端口时序图如图 2 所示。其中,ORDER为输入特征图阶数,特征图读取共需ORDER×ORDER个CLK 时钟周期,滤波器需 9 个 CLK 时钟周期,偏置值 Bias 需 1 个 CLK 时钟周期,结果特征图从第 (2×ORDER+7)个 CLK 时钟周期开始输出(无偏置值时,有偏置值则从第(2×ORDER+8)个时钟周期开始输 出),每个时钟周期输出一个值,输出共需(ORDER-2) 2个 CLK 时钟周期。
图2卷积加速算子端口时序图
Fig.2 Port timing of convolution acceleration operator
4.2 池化加速算子的设计与实现
池化加速算子实现步长为 2 的最大池化运算,采用 全并行加流水线方式。池化加速算子端口时序图如图 3 所示。其中,ORDER 为输入特征图阶数,特征图输入共需 ORDER×ORDER 个 CLK 时钟周期,结果特征图从第(2×ORDER+1)个 CLK 时钟周期开始输出,每隔一个时钟周期输出一个值,输出共需(ORDER/2)2个 CLK 时钟周期。由于每次读 取 2×2 数据进行比较之后,输出数据会减少一半,因此 valid 信号表现为 2 分频。
图3池化加速算子端口时序图
Fig.3 Port timing of pooling acceleration operator
4.3 卷积加速算子仿真及资源占用情况
以 5×5 特征图与 3×3 滤波器进行卷积运算为例,如 图 4 所示。每帧特征图输入到输出延时为 2 行输入的时 间,使用 2 个 FIFO 缓存将特征图输入数据延时 1 行和 2 行,当第 3 行特征图数据到达时,由于延时,此时第 1、 2 行数据会同时输出。将 3 行数据和每行对应的滤波器数据进行滑动相乘,通过 2 级流水相加求和即可得到卷积运算结果。
图4 3×3卷积仿真结果
Fig.4 Simulation results of 3×3 convolution
以Xilinx ZCU102 评估板上的运行为例,占用资源 情况如表 2 所示。该算子在 9 组乘加并行运算且含 2 级 流水线的实现下,DSP 资源仅占用了 9 个,占总资源的0.36%,LUT 仅占用了 0.06%,资源占用量较少,且并行度较高,能够达到节省计算资源且运算加速的目的。
4.4 池化加速算子仿真及资源占用情况
以 4×4 特征图、步长为 2 进行池化运算为例,如图 5 所示。当奇数行特征图数据输入时,会写入 FIFO 进行缓存。当偶数行特征图数据输入时,同时读出 FIFO 中的数据,每隔两个数据进行 2×2 的数据比较,将最大数据进行输出。
图5 4×4池化仿真结果
Fig.5 Simulation results of 4×4 pooling
以 Xilinx ZCU102 评估板上的运行为例,该算子占用资源情况如表 3 所示。
5
●
测试与验证
本文在 Xilinx ZCU102 评估板上进行验证,该评估 板含有 2 520 个 DSP 单元、32Mb RAM 内存、512 MB 与 PL 端相连的 DDR4 存储器件以及 4 GB 与 PS 端相连的 DDR4 存储器件,能够满足神经网络硬件部署的基本资源需求。在 100 MHz 的时钟频率下,YOLOv3 网络对 单张图片的推理过程需约 1.49×107 个时钟周期, YOLOv3-Tiny 网络对单张图片的推理过程约 4.17×106个时钟周期。
为评估本文算法在航空背景特定数据集上的有效性以及推理阶段的时效性,本文以构建的空对地小目标数据集作为样本集,采用功耗、mAP(mean average precision, 均值平均精度)以及推理阶段运行时间 FPS(frames per second)作为评价指标,衡量智能计算加速技术的综合性能。表 4 列出了加速方法基于构建的空对地小目标数据集(1 024×768 像素)在不同硬件平台上测试的功耗与 运行时间的对比情况。
采用量化后的同一权重参数在不同硬件平台上进行 测试,测试结果表明,在 CPU、GPU 与 FPGA 三种硬件平台上,网络检测精度基本一致。在模型推理过程的加速方面,两种网络部署于 ZCU102 评估板后的运行速度均有大幅提升。与原网络在 CPU 上的运行速度相比,YOLOv3 提升了 65 倍,可达到每秒 6 帧,YOLOv3-Tiny 可达到每秒 23 帧。虽然推理速度与高性能 GPU 相比还有较大差距,但在功耗方面,ZCU102 上的功耗不到 GPU 功耗的十分之一,能够满足嵌入式环境低功耗的需求。可见,卷积加速算子与池化加速算子在加速神经网络模型的推理 过程方面发挥了重要作用。
检测效果图如图 6 所示。
综上,本文采用了软硬件协同加速技术,为卷积神经网络部署于资源受限的嵌入式环境提供了支撑。其中,软件优化技术对模型结构进行优化,并实现量化算法,有效压缩了网络模型规模,极大缓解了机载嵌入式环境存储资源受限的瓶颈,为神经网络移植到嵌入式平台建立基础。硬件加速技术基于 Verilog HDL 设计并实现卷积、池化两种加速算子,仅需占用少量计算资源即可实现这两种复杂运算。通过软硬件两种加速技术的协同作用,有效解决机载嵌入式环境下部署卷积神经网络时面临的存储资源紧缺与计算资源受限两种瓶颈,达到智能计算加速的目的。
6
●
结 论
面向空战过程智能化的应用需求,提高有人机/无人 机自主感知、目标识别跟踪、自主决策等能力,设计并实现了应用于资源受限的嵌入式环境的 CNN 软硬件协同 加速技术,旨在解决庞大模型参数量与有限存储资源的冲突问题以及大量复杂浮点运算与计算资源紧缺的冲突 问题。在开发阶段,构建了空对地小目标数据集,基于 CAFFE 框架对 YOLOv3 和 YOLOv3-Tiny 两种网络进行了结构优化。对两种模型进行压缩量化处理,压缩模型约 4 倍。基于 Verilog HDL 设计并实现两种加速算子,仅需占用少量资源即可完成相应运算。通过软硬件两种技术协同作用,达到推理过程加速的目的。其中,基于 CAFFE 框架的结构优化方法、模型压缩量化算法以及卷积池化加速算子均具备一定的通用性,便于构建其他网络模型时使用。在验证阶段,将两种网络模型部署于 Xilinx ZCU102 评估板上进行了验证。实验证明,两种加速算子在计算资源紧缺的嵌入式环境下,可有效加速两种网络的推理过程。
下一步工作主要着眼于构建加速算子库,封装除卷积、池化以外的多种算子,搭建结构更为复杂的神经网络模型,以满足智能化航空电子系统的多应用需求,同时设计数据重用算法,提高存储空间利用率,进一步加速嵌入式环境下深度神经网络模型的推理过程。
李欣瑶(1994-),女,陕西西安人,硕士,研究方向是智能计算加速技术。
E-mail:747065580@qq.com
点击下方 “阅读原文”
了解更多文章信息~
航空兵器
中文核心期刊
中国科技核心期刊
CSCD来源期刊
Tel:0379-63385246
E-mail:hkbq2016@163.com
http://www.aeroweaponry.avic.com
洛阳市030信箱3分箱
编 辑:鲁 璐
校 对:夏君子
以上是关于优先出版卷积神经网络的软硬件协同加速技术的主要内容,如果未能解决你的问题,请参考以下文章