admin管理员组

文章数量:1530518

2024年5月17日发(作者:)

二值VGG卷积神经网络加速器优化设计

(上海工程技术大学电子电气工程学院袁上海201600)

张旭欣袁张嘉袁李新增袁金婕

摘要院基于FPGA的二值卷积神经网络加速器研究大多是针对小尺度的图像输入袁而实际应用主要以YOLO尧VGG

等大尺度的卷积神经网络作为骨干网络遥通过从网络拓扑尧流水线等层面对卷积神经网络硬件进行优化设计袁从而

解决逻辑资源以及性能瓶颈袁实现输入尺度更大尧网络层次更深的二值VGG神经网络加速器遥采用CIFAR-10数据

219.9FPS的识别速度袁验证了优化方法的有效性遥

集对基于FPGA的VGG卷积神经网络加速器优化设计进行验证袁实验结果表明系统实现了81%的识别准确率以及

关键词院优化设计曰二值卷积神经网络曰FPGA加速器

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

中文引用格式院张旭欣袁张嘉袁李新增袁等.二值VGG卷积神经网络加速器优化设计[J].电子技术应用袁2021袁47(2)院20-23.

英文引用格式院ZhangXuxin袁ZhangJia袁LiXinzeng袁zationdesignofbinaryVGGconvolutionalneuralnetworkaccel-

erator[J].ApplicationofElectronicTechnique袁2021袁47(2)院20-23.

OptimizationdesignofbinaryVGGconvolutionalneuralnetworkaccelerator

(CollegeofElectronicandElectricalEngineering袁ShanghaiUniversityofEngineeringScience袁Shanghai201600袁China)

Abstract院MostoftheexistingresearchesonacceleratorsofbinaryconvolutionalneuralnetworksbasedonFPGAareaimedat

small-scaleimageinput,whiletheapplicationsmainlytakelarge-scaleconvolutionalneuralnetworkssuchasYOLOandVGGas

dwareofconvolutionalneuralnetworkisoptimizedanddesignedfromthetwoaspectsincludingthenet鄄

worktopologyandpipelinestage,soastosolvethebottleneckoflogicresourcesandimprovetheperformanceofthebinaryVGG

-10datasetresizedto224伊224wasusedtoverifytheoptimizeddesignofVGGconvolutionalneural

mentalresultsshowedthatthesystemachieved81%recognitionaccuracyand219.9

FPSrecognitionspeed袁whichverifiedtheeffectivenessoftheoptimizationmethod.

Keywords院optimizationdesign曰binaryconvolutionalneuralnetwork曰FPGAaccelerator

ZhangXuxin袁ZhangJia袁LiXinzeng袁JinJie

0引言

深度卷积神经网络(ConvolutionalNeuralNetwork袁CNN)

已经成为了当前计算机视觉系统中最有前景的图像分

析方法之一遥

近年来袁随着Binary-Net尧Dorefa-Net尧ABC-Net等

[1-3]

低精度量化神经网络的深入研究袁越来越多的研究集中

加速

[4]

遥基于FPGA的低精度量化神经网络实现主要可

现了流水线化袁每个阶段都可以独立处理输入且可以针

拥有更高的吞吐率和更低的延迟以及内存带宽袁但其逻

辑资源等消耗也相当可观遥因此袁现有的基于流架构实

现的二值神经网络加速器研究大多是针对32伊32尺度

鄢基金项目院国家自然科学基金(61701295袁61801286)

MNIST数据集等小尺度的图像输入遥而实际应用中更多

使用如448伊448尺度的YOLO尧224伊224尺度的VGG等

作为骨干网络袁一方面袁大尺度输入的网络结构参数量

往往较大(以VGG为例袁其参数量大约500MB)袁高端

现CNN加速将是资源瓶颈遥即使采用低精度量化策略袁

FPGA有限的片上内存资源仍捉襟见肘遥另一方面袁虽然

各层运算单元可以得到特定优化袁然而由于网络拓扑结

构限制袁往往各层网络很难实现计算周期的匹配袁从而

造成推断性能难以进一步提高遥针对基于流架构的二值

卷积神经网络加速器设计存在的资源与性能的瓶颈袁本

文以224伊224尺度的VGG-11网络加速器设计为例袁重

点研究了大尺度的二值卷积神经网络硬件加速器设计尧

优化及验证袁主要工作如下院

(1)针对大尺度流架构的二值VGG卷积神经网络加

FPGA的片上内存容量也仅32.1Mb左右袁这对FPGA实

于在FPGA硬件中构建定制的加速器结构袁实现CNN的

分为两类:流架构

[5-6]

和层架构

[7-8]

遥其中袁由于流架构实

对CNN逐层设计并优化相应层的加速运算单元袁因此

速器设计存在的资源与性能瓶颈袁提出了网络模型优化

20要

和流

值VGG

(2)

水线

络加速

224伊

224

遥实

验表

度的

FPGA

架构的

实现了81%的准确率袁219.9FPS的识别速度袁相较于同

类型的加速器识别速度最高提升了33倍遥

1二值卷积神经网络加速器

二值卷积神经网络激活与权值均采用符号函数进

行二值化袁如式(1)

w

b

=sign(w)=

+1

所示院

(1)

其中w为单精度浮

-1

w

w

逸0

<0

重袁w

b

为二值权重遥在硬件设计

中若

(1)

逻辑

法运

0表示

算可

-1

简化

袁逻辑

为Xnor

1表示

运算

1袁

PopCount

有院

[6]

累加

r

卷积

因此

算袁如

袁对

(2)

r行c列卷积核大小为(k

c

袁k)的

y

kk

out袁r袁c

=

移移

xnor(w

bb

i=0j=0

i袁j

袁y

r+i袁c+j

)

运算

(2)

过程

卷积

1所

网络的批归一化与符号激活函

(2)

图1批归一化与激活

若结合归一化与符号激活函数即y=sign(BN(x))袁

可得院

+1袁x逸滋-

y=

+着

-1袁x<滋-

+着

(酌>0)(3)

若以逻辑0表示-1袁逻辑1表示1袁则阈值T可转

换为院

T=

1

(ch

in

+滋-

其中x为

2

+着)(4)

前一层卷积层输出袁滋尧滓是批量输入的均值

和方差袁着尧酌尧茁为参数袁ch

in

表示输入通道数遥

PE

综上所述袁二值

加器

)计

院输

(

Processing

Element

激活函数运算袁硬件结构如图2所示遥

卷积层包含了多通道输入与多通道输出遥因此袁单

层计算引擎通常由PE阵列构成袁如图3所示袁计算引

擎从缓冲区读入SIMD通道特征图袁经PE阵列并行计

算得到多个输出到缓冲区遥

基于数据流结构的加速器袁通过层间流控模块袁逐

层将二值卷积计算引擎连接起来袁整体结构如图4所

示袁通过调节各层SIMD与PE参数袁可以实现性能与

图2二值卷积运算单元

图3二值卷积计算引擎

图4数据流架构

逻辑资源的最优化遥

2优化设计

针对二值卷积神经网络加速器存在的资源瓶颈以

及性能瓶颈袁需要从网络拓扑尧流水线运算周期均衡等

多方

参数

(

1

)

网络

(

2)由

构进

期也不同袁因此需要

线

平衡每层的运算周期遥

2.1网络结构优化

原始VGG-11的网络拓扑中的首个全连接Fc1层

参数量显著高于其余各层袁约占网络整体参数量79%遥

由于其参数量过大袁既造成了片上内存资源瓶颈又导致

计算量过大袁与其余各层计算周期严重不均衡袁使流水

线阻塞造成性能瓶颈遥针对上述问题袁对VGG-11网络

结构

降低

(

(

1)

2)

在卷

进行

积层

优化院

Fc1

VGG-11进行二值化袁以有效

之间

源数

卷积层输出特征图从7伊7池化到1伊

1遥

局最大池化层袁将

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

21

优化后的二值VGG-11网络拓扑如表1所示袁添加

全局最大池化层(GlobalMaxPool)后袁Fc1层参数量降低

了约49倍袁同时由于对网络进行了二值化袁整体网络参

数所占内存空间从511.3MB降低到3.66MB袁因而有效

地从网络结构层面降低了内存资源瓶颈遥

表1二值VGG-11网络拓扑

名称输入特征图核输出特征图参数

224伊224

MaxPool

Conv1

Input

224

224伊224

3

33

2

/

3224

224

224

224伊3

1728

/

MaxPool

Conv2

112

112

224

112

64

643

伊2

73728

/

Conv356

伊2

伊112

112伊112

64

64

56

MaxPool

Conv456

112

56

伊128

3

3

56

112

56伊

128

128

56

伊294912

/

Conv5

56

伊56

128

2563

2

3

28

伊2

伊3

28

56

56

伊256

589824

28

伊28

256

512

MaxPool

Conv628

56

28

256

3

28

伊2359296

/

Conv7

28

伊3

2

3

14

28

28

512

2359296

Conv8

14

28

512

28

伊512

2

伊3

14

伊14

512

5123

14

14

14

512

14

伊512

2359296

/

Global

MaxPool14

伊3

2

7

14

7伊

512

512

5122359296

/

Fc1

MaxPool7

14

14

7伊

512

5122

3

3

7

2

Fc2

4096

512

Fc3

4096

512

512

/

7

4096

/

/

4

2097152

/

1040960

2.2流水线优化

基于数据流架构示意图如图5所示袁InitiationInterval

为两个任务间的时间间隔袁Latency为整体任务完成的延

迟遥由于采用数据流架构袁网络加速器的吞吐率可以采

用F

clk

/II

max

来进行估算遥计算延迟最慢的网络层会导致任

务间的时间间隔最大为II

max

袁从而决定了网络的吞吐率遥

图5流水线时序图

根据上述分析可知袁消耗时钟周期数最多的计算引

擎会成为整体性能的瓶颈袁从而会造成其他层资源的浪

费和性能的下降遥因此袁针对流水线优化袁需要针对不同

的计算引擎之间进行整体的计算周期均衡袁尽可能地保

证各层的计算周期相近遥

22要

为了有效提高加速器的性能与资源利用率袁本文设

SIMD

了不

结构参

A

PE

袁表

袁以

袁B尧

2

C

证不同的PE和

尧D

E依

算阵

PE以及SIMD袁E是根据调整得到的最好的结果遥

表2PE阵列配置

网络层

DE

Conv1

P=8

ABC

S=3

P=32

S=3

P=64

S=3

P=64

S=3

Conv2

S=32

P=8

S=3

P=16

P=16

S=32

P=16

S=64

P=32

S=64

P=64

S=64

Conv3

S=64

P=64

S=64

Conv4

P=16

S=32

P=8P=16

S=32

P=16

S=64

P=32

S=32

P=32

S=32

P=32

S=64

P=64

S=64

P=128

S=64

Conv5

S=32

P=8P=16

P=16

S=32

P=32

S=64

P=64

Conv6

S=32

P=16P=32

S=32

P=32

S=64

P=64P=128

S=64

Conv7

P=4

S=64

P=32

S=64

Conv8

S=32

P=4

S=32

P=8

S

P=8P=16

S=64

P=8

=64

P=32

S=64

Fc1

S=32

P=1

S=32

P=8

S

P=16

S=64

P=1

=64S=64

P=1

S

P=1

=64

Fc2

P=2

S=4

P=1

P=1

S=4

P=1

S=8S

Fc3

P=1

S=8

P=1

S=4

S=16

P=1

=16

S

S=2

P=1

S=8

S=2

P=1

S=8

S=2

P=1

S=4

P=1

=32

S=8

如表3所示袁根据表2中SIMD及PE参数所对应的

各网络层计算周期袁通过尽可能将各网络层运算周期均

衡调整袁从而可以在相应的资源占用率下实现最大化加

速器推断速率遥

表3运算周期

网络层

Conv1

AD

Conv2

366

B

451584

E

Conv3

366

903168

C

Conv4

366

903168

451584

451584

225792

Conv5

366

903168

451584

451584

225792

Conv6

366

903168

451584

225792

Conv7

366

903168

451584

225792

Conv8

366

903168

451584

225792

Fc1

366

903168

451584

225792

Fc2

2

903168

225792

Fc3

131072

32768

131072

32768

131072

32768

65536

32768

16384

32768

8192

3结果

在Ubuntu16.04操作系统下袁基于Pytorch深度学习框

架训练二值VGG-11卷积神经网络袁实验基于CIFAR-10

数据集验证袁将数据集图像尺寸放大到224伊224作为网

络输入袁数据训练利用NVIDIAQuadroP2000GPU实现加

ZCU102

遥基于

构二值VGG-11

硬件系统实现了

加速器硬

81%

件系

识别

开发

断速率尧资源占用

最终

等如表4所示袁最高实现了219.9FPS

表4资源利用率对比

结构速率/(FPS)

资源

A

BRAM_18K

FPGA

FF

利用率评估/%

B

1855.7029.50

C

44

96

60.14

63.65

30.22

27.50

LUTURAM

100

32.32

30.21100

E

D

219.9

19874.23

93.31

35.69

35.69100

41.74

46.19

64.8

100

100

络加速

(1)

通过实

逐渐

的推

PE

可得

袁但

SIMD

如下

会占用

逻辑资

能提高

之也

以通

(2)

过降低

比较

E

D

逻辑资

袁除Conv1

源占

面积

的缩

外袁其

各层均提高了SIMD和PE数量以及缩减了计算周期袁

然而对比实现结果袁可以发现逻辑资源占用率有了大幅

增长袁而推断速度却并没有得到大幅提升遥这验证了针

对于流水线结构的深度卷积神经网络加速器来说袁计算

周期延迟最大的计算引擎对网络整体性能有较大的影响袁

在设计中对

源袁片上

(3)对

内存

FPGA

层运算单

数量是限制

片上

计算周期进行均衡尤为重要遥

LUT

步提高

尧FF

网络

BRAM

层数

提高推断速度的资源瓶颈遥

与国内外相关基于FPGA的VGG网络加速器实现

进行比较袁如表5所示遥通过优化设计袁实现了相较于其

他VGG加速器最高33倍推断加速袁相比基于层架构的

同类型二值VGG网络加速器

[8]

提高了7倍遥

表5基于FPGA的VGG加速器对比

方案平台时钟/MHz帧速/(FPS)功耗/W

文献[8]

文献[9]

Zynq100

文献[10]

Stratix-V

Ultrascale+

120

31.8

文献[11]

150

3.80

22

本文

Virtex-7

ZynqXC7Z045

GSD8

方案

ZynqUltrascale+

VX690t150

4.45

19.10

9.63

100219.9

6.58

4.46

-

4结论

本文通过从网络结构尧流水线均衡等多方面优化设

计袁实现了输入尺度更大的二值VGG-11卷积神经网络

加速器袁并验证了优化方法的有效性袁为更大尺度尧更深

层次的卷积神经网络加速器提供了设计优化思路遥

参考文献

[1]COURBARIAUX

neuralnetworks院training

M袁HUBARA

deep

I

neural

袁SOUDRY

networks

D袁et

with

zed

weights

and

arXiv

activations

院1602.02830

constrained

袁2016.

to+1or-1[J].arXivpreprint

[2]ZHOU

bitwidth

S袁

convolutional

WUY袁NIZ

neural

袁-net

networkswith

院training

lowbitwidth

low

[3]LIN

gradients[J].arXiv

convolutional

X袁ZHAO

neural

C袁PAN

preprint

network[C].Advances

s

arXiv院1606.06160

accurate

in

binary

袁2016.

InformationProcessingSystems.2017院345-353.

Neural

[4]

Electronics

SIMONST袁

LEE

2019

D

袁8(6)

J.A

review

661.

ofbinarizedneuralnetworks[J].

[5]GUO

neural

P袁MAH袁CHENR袁院afully

Conference

network

on

accelerator[C].2018

ProgrammableLogic

28thInternational

binarized

(FPL).IEEE袁2018

Field

院51-513.

andApplications

[6]UMUROGLU

Finn

inference[C].Proceedings

院aframework

Y袁FRASER

forfast袁

of

scalable

NJ袁GAMBARDELLA

the2017

binarized

ACM/SIGDA

neural

G

network

袁etal.

2017

International

院65-74.

SymposiumonField-ProgrammableGateArrays袁

[7]LIANGS袁YIN

FPGA[J].Neuron

S袁LIUL袁-BNN

Computing袁

2018

binarized

袁275院

neural

1072-

[8]YONEKAWA

1086.

networkon

binarizedconvolutional

H袁NAKAHARA

deepneural

-chip

network

memory

applying

based

normalizationfreetechniqueonanfpga[C].2017IEEE

batch

Workshops(IPDPSW).IEEE

InternationalParallelandDistributed

袁2017院98-105.

ProcessingSymposium

[9]SUDA

optimized

N袁CHANDRAV袁DASIKAG袁hput-

convolutional

OpenCL-based

ACM/SIGDA

neuralnetworks[C].Proceedings

FPGAacceleratorfor

Field-Programmable

of

large-scale

the2016

[10]

Gate

QIU

Arrays

fpga

J

platform

袁WANG

袁2016

International

for

J袁

YAO

16-25.

Symposiumon

convolutional

S袁

neural

deeper

network[C].Proceed-

withembedded

ings

Field-Programmable

ofthe2016ACM/SIGDAInternationalSymposiumon

[11]ZHANGC袁WUD袁SUN

Gate

J袁

Arrays

-efficient

袁2016院26-35.

implementation

Proceedingsofthe

ona

CNN

PowerElectronicsand

2016

deeply

Design

International

pipelinedFPGA

袁2016院326-331.

Symposium

cluster[C].

onLow

作者简介院

(收稿日期院2020-12-15)

张旭欣(1995-)袁男袁硕士袁主要研究方向院深度神经网

络尧FPGA遥

张嘉(1997-)袁男袁硕士袁主要研究方向院深度神经网络尧

图像处理遥

金婕(1978-)袁通信作者袁女袁博士袁副教授袁主要研究方

向院视频编解码尧数字信号处理和VLSI袁E-mail院jinjie_pku@

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

23

本文标签: 加速器神经网络卷积资源