最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于FPGA的卷积神经网络并行加速器设计

IT圈 admin 53浏览 0评论

2024年5月15日发(作者:綦正谊)

基于FPGA的卷积神经网络并行加速器设计

(南开大学电子信息与光学工程学院袁天津300350)

王婷袁陈斌岳袁张福海

摘要院近年来袁卷积神经网络在许多领域中发挥着越来越重要的作用袁然而功耗和速度是限制其应用的主要因素遥

为了克服其限制因素,设计一种基于FPGA平台的卷积神经网络并行加速器袁以Ultra96-V2为实验开发平台袁而且

卷积神经网络计算IP核的设计实现采用了高级设计综合工具袁使用Vivado开发工具完成了基于FPGA的卷积神经

网络加速器系统设计实现遥通过对GPU和CPU识别率的对比实验袁基于FPGA优化设计的卷积神经网络处理一张

图片的时间比CPU要少得多袁相比GPU功耗减少30倍以上袁显示了基于FPGA加速器设计的性能和功耗优势袁验

证了该方法的有效性遥

关键词院并行计算曰卷积神经网络曰加速器曰流水线

中图分类号院TN402文献标识码院ADOI院10.16157/.0258-7998.200858

中文引用格式院王婷袁陈斌岳袁张福海.基于FPGA的卷积神经网络并行加速器设计[J].电子技术应用袁2021袁47(2)院

81-84.

英文引用格式院WangTing袁ChenBinyue袁elacceleratordesignforconvolutionalneuralnetworksbasedon

FPGA[J].ApplicationofElectronicTechnique袁2021袁47(2)院81-84.

ParallelacceleratordesignforconvolutionalneuralnetworksbasedonFPGA

(CollegeofElectronicInformationandOpticalEngineering袁NankaiUniversity袁Tianjin300350袁China)

Abstract院Inrecentyears,convolur,powercon鄄

rtoovercomeitslimitations,aconvolutionalneuralnetwork

96-v2isusedastheexperimentaldevelopmentplatform,andthede鄄

signandimplementationofconvolutionaignand

implementationofconvolutionalneuralnetworkacceleratorsystembasedonFPGAiscompletedbyusingvivadodevelopmenttools.

BycomparingtherecognitionrateofGPUandCPU,theconvolutionalneuralnetworkbasedonFPGAoptimizeddesigntakesmuch

lesstimetoprocessapicturethanCPU,stheperfor鄄

manceandpowerconsumptionadvantagesofFPGAacceleratordesign,andverifiestheeffectivenessofthismethod.

Keywords院parallelcomputing曰convolutionalneuralnetwork曰accelerator曰pipeline

WangTing袁ChenBinyue袁ZhangFuhai

0引言

随着人工智能的快速发展袁卷积神经网络越来越受

到人们的关注遥由于它的高适应性和出色的识别能力袁

它已被广泛应用于分类和识别尧目标检测尧目标跟踪等

并且通用CPU不再能够满足计算需求遥目前袁主要解决

领域

[1]

遥与传统算法相比袁CNN的计算复杂度要高得多袁

已经研究了使用FPGA实现CNN加速的方法

[3]

遥本文参

考了Google提出的轻量级网络MobileNet结构

[4]

袁并通过

并行处理和流水线结构在FPGA上设计了高速CNN系

统袁并将其与CPU和GPU的实现进行了比较遥

1卷积神经网络加速器的设计研究

1.1卷积神经网络的介绍

在深度学习领域中袁卷积神经网络占有着非常重要

的地位袁它的图像识别准确率接近甚至高于人类的识别

水平遥卷积神经网络是同时具有层次结构性和局部连通

性的人工神经网络

[5]

遥卷积神经网络的结构都是类似

的袁它们采用前向网络模型结构袁节点使用神经元来实

现分层连接遥并且袁相邻层之间的节点是在局部区域内

相连接袁同一层中的一些神经元节点之间是共享连接权

方案是使用GPU进行CNN计算遥尽管GPU在并行计算

卷积神经网络推理过程的实现占用空间大袁计算能耗大

[2]

并行处理功能袁灵活的可配置功能以及超低功耗袁使其

成为CNN实现平台的理想选择遥FPGA的可重配置特性

适合于变化的神经网络网络结构遥因此袁许多研究人员

中具有自然优势袁但在成本和功耗方面存在很大的缺点遥

无法满足终端系统的CNN计算要求遥FPGA具有强大的

叶电子技术应用曳2021年第47卷第2期要

81

重的遥传统的卷积神经网络结构如图1所示袁卷积神经

网络是直接将准备识别的原始图像作为输入袁然后依次

通过多个隐藏层连接到各层袁得到识别结果遥

图1卷积神经网络典型结构

1.2CNN的结构框架

MobileNet

MobileNet

建轻型

使

CNN

并促

FPGA

构袁如

的部

2所

袁本

使

9

层和

修改

3个

池化层遥

图2卷积神经网络结构

1.3卷积模块的设计

在卷积神经网络中袁卷积运算占据了大部分计算量遥

传统的卷积分为两个步骤袁即每个卷积核与每张特征图

DK

进行按

核的尺寸

鄢DK鄢

袁M

M

N

袁DF

后相

别是

加袁此时的计算量为DF鄢DF鄢

输入

输入

数和

图的

出通

寸袁

DK

采用的卷积方式不同于传统卷积袁首先按照输入通道进

行按位相乘袁得到的结果通道数是没有变化的袁接下来

使用1鄢1的卷积核再进行计算袁以改变通道数遥这种方

DF

的计算量为DK鄢DK鄢M鄢DF鄢DF+1鄢1鄢M鄢N鄢

2

积方

DF

传统

1

项表示的是卷积核为3时的计算量袁第

积减

1

的计

8倍

多的

量袁当

计算

DK

=3

袁计

袁这

量的大

种卷

幅度减少更有利于部署在资源有限的FPGA端遥运算一

82要

个卷积层需要6个循环嵌套来实现袁循环顺序按照输出

通道>输入通道>高度>宽度>卷积内核元素依次来排列

计算遥对于每一卷积层来说袁最外面的循环按照顺序遍

历所有像素遥上述循环结构的优化实现可以使用循环展

开袁循环拆分以及循环合并的指令方法袁以设计加速器

的IP核遥

1.4资源占用优化

在训练了卷积神经网络之后袁参数数据是一个32位

浮点数遥相关实验已经证实袁精度降低一定程度对CNN

识别精度的影响非常微弱

[6]

试不同量化位数后袁在保证了

因此

度的

袁本

情况

文设

计中

选择

输入

过尝

图像数据和权重数据使用9位定点数遥这种设计大大降

低了FPGA资源的利用率袁并提高了网络运行速度遥

卷积神经网络的计算成本主要有卷积层的大量乘

法运算袁在FPGA中通常使用DSP资源进行乘法运算袁

而通常不足的DSP资源会成为卷积神经网络部署在

FPGA

替使用

DSP

的瓶颈

资源

BOOTH

传统乘

实现

在Vivado

的乘法

HLS

器可

是以十六位二进制带符号的补码表示袁原码乘法器的移

位相加方法并不能直接推广用于补码的乘法运算中遥普

通的移位相加运算量比较大袁乘数的每一位都产生部

分积袁乘数中值为1的位数决定着累加的次数遥BOOTH

算法的思想是将乘数近似为一个较大的整数值袁利用这

个整数值与被乘数相乘的结果减去这个整数值的补数

与被乘数相乘的结果袁对于具有连续的1和0的乘数来

说产

(1)

生的

分积较

数X与

Y

步骤

符号

果也是补码遥

码袁运算结

值为

(2)

0遥

初始部分积为0袁乘数Y末尾添加附加位袁初始

X再

(3)

右移

Y

10

两位

则部

院若

分积

是01

减被

分积

X再

位袁若是00以及11则只进行右移一位操作遥

2基

(4)

FPGA

加n+1

(n

表示

器系统

数据

设计

数值位数)袁右移n次遥

2.1卷积神经网络层融合策略

卷积层之间的运算有两种实现模式袁分为层串行模

式和层并行模式

[7]

器时袁选择了高度的

设计

实现

度低

FPGA

的层

CNN

行模

加速

式遥

在层串行模式中袁FPGA中的所有PE单元都只用于

实现卷积神经网络中一层的功能遥并且通过重复调用存

在的PE单元袁即使用时分复用PE单元的策略来实现

整个神经网络的运算

[8]

类似性原理袁因此考虑由

实现

卷积

神经

行模

单层

可行的遥并且袁在这种操作模式下袁从DDR中读取数据

传输给PE单元袁PE单元计算得到结果后将其写回到

DDR袁数据控制比较简单遥然而袁对于中间数据的存储袁

层串行模式是通过AXI总线协议将每一层的中间运算

结果都再传输到外部存储器DDR中袁因此这种方法对

IO带宽的要求非常高

[9]

为了增大吞吐量并解决因带宽瓶颈而造成的传输

时间过长袁可以减少每一层的数据访问以及存储空间袁

以实现最大程度的数据和模块复用遥因此袁本文将每三

CNN结构减少为5层袁这将节省一部分传输步骤遥此操

层合并为一组袁然后将结果输出到DDR袁从而将12层

作将多层融合在一起而形成局部组合的方法袁将从

在片上BRAM存储器中遥

DRAM接收的输入数据和操作的中间结果缓存都存储

2.2缓存结构

在带宽瓶颈的影响下袁整个硬件平台的加速性能主

要受到数据的访存效率限制遥为了有效控制数据流的访

图4加速器系统的整体设计

存将使用缓冲技术袁以增加带宽利用率

[10]

缓冲方式是使用两个数据存储器袁先将数据存储在第一

遥乒乓操作的

和像素数据传输到运算操作逻辑单元遥在完成整个卷积

神经网络的计算后袁输出数据通过AXI总线通过输出缓

冲区传输到DDR存储器袁并输出最终结果遥

个数据缓存中袁当第一个数据缓存存满时袁数据将转换

到第二个数据缓存中存储袁并在相同时刻读取第一个数

据缓存中的数据遥这种方式使得单通道的数据传输有效

地变化为双通道的数据流传输袁数据流经过缓冲后袁不

运算时间重叠袁以抵消大部分的时间

[11]

断地传递到数据处理模块袁这将使数据传输时间与数据

为了提高加速器系统的吞吐效率袁在片内的输入缓

3基于FPGA的加速器系统设计

3.1实验环境

DevelopmentBoard对本文目标检测定位算法进行加速遥

片内由ARM处理器与可重构FPGA构成袁片上资源主

要由432个BRAM和360个DSP组成遥CPU采用Intel

Corei52500K处理器袁GPU是NVIDIAUeForceUTX960遥

计套件VivadoIDE和VivadoHLS遥

流程袁加速器系统采用高级综合方式来进行优化设计

[12]

传统的FPGA设计流程复杂且繁琐袁为了简化开发

实验采用XilinxZynqUltraScale+MPSoCZU3EGA484

存设置了图像输入缓存和权值输入缓存袁以及结果输出

缓存遥输入缓存的作用是从外部存储器DDR中载入所

需数据以及所需参数袁输出缓存的作用是将存储运算结

果输出至外部存储器DDR中或者是再应用于计算单元

中遥缓存结构根据DMA的方式来进行数据交互遥本文的

输入图像尧权值以及输出的计算结果都采用如图3所示

的乒乓缓冲方式遥两个数据缓冲模块通过二选一复用器

相互配合使用袁使数据可以没有停顿地依次加载到计算

单元中袁计算单元可以时时刻刻处于计算状态袁以此充

分利用了有限的计算资源遥

所用到的软件开发工具为赛灵思公司开发的Vivado设

首先采用VivadoHLS开发工具将CNN计算过程的高级

IP核输出遥VivadoHLS工具具体的设计流程如图5所

编程语言C++转化为硬件描述语言袁再封装为Vivado的

示遥然后利用VivadoIDE开发工具袁导入封装好的CNN

运算IP核尧主控单元zynq_ultra_ps尧时钟单元以及AXI

传输模块遥通过综合尧设定约束尧布局布线来

实现完成整个加速器系统的设计遥

图3乒乓缓存数据流

2.3加速器整体架构

加速器的总体设计如图4所示袁由PS和PL组成遥

其中PS主要负责图像数据预处理袁权重数据预处理和

特征定位的任务袁而PL负责整个CNN计算部分遥加速

器系统通过AXI总线将CPU和外部存储器DDR中的卷

积神经网络参数权重袁以及要识别的输入图像像素数据

传递给PL部分遥当操作控制指令传递到PL端时袁PL端

启动系统主程序袁并通过输入缓冲区的乒乓操作将参数

图5VivadoHLS工具设计流程

叶电子技术应用曳2021年第47卷第2期要

83

3.2实验环境

表1列出了默认乘法的FPGA的资源使用情况袁

表2列出了部分乘法用BOOTH算法代替的资源使用

情况袁由于开发板的LUT资源使用率已经很高袁因此

部分乘法还是采用了DSP资源遥BRAM用于图像数据尧

网络权重及输出数据的缓存袁DSP以及LUT用于卷积模

块的乘加运算袁该设计高效地利用了FPGA的内部资源遥

表1默认乘法FPGA内部资源的利用率

类目占资源数总资源数使用率/%

BRAM

DSP32936091

LUT

89

FF

43

386

46

666

458141

70

432

560

120

62

33

表2BOOTH乘法FPGA内部资源的利用率

类目占资源数总资源数使用率/%

BRAM

DSP26574

LUT

FF

65

386

360

49

739

866141

70

432

560

89

120

93

35

CPU

表3中显示了将FPGA中CNN的性能与IntelCorei5

果遥基

NVIDIA

FPGA优

UeForce

化设计

UTX

的卷积

960

神经

UPU

网络

所需的时间比CPU要少得多袁相当于GPU的速度遥GPU

功耗是本文设计的30倍以上遥

表3不同硬件平台的性能评估

平台

时间/ms

CPU

功耗/W

286.9

28

55.3

GPUFPGA

130

62.5

3.9

4结论

本文提出了一种基于FPGA有限资源的卷积神经网

络加速器遥利用BOOTH算法实现乘法袁有效降低了DSP资

源占用量遥通过流水线结构和卷积运算的并行性提高了

卷积运算的速度遥网络加速器的内部结构在资源有限的

开发板上实现12层CNN网络袁并将其与CPU和GPU

进行比较遥实验结果表明袁嵌入式FPGA的功耗和性能

具有很大的优势袁更适合于移动端的部署遥

参考文献

[1]YU

today

K

and

JIA

tomorrow[J].Journal

L袁CHFNY袁

ofComputer

learning

Research

院yesterday

and

[2]

Development袁2013袁50(9)院1799-1804.

object

FUKAGAI

detection

T袁MAEDA

neuralnetwork

K袁TANABE

with

S

GPU[C].Proceedings

袁-upof

the

LosAlamitos

25thIEEEInternationalConferenceonImageProcessing.

of

[3]吴艳霞袁梁

IEEE

袁刘颖

Computer

袁等.深度

Society

学习

Press

FPGA

袁2018

加速

301-305.

的进展

84要

与趋势[J].计算机学报袁2019(11)院2461-2480.

[4]HOWARD

cientconvolutional

AG袁ZHU

neural

M袁CHEN

networks

B袁

for

et

mobile

vision

net院

appli-

effi-

[5]

cations[J].arXiv

Nielsen

USA院Determination

袁Michael

preprint

arXiv

Press袁2015.

networks

院1704,04861

anddeep

袁2017.

learning[M].

[6]QIU

fpga

J

platform

袁WANG

for

J袁

convolutional

YAOS袁

neuralnetwork[C].Proceedings

deeperwithembedded

of

Field-Programmable

the2016ACM/SIGDA

International

York

Symposium

院ACM袁

on

26-35.

2016院

[7]ZHANG

FPGA

ceedings

accelerator

J袁ing

forconvolutional

theperformance

neural

of

network[C].Pro-

OpenCL-based

25-34.

onField-Programmable

ofthe2017ACM/SIGDA

International

York院ACM

Symposium

袁2017院

[8]t院Anfpga-acceleratedembedded

[9]

Federal

convolutional

ZHANG

Institute

neural

ofTechnology

network[D].Master

Zurich袁2016.

ETH-Zurich院Swiss

accelerator

C袁LIP袁SUNGY袁et

works[C].Proceedings

designfor

SymposiumonField-Programmable

of

deep

zingFPGA-based

theACM/SIGDA

convolutional

International

neuralnet-

ACMPress袁2015院161-170.

k院

[10]LIU

based

S

segmentation

L袁FANHX

with

袁NIU

deeply

XY袁

customized

zing

convolutional

CNN-

and

Transactions

deconvolutional

2018袁11(3)院

on

Article

Reconfigurable

architectures

No.19.

Technology

onFPGA[J].ACM

andSystems袁

[11]SHEN

accelerator

YM

transfer[C].Proceedings

with

袁FERDMAN

flexiblebuffering

M袁MILDER

tominimize

:

off-Chip

aCNN

tionalSymposiumonField-Programmable

ofthe25thIEEE

Custom

Annual

Computing

Interna-

[12]GUO

2017院

Alamitos院IEEEComputerSocietyPress袁

design

K

93-100.

Y袁SUILZ袁QIU

IEEETransactions

flowformapping

onComputer-Aided

CNN

JT袁et

onto

-Eye

embedded

Designof

FPGA[J].

acomplete

CircuitsandSystems袁2018袁37(1)院35-47.

Integrated

(收稿日期院2020-08-21)

作者简介院

王婷(1995-)袁女袁硕士研究生袁主要研究方向院集成电

路设计遥

陈斌岳(1991-)袁男袁硕士研究生袁主要研究方向院集成

电路设计遥

张福海(1963-)袁男袁副教授袁主要研究方向院集成电路

设计遥

2024年5月15日发(作者:綦正谊)

基于FPGA的卷积神经网络并行加速器设计

(南开大学电子信息与光学工程学院袁天津300350)

王婷袁陈斌岳袁张福海

摘要院近年来袁卷积神经网络在许多领域中发挥着越来越重要的作用袁然而功耗和速度是限制其应用的主要因素遥

为了克服其限制因素,设计一种基于FPGA平台的卷积神经网络并行加速器袁以Ultra96-V2为实验开发平台袁而且

卷积神经网络计算IP核的设计实现采用了高级设计综合工具袁使用Vivado开发工具完成了基于FPGA的卷积神经

网络加速器系统设计实现遥通过对GPU和CPU识别率的对比实验袁基于FPGA优化设计的卷积神经网络处理一张

图片的时间比CPU要少得多袁相比GPU功耗减少30倍以上袁显示了基于FPGA加速器设计的性能和功耗优势袁验

证了该方法的有效性遥

关键词院并行计算曰卷积神经网络曰加速器曰流水线

中图分类号院TN402文献标识码院ADOI院10.16157/.0258-7998.200858

中文引用格式院王婷袁陈斌岳袁张福海.基于FPGA的卷积神经网络并行加速器设计[J].电子技术应用袁2021袁47(2)院

81-84.

英文引用格式院WangTing袁ChenBinyue袁elacceleratordesignforconvolutionalneuralnetworksbasedon

FPGA[J].ApplicationofElectronicTechnique袁2021袁47(2)院81-84.

ParallelacceleratordesignforconvolutionalneuralnetworksbasedonFPGA

(CollegeofElectronicInformationandOpticalEngineering袁NankaiUniversity袁Tianjin300350袁China)

Abstract院Inrecentyears,convolur,powercon鄄

rtoovercomeitslimitations,aconvolutionalneuralnetwork

96-v2isusedastheexperimentaldevelopmentplatform,andthede鄄

signandimplementationofconvolutionaignand

implementationofconvolutionalneuralnetworkacceleratorsystembasedonFPGAiscompletedbyusingvivadodevelopmenttools.

BycomparingtherecognitionrateofGPUandCPU,theconvolutionalneuralnetworkbasedonFPGAoptimizeddesigntakesmuch

lesstimetoprocessapicturethanCPU,stheperfor鄄

manceandpowerconsumptionadvantagesofFPGAacceleratordesign,andverifiestheeffectivenessofthismethod.

Keywords院parallelcomputing曰convolutionalneuralnetwork曰accelerator曰pipeline

WangTing袁ChenBinyue袁ZhangFuhai

0引言

随着人工智能的快速发展袁卷积神经网络越来越受

到人们的关注遥由于它的高适应性和出色的识别能力袁

它已被广泛应用于分类和识别尧目标检测尧目标跟踪等

并且通用CPU不再能够满足计算需求遥目前袁主要解决

领域

[1]

遥与传统算法相比袁CNN的计算复杂度要高得多袁

已经研究了使用FPGA实现CNN加速的方法

[3]

遥本文参

考了Google提出的轻量级网络MobileNet结构

[4]

袁并通过

并行处理和流水线结构在FPGA上设计了高速CNN系

统袁并将其与CPU和GPU的实现进行了比较遥

1卷积神经网络加速器的设计研究

1.1卷积神经网络的介绍

在深度学习领域中袁卷积神经网络占有着非常重要

的地位袁它的图像识别准确率接近甚至高于人类的识别

水平遥卷积神经网络是同时具有层次结构性和局部连通

性的人工神经网络

[5]

遥卷积神经网络的结构都是类似

的袁它们采用前向网络模型结构袁节点使用神经元来实

现分层连接遥并且袁相邻层之间的节点是在局部区域内

相连接袁同一层中的一些神经元节点之间是共享连接权

方案是使用GPU进行CNN计算遥尽管GPU在并行计算

卷积神经网络推理过程的实现占用空间大袁计算能耗大

[2]

并行处理功能袁灵活的可配置功能以及超低功耗袁使其

成为CNN实现平台的理想选择遥FPGA的可重配置特性

适合于变化的神经网络网络结构遥因此袁许多研究人员

中具有自然优势袁但在成本和功耗方面存在很大的缺点遥

无法满足终端系统的CNN计算要求遥FPGA具有强大的

叶电子技术应用曳2021年第47卷第2期要

81

重的遥传统的卷积神经网络结构如图1所示袁卷积神经

网络是直接将准备识别的原始图像作为输入袁然后依次

通过多个隐藏层连接到各层袁得到识别结果遥

图1卷积神经网络典型结构

1.2CNN的结构框架

MobileNet

MobileNet

建轻型

使

CNN

并促

FPGA

构袁如

的部

2所

袁本

使

9

层和

修改

3个

池化层遥

图2卷积神经网络结构

1.3卷积模块的设计

在卷积神经网络中袁卷积运算占据了大部分计算量遥

传统的卷积分为两个步骤袁即每个卷积核与每张特征图

DK

进行按

核的尺寸

鄢DK鄢

袁M

M

N

袁DF

后相

别是

加袁此时的计算量为DF鄢DF鄢

输入

输入

数和

图的

出通

寸袁

DK

采用的卷积方式不同于传统卷积袁首先按照输入通道进

行按位相乘袁得到的结果通道数是没有变化的袁接下来

使用1鄢1的卷积核再进行计算袁以改变通道数遥这种方

DF

的计算量为DK鄢DK鄢M鄢DF鄢DF+1鄢1鄢M鄢N鄢

2

积方

DF

传统

1

项表示的是卷积核为3时的计算量袁第

积减

1

的计

8倍

多的

量袁当

计算

DK

=3

袁计

袁这

量的大

种卷

幅度减少更有利于部署在资源有限的FPGA端遥运算一

82要

个卷积层需要6个循环嵌套来实现袁循环顺序按照输出

通道>输入通道>高度>宽度>卷积内核元素依次来排列

计算遥对于每一卷积层来说袁最外面的循环按照顺序遍

历所有像素遥上述循环结构的优化实现可以使用循环展

开袁循环拆分以及循环合并的指令方法袁以设计加速器

的IP核遥

1.4资源占用优化

在训练了卷积神经网络之后袁参数数据是一个32位

浮点数遥相关实验已经证实袁精度降低一定程度对CNN

识别精度的影响非常微弱

[6]

试不同量化位数后袁在保证了

因此

度的

袁本

情况

文设

计中

选择

输入

过尝

图像数据和权重数据使用9位定点数遥这种设计大大降

低了FPGA资源的利用率袁并提高了网络运行速度遥

卷积神经网络的计算成本主要有卷积层的大量乘

法运算袁在FPGA中通常使用DSP资源进行乘法运算袁

而通常不足的DSP资源会成为卷积神经网络部署在

FPGA

替使用

DSP

的瓶颈

资源

BOOTH

传统乘

实现

在Vivado

的乘法

HLS

器可

是以十六位二进制带符号的补码表示袁原码乘法器的移

位相加方法并不能直接推广用于补码的乘法运算中遥普

通的移位相加运算量比较大袁乘数的每一位都产生部

分积袁乘数中值为1的位数决定着累加的次数遥BOOTH

算法的思想是将乘数近似为一个较大的整数值袁利用这

个整数值与被乘数相乘的结果减去这个整数值的补数

与被乘数相乘的结果袁对于具有连续的1和0的乘数来

说产

(1)

生的

分积较

数X与

Y

步骤

符号

果也是补码遥

码袁运算结

值为

(2)

0遥

初始部分积为0袁乘数Y末尾添加附加位袁初始

X再

(3)

右移

Y

10

两位

则部

院若

分积

是01

减被

分积

X再

位袁若是00以及11则只进行右移一位操作遥

2基

(4)

FPGA

加n+1

(n

表示

器系统

数据

设计

数值位数)袁右移n次遥

2.1卷积神经网络层融合策略

卷积层之间的运算有两种实现模式袁分为层串行模

式和层并行模式

[7]

器时袁选择了高度的

设计

实现

度低

FPGA

的层

CNN

行模

加速

式遥

在层串行模式中袁FPGA中的所有PE单元都只用于

实现卷积神经网络中一层的功能遥并且通过重复调用存

在的PE单元袁即使用时分复用PE单元的策略来实现

整个神经网络的运算

[8]

类似性原理袁因此考虑由

实现

卷积

神经

行模

单层

可行的遥并且袁在这种操作模式下袁从DDR中读取数据

传输给PE单元袁PE单元计算得到结果后将其写回到

DDR袁数据控制比较简单遥然而袁对于中间数据的存储袁

层串行模式是通过AXI总线协议将每一层的中间运算

结果都再传输到外部存储器DDR中袁因此这种方法对

IO带宽的要求非常高

[9]

为了增大吞吐量并解决因带宽瓶颈而造成的传输

时间过长袁可以减少每一层的数据访问以及存储空间袁

以实现最大程度的数据和模块复用遥因此袁本文将每三

CNN结构减少为5层袁这将节省一部分传输步骤遥此操

层合并为一组袁然后将结果输出到DDR袁从而将12层

作将多层融合在一起而形成局部组合的方法袁将从

在片上BRAM存储器中遥

DRAM接收的输入数据和操作的中间结果缓存都存储

2.2缓存结构

在带宽瓶颈的影响下袁整个硬件平台的加速性能主

要受到数据的访存效率限制遥为了有效控制数据流的访

图4加速器系统的整体设计

存将使用缓冲技术袁以增加带宽利用率

[10]

缓冲方式是使用两个数据存储器袁先将数据存储在第一

遥乒乓操作的

和像素数据传输到运算操作逻辑单元遥在完成整个卷积

神经网络的计算后袁输出数据通过AXI总线通过输出缓

冲区传输到DDR存储器袁并输出最终结果遥

个数据缓存中袁当第一个数据缓存存满时袁数据将转换

到第二个数据缓存中存储袁并在相同时刻读取第一个数

据缓存中的数据遥这种方式使得单通道的数据传输有效

地变化为双通道的数据流传输袁数据流经过缓冲后袁不

运算时间重叠袁以抵消大部分的时间

[11]

断地传递到数据处理模块袁这将使数据传输时间与数据

为了提高加速器系统的吞吐效率袁在片内的输入缓

3基于FPGA的加速器系统设计

3.1实验环境

DevelopmentBoard对本文目标检测定位算法进行加速遥

片内由ARM处理器与可重构FPGA构成袁片上资源主

要由432个BRAM和360个DSP组成遥CPU采用Intel

Corei52500K处理器袁GPU是NVIDIAUeForceUTX960遥

计套件VivadoIDE和VivadoHLS遥

流程袁加速器系统采用高级综合方式来进行优化设计

[12]

传统的FPGA设计流程复杂且繁琐袁为了简化开发

实验采用XilinxZynqUltraScale+MPSoCZU3EGA484

存设置了图像输入缓存和权值输入缓存袁以及结果输出

缓存遥输入缓存的作用是从外部存储器DDR中载入所

需数据以及所需参数袁输出缓存的作用是将存储运算结

果输出至外部存储器DDR中或者是再应用于计算单元

中遥缓存结构根据DMA的方式来进行数据交互遥本文的

输入图像尧权值以及输出的计算结果都采用如图3所示

的乒乓缓冲方式遥两个数据缓冲模块通过二选一复用器

相互配合使用袁使数据可以没有停顿地依次加载到计算

单元中袁计算单元可以时时刻刻处于计算状态袁以此充

分利用了有限的计算资源遥

所用到的软件开发工具为赛灵思公司开发的Vivado设

首先采用VivadoHLS开发工具将CNN计算过程的高级

IP核输出遥VivadoHLS工具具体的设计流程如图5所

编程语言C++转化为硬件描述语言袁再封装为Vivado的

示遥然后利用VivadoIDE开发工具袁导入封装好的CNN

运算IP核尧主控单元zynq_ultra_ps尧时钟单元以及AXI

传输模块遥通过综合尧设定约束尧布局布线来

实现完成整个加速器系统的设计遥

图3乒乓缓存数据流

2.3加速器整体架构

加速器的总体设计如图4所示袁由PS和PL组成遥

其中PS主要负责图像数据预处理袁权重数据预处理和

特征定位的任务袁而PL负责整个CNN计算部分遥加速

器系统通过AXI总线将CPU和外部存储器DDR中的卷

积神经网络参数权重袁以及要识别的输入图像像素数据

传递给PL部分遥当操作控制指令传递到PL端时袁PL端

启动系统主程序袁并通过输入缓冲区的乒乓操作将参数

图5VivadoHLS工具设计流程

叶电子技术应用曳2021年第47卷第2期要

83

3.2实验环境

表1列出了默认乘法的FPGA的资源使用情况袁

表2列出了部分乘法用BOOTH算法代替的资源使用

情况袁由于开发板的LUT资源使用率已经很高袁因此

部分乘法还是采用了DSP资源遥BRAM用于图像数据尧

网络权重及输出数据的缓存袁DSP以及LUT用于卷积模

块的乘加运算袁该设计高效地利用了FPGA的内部资源遥

表1默认乘法FPGA内部资源的利用率

类目占资源数总资源数使用率/%

BRAM

DSP32936091

LUT

89

FF

43

386

46

666

458141

70

432

560

120

62

33

表2BOOTH乘法FPGA内部资源的利用率

类目占资源数总资源数使用率/%

BRAM

DSP26574

LUT

FF

65

386

360

49

739

866141

70

432

560

89

120

93

35

CPU

表3中显示了将FPGA中CNN的性能与IntelCorei5

果遥基

NVIDIA

FPGA优

UeForce

化设计

UTX

的卷积

960

神经

UPU

网络

所需的时间比CPU要少得多袁相当于GPU的速度遥GPU

功耗是本文设计的30倍以上遥

表3不同硬件平台的性能评估

平台

时间/ms

CPU

功耗/W

286.9

28

55.3

GPUFPGA

130

62.5

3.9

4结论

本文提出了一种基于FPGA有限资源的卷积神经网

络加速器遥利用BOOTH算法实现乘法袁有效降低了DSP资

源占用量遥通过流水线结构和卷积运算的并行性提高了

卷积运算的速度遥网络加速器的内部结构在资源有限的

开发板上实现12层CNN网络袁并将其与CPU和GPU

进行比较遥实验结果表明袁嵌入式FPGA的功耗和性能

具有很大的优势袁更适合于移动端的部署遥

参考文献

[1]YU

today

K

and

JIA

tomorrow[J].Journal

L袁CHFNY袁

ofComputer

learning

Research

院yesterday

and

[2]

Development袁2013袁50(9)院1799-1804.

object

FUKAGAI

detection

T袁MAEDA

neuralnetwork

K袁TANABE

with

S

GPU[C].Proceedings

袁-upof

the

LosAlamitos

25thIEEEInternationalConferenceonImageProcessing.

of

[3]吴艳霞袁梁

IEEE

袁刘颖

Computer

袁等.深度

Society

学习

Press

FPGA

袁2018

加速

301-305.

的进展

84要

与趋势[J].计算机学报袁2019(11)院2461-2480.

[4]HOWARD

cientconvolutional

AG袁ZHU

neural

M袁CHEN

networks

B袁

for

et

mobile

vision

net院

appli-

effi-

[5]

cations[J].arXiv

Nielsen

USA院Determination

袁Michael

preprint

arXiv

Press袁2015.

networks

院1704,04861

anddeep

袁2017.

learning[M].

[6]QIU

fpga

J

platform

袁WANG

for

J袁

convolutional

YAOS袁

neuralnetwork[C].Proceedings

deeperwithembedded

of

Field-Programmable

the2016ACM/SIGDA

International

York

Symposium

院ACM袁

on

26-35.

2016院

[7]ZHANG

FPGA

ceedings

accelerator

J袁ing

forconvolutional

theperformance

neural

of

network[C].Pro-

OpenCL-based

25-34.

onField-Programmable

ofthe2017ACM/SIGDA

International

York院ACM

Symposium

袁2017院

[8]t院Anfpga-acceleratedembedded

[9]

Federal

convolutional

ZHANG

Institute

neural

ofTechnology

network[D].Master

Zurich袁2016.

ETH-Zurich院Swiss

accelerator

C袁LIP袁SUNGY袁et

works[C].Proceedings

designfor

SymposiumonField-Programmable

of

deep

zingFPGA-based

theACM/SIGDA

convolutional

International

neuralnet-

ACMPress袁2015院161-170.

k院

[10]LIU

based

S

segmentation

L袁FANHX

with

袁NIU

deeply

XY袁

customized

zing

convolutional

CNN-

and

Transactions

deconvolutional

2018袁11(3)院

on

Article

Reconfigurable

architectures

No.19.

Technology

onFPGA[J].ACM

andSystems袁

[11]SHEN

accelerator

YM

transfer[C].Proceedings

with

袁FERDMAN

flexiblebuffering

M袁MILDER

tominimize

:

off-Chip

aCNN

tionalSymposiumonField-Programmable

ofthe25thIEEE

Custom

Annual

Computing

Interna-

[12]GUO

2017院

Alamitos院IEEEComputerSocietyPress袁

design

K

93-100.

Y袁SUILZ袁QIU

IEEETransactions

flowformapping

onComputer-Aided

CNN

JT袁et

onto

-Eye

embedded

Designof

FPGA[J].

acomplete

CircuitsandSystems袁2018袁37(1)院35-47.

Integrated

(收稿日期院2020-08-21)

作者简介院

王婷(1995-)袁女袁硕士研究生袁主要研究方向院集成电

路设计遥

陈斌岳(1991-)袁男袁硕士研究生袁主要研究方向院集成

电路设计遥

张福海(1963-)袁男袁副教授袁主要研究方向院集成电路

设计遥

发布评论

评论列表 (0)

  1. 暂无评论