2020-11-25

《Toward an Efficient Deep Pipelined Template-Based Architecture for Accelerating the Entire 2-D and 3-D CNNs on FPGA》

2020年IEEE TCAD&&ICAS的文章,标题很清晰的说明了这篇文章的工作的特点:1.同时在FPGA上实现了2D和3D卷积网络 2.模块化(Template-Based)设计模式 3.基于流水线(Pipelined)技术

这篇文章的内容是从FPGA2018的会议论文《Towards a uniform template-based architecture for accelerating 2D and 3D CNNs on FPGA》中扩展出来的。

本文解决的核心问题

      为具有密集计算量和存储量的3D卷积网络(以及2D卷积网络)设计了FPGA加速方式。

 Contributions:

      1.基于Winograd算法,设计了一种3D和2D卷积神经网络在FPGA上的统一计算架构。

      2.基于混合复用的网络层融合技术、网络层聚类技术、工作负载平衡技术将CNN部署到FPGA中。

      3.设计了有效的设计空间探索技术,提升网络层融合效率。

      4.基于文中架构实现了VGG-16、VGG-19、C3D、Based3D等网络,速度提升明显。

背景知识:

      1.介绍了3D卷积面向的视频分类问题

    2.介绍了3D卷积网络与2D卷积网络相似的网络层特性。卷积层占据最多的计算量(Computation-intensive)、全连接层占据大多数存储量(Memory-intensive)。同时指出,网络中间值占据的空间(377.7MB)比网络权重(235.1MB)还多,这意味着卷积层也需要大带宽的存储。

    3.Winograd算法

    参考博客:https://www.cnblogs.com/shine-lee/p/10906535.html

    总体来说,Winograd算法通过减少乘法次数(加法次数会相应增加),来提升卷积计算速度。文中提到,Winograd算法普遍被应用在FPGA的CNN实现中。

实现思路与计算架构

      1.设计基于Winograd算法的3D和2D卷积神经网络分块计算方法。

      2.Winograd算法的变换矩阵(Transformation matrices)由许多1和-1构成,可以将乘法化简为加法和减法;

         一些特殊的乘法\除法(x2、1/4等)可以优化为移位操作。

        下图是基本计算单元的逻辑。

      3.整体计算架构

     Layer Computation Engine(LCE)、Processing Units(PU)、Processing Engines(PE)分别构成三级计算架构

     下图是PE计算的伪代码

未完待续。。。。。

 

该文章带来的启发:

1.要充分利用Vivado HLS的编译指令。

2.Xilinx Ultrascale架构的存储资源可以有效消除片外到片内的数据传输时间。(需要进一步调研)

3.可以利用Winograd算法做一些实验。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值