文献阅读(64)FPAP

  • 题目:FPAP: A Folded Architecture for Energy-Quality Scalable Convolutional Neural Networks
  • 时间:2019
  • 期刊:TCAS-1
  • 研究机构:南京大学

1 缩写 & 引用

  • FPAP: folded precision adjustable processor
  • FIR: finite impulse response
  • BPE: bit-pair encoding
  • PP: partial product
  • CP: control path
  • AP: arithmetic path
  • PAMAC; precision-adjustable MAC unit

2 abstract & introduction

减少神经网络冗余度的两个方面有:不同网络层采用不同的量化位宽、以及利用稀疏度跳零

  1. 以前的很多工作主要是面向其中的一个,比如说Cambricon-X、SCNN、UNPU、Stripes,这篇论文要将二者结合起来,用折叠的技术解决,有点像位串行计算,还不消耗很多资源
  2. 当然,折叠和位串行会导致处理速度变慢,因此需要优化处理速度,比如说bit-pair encoding,在权重和activation压缩的动态切换
  3. 如果在某些情况下,比如说电量不足了,它还可以舍弃掉一些不重要的计算,以减少功耗
  4. kernel重分配策略来解决负载不平衡的问题

3 CNN中的折叠计算

3.1 折叠的MAC

这里提出了bit-pair编码,或者叫改进的Booth算法
首先把一个数用 4 n 4^n 4n的形式表示
在这里插入图片描述
这样乘加操作就变成了移位、加法,其中V可以取{-2、-1、0、1、2}
在这里插入图片描述
在这里,bit-pair编码的过程叫做“分解”,分解之后会有比特级的稀疏度,可以跳掉0比特的情况,这里他统计了一下Alexnet和VGG16各层分解之后有效的项的次数,发现平均有效次数小于三,可以利用这个稀疏性弥补延时长的问题。

权重和activation相乘,可以分解权重,也可以分解activation,具体分解哪个呢?可以动态决定,每次去计算量最少的那个,可以提前把分解的结果算出来,反正权重和activation都是可以复用的
需要近似计算的时候,只需要算权重比较大的那几项就好,忽略掉不重要的那几项

3.2 折叠的FIR滤波器

常规的滤波器电路是这样:
在这里插入图片描述
但是如果遇到0的情况,需要跳掉怎么办?
这里采用折叠的方法,只用一个MAC结构计算这个滤波器,跳掉零不会消耗时钟周期,

4 FPAP架构设计

一共用MxN行个PE,同一行的PE共享相同的input activations,不同行PE对应不同行的input activation;同一列的PE共享相同的kernel,不同列对应不同output channel
在这里插入图片描述
上图中一个PE包含了一个FoFIR、两个FIFO、一个activation解码器和一个加法器;
这两个FIFO中,AFIFO来自input activation,因为不同PE的稀疏度不同,计算速度不一样,需要FIFO同步;输出的部分和放到ACCFIFO,有一个column-index在这计算输出坐标。
FoFIR就是为了完成卷积操作,具体结构如下:
在这里插入图片描述
上图中的PAMAC就是precision-adjustable MAC unit,完成一个MAC操作,具体结构如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值