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-)袁男袁副教授袁主要研究方向院集成电路
设计遥