基于FPGA的深度可分离卷积的CNN加速器外文翻译资料

 2022-08-08 11:08

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


原文出处:

L.Bai, Y.Zhao and X.Huang, 'A CNN Accelerator on FPGA Using Depthwise Separable Convolution,' in IEEE Transactions on Circuits and Systems II: Express Briefs,vol.65,no.10,pp.1415-1419,Oct.2018,doi: 10.1109 /TCSII. 2018.2865896.

基于FPGA的深度可分离卷积的CNN加速器

摘要--卷积神经网络(CNNs)由于其高精度,在计算机视觉和模式识别领域得到了广泛的应用。然而,大型卷积操作计算密集型,通常需要一个强大的计算平台,如图形处理单元(GPU)。这使得CNN很难应用于便携式设备。最先进的CNN,如MobileNetV2和Xception,采用深度可分离卷积来代替嵌入式平台的标准卷积,这大大减少了操作和参数,但精度损失有限。这种高度结构化的模型非常适合于现场可编程门阵列(FPGA)的实现。 本文提出了一种可扩展的高性能深度可分卷积优化CNN加速器。 加速器可以安装在不同尺寸的FPGA中,提供硬件资源和处理速度之间的平衡。作为一个例子,MobileNetV2是在Arria10SoC FPGA上实现的,结果表明,该加速器可以在3.75ms内从Image中的每幅图像进行分类,每秒约266.6帧。 与CPU相比,FPGA设计实现了20倍的加速。

关键词-卷积神经网络,FPGA,硬件加速器,MobileNetV2

I、介绍

现在,卷积神经网络(CNNs)由于其在图像分类、语义分割、目标检测和跟踪等任务中的优越性能而成为人们关注的焦点。该技术在行业中也得到了广泛的应用,如自主驾驶、视频监控、语音识别等。

CNN是一个计算密集型模型。它在训练和部署期间消耗大量的计算能力。在实践中,图形处理单元(GPU)通常被选为平台。然而,GPU自身的高功耗限制了它在嵌入式场景中的应用,如便携式设备和可穿戴系统。因此,用于神经网络应用[1]-[12]的现场可编程门阵列和专用集成电路(ASIC)作为GPU的替代品。更具体地说,越来越多的研究关注的是基于FPGA的CNN加速器,因为它有可能在功耗和可重构性之间达到平衡。

为了进一步减轻标准卷积的计算负担,[13]提出了深度可分卷积。这已应用于MobileNetV1[14]和后来的MobileNetV2[15],并用更少的多倍累积操作和参数得到类似的结果。

几乎所有现有的基于FPGA的CNN实现工作都是为了探索内存带宽和计算并行性的局限性。为了克服内存带宽的限制,[2]和[3]将参数存储在片内存储器中。然而,随着CNN的深入,卷积所需的参数急剧增加,这使得片上存储器解决方案效率低下。

其他如[4]、[5]、[6]通过限制神经网络的参数精度来减轻片外存储器的压力,因为较低的数值精度被证明足以满足CNN[16][17]。在[7]和[8]中,计算引擎被优化为计算中的高度并行性。[6]提出了一种基于流水线的高吞吐量CNN解决方案。[9]对CNN的Altera和Xilinx开放CL框架进行了全面的评价和比较。[10]探索了基于稀疏性的优化,通过数据压缩可以达到3倍高的核心能量效率,并将器件级能量效率提高70%左右。[11]和[12]都实现了与示例MobileNetV1的可分离深度卷积,并分别以每幅图像7.85ms和每秒231.7帧(FPS)的速度实现了处理速度。

这项工作的主要贡献是:

提出了一种高性能的CNN硬件加速器框架,其中所有层都在一个名为矩阵乘法引擎的计算单元中处理。

分层存储器结构和乒乓片上缓冲器的使用减少了片外存储器的带宽限制。

提出了一种可扩展设计方法,以便通过平衡片上资源和性能,在各种FPGA中实现该框架。

通过应用所提出的框架和方法,在Arria10So C FPGA上首次实现了最先进的CNN[15]Mobile Net V2。 结果表明,在系统时钟频率为133MHz时,每秒266.6帧,每秒170.6Giga操作(GOPS)。 这表示与CPU[15]相比的20倍加速。

本文组织如下。 第II节提供了深度可分离卷积的基本知识,然后是它的应用之一MobilNetV2。 第三节描述了加速器的体系结构,包括矩阵乘法引擎和片上缓冲区组织。 第四节讨论了系统的实施及其结果。 结论见第五节。

II 深度可分离卷积

(a)标准卷积

(b)深度卷积

(c) 逐点卷积

图1. 不同卷积类型的比较

首先引入了深度可分离卷积[18].作为一种分解卷积,深度可分卷积将标准卷积分解为深度卷积加上点卷积。图1展示了标准卷积(SC)、深度卷积(DWC)和点卷积(PWC)是如何工作的。在标准卷积中,每个输入通道都必须用一个特定的核进行卷积,然后结果是所有通道的卷积结果之和。 在深度可分离卷积情况下,深度卷积是第一步,分别对每个输入信道执行卷积。下一步是在点上进行卷积,这实际上是核大小为1times;1的标准卷积。与标准卷积相比,使用深度可分卷积大大减少了数学运算的数量和参数的数量。

如图1所示。考虑到输入特征映射的大小Mtimes;Mtimes;N和核大小Ktimes;Ktimes;Ntimes;P,在步长为1的情况下,标准卷积所需的权重数是

相应的操作次数是

在深度可分卷积的情况下,权重的总数是

操作的总数是

因此,权重和操作的换算系数如下:

深度可分离卷积的典型应用之一是MobileNetV1[14]的进阶版MobileNetV2。 与第一个版本相比,新提出的MobileNetV2通过缩小某些层的输出通道进一步减少了权重的数量。 它还通过在深度可分离卷积之前再导入一个点向卷积层来提高其性能。 新的操作称为瓶颈(图2)。

(a) stride = 1 (b) stride = 2

图2. 不同步幅的瓶颈操作

MobileNetV2的网络结构如表一所示。

表一

mobilenev2结构[15],其中每条线代表一个或多个相同的(除步幅)层序列。 所有深度卷积都使用3x3核。

III、 系统设计

A. 架构概述

图三的框图是这个加速器的概述。本文提出的矩阵乘法引擎阵列负责所有的CNN操作,包括卷积、归一化、ReLU和池化。所有参数和输入图像都存储在片外存储器上。在MME阵列和内存之间放置了一个带有乒乓球重量的缓冲区,以最大化带宽。偏置被加载到MME数组中的寄存器中 。特征图缓冲区存储所有中间特征图以避免片外存储器读写带来的延迟。加速器由一般有限状态机(FSM)控制)。

图3. 加速器系统框图

B. 矩阵式乘法运算引擎(MME)

本文中,每个MME由32个切片线缓冲区、32 个切片3times;3个乘法器阵列、1个加法器树、1个归一化(Norm)块、1个RELU块和1个池块组成(图 4)。 在每个卷积中,MME将特征图和权重加载到行缓冲区。在乘法器数组中进行乘法后,加法器树根据所选卷积类型对乘积进行求和。 以下操作是可选的规范化、ReLU和池化。

图4. 一个MME的框图

行缓冲器:通过控制FSM可以选择行缓冲器的工作长度,以适应不同的输入大小,如图5所示.实现长度为(K-1)times;M K。

2)加法器树:加法器树是可配置的,可以在深度或点上进行求和操作(图6) 在图7中,黑线或块由两种类型的卷积共享。 在进行深度卷积时使用蓝色部分。 当选择点卷积情况下红色部分工作时,此时所有的偏重都被添加进来。

图 5. 在MME中的行缓冲区

(a)深度和 (b)按点计算的总和

图6. 不同卷积的加法器树模式

图7. 加法器树的框图

3)标准卷积:为了避免丢失太多的信息,采用标准卷积进行第一层卷积。 因此,这种加速器可以与输入特征图3通道进行标准卷积。对于视觉应用,输入特征图的通道数总是3。

4)深度卷积:深度卷积对每个特征映射分别执行卷积。 如图8所示,加法器树被配置为求来自乘法器阵列的并行切片的乘积和。对于一个MME,输出通道数为32。

5)点卷积:点卷积实际上是核大小为1times;1的标准卷积(图9)。为了充分利用MME中的所有乘子,将输入特征图划分为几个Mtimes;Mtimes;32个子矩阵,并将这些子矩阵一个接一个地移动到行缓冲区。该思想来自于大矩阵乘法中的分治算法,如图所示10,包括将大矩阵划分为几个小矩阵,并在做了小矩阵乘法后对结果求和。对于一个MME,它能够同时进行M2times;32和32times;9次乘法。 加法器树总结了每个细胞中的32个产品,如图所示。 9. 从而输出通道数为9。如图9所示,加法器树对每个单元格中的32个结果进行求和。因此,输出信道号为9。

图8. MME的深度卷积

图9. MME中的点卷积

图10. 除-克服大矩阵乘法

6)归一化:经过训练,批量归一化的参数被固定[19]。 从而将复杂的归一化降级为乘法和加法运算。

7)池化:平均池化和最大池是不同的。 当一个特征图通道的像素被一个接一个地输出时,平均池可以很容易地通过将一个多乘累加阶段添加1/S因子来计算,其中S是平均池化大小。 而最大池需要的是一个比较阶段。

8)ReLU:与池化层类似,在归一化阶段之后添加了ReLU阶段。 三个选项:可以选择没有ReLU,标准ReLU和ReLU6。

C. 内存的组织机构

要有一个高效的内存组织,就必须平衡片上内存资源和外部内存带宽。 片上存储器在FPGA上是有限的,但提供了非常高的带宽。相反,外部存储器具有存储大量数据的能力,但受到带宽有限的限制。因此,在本文提出的加速器中,我们采用了分层记忆方法。在每个卷积开始之前,权重缓存区从外部内存中加载所需的参数。这一方面减少了参数加载引起的延迟,另一方面避免了延迟带来的外部内存带宽有限。此外,权重缓冲器被构建为乒乓球缓冲器(图11),这意味着当权重缓冲区1输出卷积数据时,权重缓冲区2从外部存储器加载下一个数据,反之亦然。

(a)缓冲1输出,缓冲2负载 (b)缓冲2输出,缓冲1负载

图11. 乒乓球结构中的重量缓冲

IV 结果

本文提出的加速器体系结构(图12)。通过在Arria10SoC开发工具包(10AS066N3F40E2SG)上实现移动网络V2网络来演示,其中包含251680个ALMS、2131 M20K和1687个DSP块。 首先进行描述设计,然后是实施结果与应用。

A.实现考虑事项

如第一节所述,较低的数值精度对于CNN就足够了。所以选择16位量化策略,因为它被以前的很多研究选择。

基于第三节中的描述,在仔细平衡资源使用和处理时间之后,决定在本设计中实例化4-MME数组。权重缓冲尺寸为36Kb作为乒乓球缓冲。 由于执行深度可分离卷积时权值的更新速率是每个Mtimes;M时钟周期。 中间特征图缓冲区的大小为24.5Mb。

B.项目实施结果

图12介绍了Arria10SoC上的系统体系结构。 由于本设计不使用HPS,因此只显示了FPGA部分。DDR4存储器是连接到FPGA部分的存储器。 CNN加速器以133MHz的频率运行。 它的加法器树限制了这个频率。本文实现了一个NiosII软核微处理器,用于将权重和输入图像从闪存加载到DDR4外部存储器。利用外部存储器接口IP与模块化散射-热直接存储器访问(mSG-DMA)IP连接CNN加速器和FPGA存储器中的缓冲器,其最大带宽为8.5GB/s。这种结构避免了主机在使用DDR4内存来回多次传输过程中的干预,并使非连续数据移动更加有效。定制的mSGDMA控制器的功能使驱动mSGDMA从/到特定地址读取/写入不同大小的数据成为可能,以便适应不同大小的卷积。

实现结果见表二。

表三提供了本文提出的解决方案与其他类似解决方案的比较。 请注意,MobileNet V2具有更复杂的结构和更高的基准精度。

v.结论

本文提出了一种高性能、可伸缩的CNN加速器。该结构对深度可分离的卷积进行了优化,这导致了非常少的操作和参数。这使得在便携式设备上运行CNN成为可能。通过选择不同数量的MME和可变的片上存储器,该加速器可以适应一个大的或小的FPGA。例如,最新的移动网络V2在ArriaA10oCFPGA

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[258181],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。