FPGA进行CNN计算的脉动阵列

在FPGA进行CNN加速计算的论文里,有一种设计:脉动阵列

何为脉动,脉动的数据是什么样子的?

下图可以看做是简单的脉动单元,共有P11到P33 9个计算单元,行列数据并不是同时刻到达计算单元,而是依次进入,说白了就是像FPGA设计里经常提的流水线pipiline,这里面有个关键点是CNN的乘加操作,P11计算单元会在3个节拍进来6个数据,3个节拍后,P11=3*3+2*4+2*3=23,每个计算单元在计算的同时,数据会流入下一个计算单元。

 

脉动的好处,我认为主要有3点

(1)增加了fpga内dsp的效率

增加了效率是指,dsp的计算效率会提升,计算单元其实在大部分时间都是闲置的,因为会有大量的时间在进行读数据写数据的操作,而数据一旦脉动起来,则会让dsp无时无刻的都处于计算状态,这也相当于在工作频率不变的情况下,大大的增加了dsp的利用效率。

 

(2)布局布线更加容易

为什么说布局布线更加容易,当所有的计算单元都需要同一时刻处理数据时,eda编译器肯定会将相关PE都放在一起,至少也是保证数据到他们的时刻相同,这就对编译器具有较高的要求,而数据是脉动过来的话,则可以让编译器有更加宽裕的时间处理,布局布线也会更容易。

 

(3)节省资源,主要是节省LUT资源

节省LUT资源主要是指CNN的加操作,如果不是用脉动形式,结果会在一个周期内同时出来,如果Feature Map是3*3则会有9个数据同时出来,需要在同时刻将9个数据求和。这里就需要LUT搭建加法树完成操作。而如果是脉动的数据方式,数据脉动出来,可以利用dsp的后加器完成计算,节省LUT资源。
 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值