AI芯片:稀疏处理器Cambricon-X分析

Cambricon-X: An Accelerator for Sparse Neural Networks

一、引入

  我们以前提到的深度学习网络都属于稠密网络。经过研究发现,神经元间的连接很多都是冗余连接,剪枝后反而有助于精度提升。目前网络的稀疏度可以达到90%以上。举个例子来说,原来一个100MB参数的网络,压缩后,只有不到10MB的参数,大大减少了存储和运算量。

  对于稀疏网络加速器设计来说,剪枝后带来的一个问题是网络不规则性。如果不能较好的解决该问题,就不能从剪枝中获得理想收益。

二、几种常用的压缩方法

下面我们简单介绍几种在算法层面常见的压缩方法:
1.结构设计:最常见的是轻量型网络设计,比如Mobilenet网络中采用了深度可分离卷积(depthconv),相比普通卷积节省了很多运算量。
2. 剪枝:如下图所示,分为权值剪枝,神经元剪枝(静态神经元剪枝,动态神经元剪枝)。剪枝还有一种划分方法,即结构化剪枝和非结构化剪枝。

pipeline

3. 量化:低比特量化(16bit,8bit)、二值量化。
4. 知识蒸馏:属于迁移学习的一种,将训练好的大网络作为教师网络,指导小网络(学生网络)的训练。本质上是使得小网络训练的更准确。

三、本文稀疏处理器架构

pipeline

控制单元:同Diannao架构类似,都是采用指令集驱动执行的。
计算单元:16个以Fat-tree总线形式连接的、可以异步执行的PE单元。单个PE架构如下图所示,每个PE单元内部可以并行执行16次乘法运算,还包含了加法树单元。
异步执行的优势:稀疏网络架构是不规则的,也就是对于每个输出神经元,其计算次数不不尽相同。如果采用同步计算模式,必然会浪费较多运算周期,采用异步计算模式则可以解决该问题。

pipeline

存储单元:NBin,NBout和SB是单独实现。需要注意的是SB单元被划分为多个,每个计算单元PE单元都有一个自己的SB单元,每个SB单元大小为2KB。权值数据是以压缩形式存储在SB中的;输入、输出数据是全部存储在NBin、NBout中的。
Buffer Controller:这里是针对稀疏加速器特别引入的模块,结构如下图所示。该架构可以支持稀疏和稠密两种网络的执行。
稀疏网络:输入数据input会传输到选择IM单元中,IM模块会根据索引选择PE计算所需要的数据。每个PE都有一个这样的index选择模块。
稠密网络:输入数据input通过BCFU单元直接传输到PE中进行计算,跳过IM选择模块。
输出数据output可以经过BCFU单元处理,也可以直接写回到NBout中。

pipeline

四、稀疏存储与映射

稀疏映射(for input)
1.direct indexing

pipeline

2.step indexing

pipeline

本文作者经过实验对比后,选取了第二种映射方法—Step indexing。

稀疏存储(for SB):假设每个PE计算单元中包含4个并行乘法单元,则左图神经元连接对应的SB中权值存储方式如右图所示。对于神经元0来说,只需一次加载就可以完成计算;对于神经元1来说,需要两次加载过程完成计算。从这里我们也能看出PE计算单元选择异步执行的好处,神经元0不需等待神经元1计算完成。

pipeline

五、实验结果

参数DiannaoCambricon-X
工艺65nm65nm
面积3.02mm26.38mm2
频率0.98GHz1GHz
乘法运算单元16*16(同步)16*16(异步)
算力482Gop/s544Gop/s
能耗485mW954mW
片上缓存44KB56KB
位数16bit16bit

总结:Cambricon-X实现了一个稀疏处理器,其能耗是Diannao的2倍。从下面图中可以看出,稀疏处理器的能耗很大一部分都花在了IM选择模块上。与其稀疏后所获得的收益相比,能耗增大还是可以接受的。

pipeline

六、思考

非结构化剪枝->结构化剪枝
本文采用的是非结构化剪枝方法,也就是以神经元连接作为剪枝粒度,剪枝后的连接是乱的,带来了网络不规则性问题。由此一些研究人员提出了结构化剪枝方法,将剪枝的粒度提升到块block层次(例如Cambricon-S处理器设计),还有一些研究人员将剪枝粒度提升到了特征图feature map层次,也就变成了通道剪枝方法。这些思路为稀疏处理器的设计指出一些新思路。

多PE异构执行:这是一个值得借鉴的思路。异步架构控制起来更加复杂。但如果能与流水线或者稀疏结合起来,就可能会获得比同步架构更好的性能。

Finished.

PS:加速器架构设计来源于文章。引入,思考等都是自己写的,算是简单总结一下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值