【论文笔记】用Huffman编码压缩神经网络及硬件加速算法

论文名称:

High PE Utilization CNN Accelerator with Channel Fusion Supporting Pattern-Compressed Sparse Neural Networks

会议&年份:

2020 57th ACM/IEEE Design Automation Conference (DAC)

背景:

之前的论文没有对模式修剪方法进行充分的研究,现有的稀疏CNN的索引存储方案效率不高,现有加速器的性能受到稀疏网络上空载PEs的影响

主要内容分为三部分:
(1)基于3种不同计算的压缩网络的方法

首先通过统计分析发现,每一层里面很多核其实模式是一样的,因此可以用同种模式来代表。
在这里插入图片描述

(图中每一列代表一层,57,321,511代表该层有多少种模式,同颜色代表同种模式)

提出的方法:
  • 输入一个原始的模型

  • 选出数量最多的几种模式(根据出现的概率选,选几个根据他们设定的公式,可调参)

  • 将不是这几种模式的kernel都投影到这几种模式中(分别计算要投影的kernel和几种特定模式的距离,选最近的模式投影上去,计算方法有三种——直接计算L1范数,考虑位置上权值大小,计算cos值)

  • 处理后的模型再重新训练几轮以恢复精度,再进行不规则裁剪(随机裁剪)以保持稀疏性。“投影-训练-不规则裁剪”重复多次直到精度达到要求。

在这里插入图片描述

(2)基于haffman编码的,降低索引存储开销的方法——HEPC

原来的方法压缩完网络后有很多0,存非0位的位置用的索引方式(直接存非0位的坐标)开销较大。

提出的方法:

假设用上面(1)的方法选出了5种模式,现在进来了3个核。

  • 首先对五种模式进行huffman编码(出现概率大的编码短)
  • 再分别记录这五种模式非零值的坐标

最终的新存储方式,由两部分组成:

  • PI存输入的核分别是什么模式。比如10-110-10三个块就存下了是p2-p3-p2,而传统方法机械的存非零坐标就要很大的空间。
  • CK存权值具体是多少。根据PI给的信息分别访问出来权值。这个权值是必须存的,本文是提出的是新的存非零位置的方法

在这里插入图片描述

(3)支持通道融合的硬件结构FESA

发现如果核的大小不同的话,那一起进去计算的时候,计算单元很多时候都是空的,因此提出通过融合通道来降低PE的空载率。
在这里插入图片描述

提出的方法:

在这里插入图片描述
比如上图,Channel2就是把两个kernel融合

  • 每个channel的值和feature map 计算的暂时结果,输出到MEM中,再求和输出到输出缓冲中。

  • 每行有个转换器来控制一行中要输出到不同MEM,MEM行越多,能融合更多的核,但是性能会下降

效果:
  • 在CIFAR-10上测试,对VGG-16进行压缩,索引存储减少5.63倍,top-1精度仅减少0.87%。
  • FESA实现了1.54~1.79倍性能并减少25 ~34%的空载率
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值