没有合适的资源?快使用搜索试试~ 我知道了~
基于分时重用行卷积查找表的BNN加速器.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 22 浏览量
2022-12-01
09:12:46
上传
评论
收藏 746KB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/87225651/0001-df3531c0fc40b949b84a735abf11e62c_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
14页
基于分时重用行卷积查找表的BNN加速器.docx
资源推荐
资源详情
资源评论
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/release/download_crawler_static/87225651/bg1.jpg)
1. 引言
近年来卷积神经网络(Convolutional Neural Networks,CNNs)在目标识别、语音识别、
模式识别、自动驾驶以及医学等领域中的应用变得越来越广泛,并且在自动驾驶和医学诊
断这些比较关键的应用领域中,神经网络的识别精度显得尤为重要.而更高的精度需要更加
复杂的网络模型,网络的数据量以及计算量也会跟着上升,这也逐渐成了掣肘神经网络发
展的主要因素.例如,在比较经典的神经网络模型中,AlexNet
[1]
需要大约 60M 的参数量以
及 720 M 的浮点运算来处理一张图片,而 VGG-16
[2]
需要 131. 9M 的参数量以及 14.4 G 的
浮点运算.
研究表明,神经网络存在很大的冗余性.为此,Courbariaux 首先在文献[3]中提出对神
经网络中的权重数据进行量化得到二值化权重网络(Binary Weight Network,BWN);随后
又在文献[4]中提出同时将特征图和权重数据量化得到二值化神经网络(Binary Neural
Networks, BNNs).BNN 中 1 bit 的数据可以大幅减少数据存储量和计算量.
为了提升 BNN 的性能,很多工作对 BNN 的训练过程进行了优化.文献通过对网络中
的归一化层和池化层剪枝来跳过部分不必要的冗余计算,但在卷积层中仍存在大量冗余计
算.由于直接二值化处理输入图片会使精度损失严重,目前大多数工作都未对输入图片做二
值化处理,因此需要单独为第一层设计全精度的计算单元,而全精度计算单元所需的计算
资源是二值化计算单元的 9~10 倍.文献[5]将全精度输入图片以数值累加的方式拆分为多通
道的单 bit 输入图片,但是这种处理方式使第一层的输入通道变为原来的几百倍.除此之
外,文献[5]还提出一种±1 填充的方式来避免 0 值填充带来的数据三值化问题(±1、0),但
是这种±1 填充的训练效果没有 0 值填充的训练效果理想.
针对上述提到的几个问题,本文提出一种基于硬件复用的可重构 BNN 硬件加速器,
本文主要工作如下:
(1) 提出一种完全二值化神经网络(Fully Binari-zed Neural Network, FBNN)处理和训练
方案,将训练集和测试集的输入图片都按 bit 进行拆分得到一个 24 通道的二值化数据集,
并利用此数据集训练得到一个完全二值化的卷积神经网络,避免单独为第一层设计全精度
的计算单元;
(2) 提出一种奇偶通道±w(其中 w 表示权重)交叉填充的边缘填充方式,训练过程保持
0 值填充,推导过程使用奇偶通道±w 交替填充,使正向推导过程可以达到与训练过程中 0
值填充相同的效果,在保证精度的前提下不引入第三个数值 0;
(3) 提出一种分时重用的行卷积查找表(Time-sharingReuse Row Convolution LUT,
TRRC-LUT)来跳过卷积层中的冗余计算;预计算制表与查表计算进行乒乓操作,隐藏预处
理周期,提升处理速度;并在上下行卷积计算过程中重用行卷积查找表(Row Convolution
LUT,RC-LUT),来减少预处理单元的计算量.
![](https://csdnimg.cn/release/download_crawler_static/87225651/bg2.jpg)
2. 卷积神经网络基础
2.1 BNN 基础
表 1 给出了本文所用到的参数信息,图 1 是 CNN 和 BNN 的架构示意图,两者都包
括 CONV/FC 层,激活(Activation)层和池化(Pool)层,BNN 增加了批量归一化层(Batch
Normalization, BN),并且其中的激活层为二值化激活层(Binalize, BIN).
表 1 网络中的参数信息
(
N
in
,
N
out
)
层输入输出通道数
(
H
,
W
)
特征图长度和宽度
R
out
输出特征图尺寸
K
,
S
卷积核尺寸,卷积核滑动步长
K
p
池化尺寸,本文
Kp
=2
OP
K
,
OP
R
,
OP
C
OP
K
和
OP
R
表示一个卷积窗口和一行卷积所需的操作数,
OP
C
表示将一个卷积窗口中所有行卷积结果累
加所需的操作数.
下载: 导出 CSV
| 显示表格
图 1 典型 CNN/BNN 模型架构
下载: 全尺寸图片 幻灯片
CONV/FC 层:卷积层中,通过一组 N
in
个 K×K 的卷积核在 N
in
张输入特征图(Input
Feature maps, Ifmaps)上以 S 的步长进行滑动,计算得到一张输出特征图(Output Feature
maps,Ofmaps).通过 N
out
组权重数据计算得到 N
out
张输出特征图,公式(1)是第 m 张输出特
![](https://csdnimg.cn/release/download_crawler_static/87225651/bg3.jpg)
征图中第 p 行,第 q 列的计算过程.因为硬件设计中,将特征图以及权重中的-1 转换为 0,
因此可以用 XNOR 和 PopCount
[6]
来进行乘累加计算.FC 层可以看成输入输出特征图以及卷
积核的尺寸都是 1×1 的特殊的卷积层.
Xm(p,q)=∑n=1Nin∑i=1K∑j=1Kxnor(Inp+i,q+j,W(n,m)(i,j))X(p,q)m=∑n=1Nin∑i=1K∑j=1Kxnor(Ip+i,q+jn,W(i,j)(n,m))
(1)
BN 层:BN 的计算过程如公式(2)所示,其中的参数 μ, σ, γ 和 β 由训练得到.
xbn=(x−μσ2+ε−−−−−√)×γ+βxbn=(x−μσ2+ε)×γ+β
(2)
BIN 层: 二值化激活函数如公式(3)所示:
yb=sign(xbn)={+1,xbn≥0−1,xbn<0yb=sign(xbn)={+1,xbn≥0−1,xbn<0
(3)
将批量归一化与二值化激活函数结合得到 y
b
=sign(BN(x)), 因为训练得到的 γ≥0,因此
将公式进行整合得到公式(4):
y=⎧⎩⎨+1,x≥μ−βγσ2+ε−−−−−√−1,x<μ−βγσ2+ε−−−−−√y={+1,x≥μ−βγσ2+ε−1,x<μ−βγσ2+ε
(4)
Pool(池化)层: 本文所采用的池化方式是最大值池化(Max Pooling),其函数表达式如公
式(5):
Pm(p,q)=or[ImKp×Kp(p,q)]Pm(p,q)=or[IKp×Kpm(p,q)]
(5)
2.2 相关工作
自从 Courbariaux 在文献[4]中提出 BNN 以来,很多工作基于 FPGA 为 BNN 设计硬件
加速器,并且都取得了非常好的性能.FINN
[6]
首先使用 FPGA 为 BNN 设计硬件加速器,并
且利用数据单比特的特点对各层进行优化,高效利用 FPGA 中的各种资源;FP-BNN
[7]
提出
一种压缩树的方式来对卷积计算中的累加进行优化,极大的提高了资源利用率;LP-BNN
[8]
采用流水线的设计方案,大大提高了 BNN 的推理速度.FBNA
[5]
对输入图片进行二值化处
理,并且用交叉±1 填充的方式消除了 0 值边缘填充带来的数值三值化问题.
L-MPC
[9]
提出一种对 BWN 中的冗余计算的优化方案,但是 L-MPC
[9]
中没有对行卷积
查找表进行重用.并且这种方案没有通过乒乓操作将预计算制表和查表加速计算这两个过程
分开,没有充分利用计算资源以及计算周期.
2.3 研究动因
BNN 正向推导过程中存在的冗余计算,并采用查找表的方式来跳过这些冗余计算,
以减少计算周期和降低加速器功耗.如图 2(a)所示,H 和 W 分别表示特征图的长和宽(输入
特征图的长和宽分别加 2 是因为添加了 Padding).对于每一张输入特征图数据,都会有 N
out
个卷积核来与其进行卷积计算,得到 N
out
张输出特征图的部分卷积结果(Part sum, Psum).其
中每一行的输入数据都与 N
out
个 1×3 的行权重数据进行卷积计算.
剩余13页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/3f07197aad004e4fa57ac5a008eb6aaf_weixin_57147647.jpg!1)
罗伯特之技术屋
- 粉丝: 4050
- 资源: 1万+
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)