Griffin:重新思考深度学习架构的稀疏优化 论文自用自学总结

前言

目的:为所有4种密集或稀疏激活/权重张量组合实现具有竞争力的性能和效率指标。

发现:针对双重稀疏性的最佳设计,在执行单一稀疏模型时,功率效率也会下降20 % - 30 %。

Griffin:在运行单一稀疏度或稠密模型时,可以重用同一核的资源来保持高性能和高效率。

优化结果:对于稠密、仅权重稀疏、仅激活稀疏和双重稀疏模型,Griffin的功耗效率分别是现有稀疏架构的1.2、3.0、3.1和1.4倍。

一、Introduction

  1. 阐述在DNN模型中的两种常用手段
    Rectified linear unit relu负数置0来引入张量的稀疏性 但有更好的非线性激活函数
    Weight pruning剪枝次要权重 但训练时间长,准确率低
  2. 分类DNN的四种模型(dense,dense), (dense, sparse), (sparse,dense), and (sparse,sparse),需要不同的加速器。
    缺陷:usually unknown at the design time for inference accelerators and might switch between different modes during training.
  3. 面积/功耗限制&specific的优化特性 列举部分之前的工作
  4. 本文和以前工作的不同:
    利用了高度的并行性和数据局部性的有效的dense baseline
    在阻塞和时间的几个维度上确定了从未来计算中借用有效操作
    主要利用了可以从一类执行模式重复使用到另一类执行模式的资源(例如,多路复用器和缓冲器)。
  5. 一句话总结本文的工作:增强了仅有权重和仅有激活的稀疏DNN模型的双重稀疏架构
    devise a novel hybrid architecture Griffin to reuse the hardware overheads in dual sparse architectures for DNN
  1. 基于乘法器在时间和空间上能借用非零操作数来替换零输入的稀疏体系结构模型。
    2)稀疏架构的设计空间探索,在以前的工作的基础上为每一类网络确定了更有效的设计。
    3)重用双稀疏架构中的逻辑以创建混合架构(Griffin)的技术,使其保持稀疏网络的最佳性能。
    4)与之前的最佳对比评估Griffin。 Griffin 比之前保持了至少 8% 的性能优势。

二、Problem Definition

  1. Dense Architecture
    GEMM
  • 是什么: a customized unit for general matrix-matrix multiplication
    定义为 C+=A × B,是流行 DNN 的main building block
  • 用在哪:
  1. 在深度学习中,GEMM 常用于前向传播和反向传播算法
    in FL
    | K | vectors of length |
    | M | Batch size |
    | B_{K×N} | 2D matrix |
    | C_{M×N} | a batch of outputs |

in a convolution layer
| K | C_{in}×R×S |
| N | C_{out} |

in transformer-based models: appear in the self-attention and feed-forward layers.
moreover: 检查所有生成的查询和关键向量之间的相似性
2) 硬件优化两处:
① 使用阻塞来最小化内存层次结构和不同级别之间的大小和数据移动
② 在空间中展开嵌套循环以利用并行性最大限度地减少每次访问的能量**
图1:稠密GEMM加速器的高级结构以及操作是如何映射到它上面的
在这里插入图片描述
矩阵A / B的每一行/每一列分别以2D方式存储在SRAM库中。
对于ai,1和b0,j,A / B中的每个元素在3个维度上都与其他元素相邻。

  1. Sparse Architecture
    Table I

三、SPARSITY OVERHEAD ANALYSIS

  1. 传统dense GEMM加速器缺点:
    共享操作数fetch逻辑,所有乘法器同时执行运算
    -> 最小化控制开销
    -> 稠密的数据通路无法跳过无效的操作

  2. Sparse结构:额外的逻辑来寻找零操作数
    两种方式:

  • preprocessing: 矩阵B在执行之前已知,因此在写入SRAM库之前对其进行预处理。
    预处理将零实体替换为相邻元素中的非零实体,从而生成元数据以及更压缩形式的矩阵 B。
    对( b0,0 , b3,0)和对( b2,0 , b4,0),借用距离分别为( db1、db2、db3) = ( 1,0,0 )和( db1、db2、db3) = ( 1,1,0 )
  • on the fly detection and skipping of ineffectual operations.
    adjacent multiplies的定义
    图2 当矩阵 A 或 B 中只有一个稀疏时,基于两个相邻操作数维度的开销
    在这里插入图片描述
  • 图2(a).
    B preprocessed(Preprocessing replaces zero entities with nonzero entities from the neighboring elements, which generates the metadata as well as a more compressed form of Matrix B.)
    非零替换
    db1db2db3是三个维度空间向量
    –>written into SRAM
    –>A中出现额外AMUX
  • 图2(b).
    db3是另一个维度的数据格式
    这里的neighboring PE01是不是就是db3=1
    –>AMUX需要额外处理
    –>反馈到原来的的PE00
  • 图2©.
    A (without preprocessing) requires performing on-the-fly zero operands detection and replacement is needed
    –>an arbiter logic is needed 仲裁器检测替换
    任何周期,仲裁器查看从 SRAM 获取并当前驻留在称为 ABUF 的缓冲区中的 A 元素的窗口;ABUF / BBUF 相对应
    –>仲裁器选择ABUF中的非零操作数,并生成索引从BBUF中选择适当的值
    –>将这些指标输入BBUF后的MUX中,称为BMUX
    (ABUF也需要MUX,但它们可以在所有PE之间连续共享,而每个PE都需要一个独立的BMUX。)???
  • 图2(d).
    类同2(b).
    当只有一个输入矩阵是稀疏的,可以根据每个维度借用非零操作数的最大距离来定义单个稀疏结构,用非零操作数代替零操作数。
  1. 开销来源:ABUF,AMUX,BBUF,BMUX和加法树( ADT )
    ABUF和BBUF的深度、AMUX和BMUX的扇入度、所需加法器树的数量取决于不同维度替换元素的距离限制。
    *Table II other restricted instances *(好奇是咋算的!!!??
  2. Load Balancing:零的分布不均处理办法
    Coarse-grain load balancing: GEMM被分解成更小的块,每个块被分配给可用的空闲PE。

in this work:细粒度方法 在核中,沿其第二维(即 da2 和 db2)对输入矩阵 A 和 B 进行shuffling
在进行预处理或进入飞击式打印跳零缓冲区之前,在稠密矩阵A和B上发生混洗。
简单的置换:如果一个元素在输入矩阵中位于( i1 , i2 , i3),它将被重新定位到( i1 , ( i2modK0),i3 ),其中K0是点积单元的大小。
局部旋转控制交叉开关数量:为了将A的元素导航到其对应的B的元素,基于旋转的洗牌需要SRAM和ABUF之间的K0 × K0交叉开关。因此,将重排限制为仅在连续的4个元素(在da2和db2 )之间进行局部旋转,减少为**(K0 / 4 ) 4 × 4交叉开关**。

四、HYBRID SPARSE ARCHITECTURE

propose an architecture family that supports dual sparsity by enabling zero operand replacement from all of the six dimensions mentioned in Section III & a hybrid solution in Section IV-B, with an optimal design called Griffin

  1. an architecture family supports dual sparsity
    开销:fetch from A and B
    定义 Sparse.AB(da1, da2, da3, db1, db2, db3)
    高维数组 3*2=6
    图3 walk-through example 这名词不错
    在这里插入图片描述
  1. 预处理B–>在BBUF中取SRAM中B的预处理后的元素
    b1,0, b3,0, b5,0, b6,0, b7,0, and b10,0
  2. 零掩码 ABUF/BBUF保持一致
    对于ABUF中的每个元素,将生成一个单一的掩码,表示它是否为零。
    a0,0, a0,1, a0,4, a0,10, and a0,11的位置为1
  3. 过滤掩码 a0,0,a0,4,a0,11变为0
  4. 仲裁检验 非零操作数的操作相关联
  5. 索引生成 优先级编码器提取它们在A和B中的索引
    检测每个比特索引对列表中第一个未被使用的非零值并生成相应的索引
    A-zero mask 对应左下角; B-zero 是从右往左看
    a0,6 (b6,0), a0,1 (b1,0), and a0,10 (b10,0)
  6. 选定操作数
  7. 进入PE执行

开销计算的具体参数计算
1)控制逻辑用于检测每个PE中的非零操作数
2)ABUF在一行PE中共享。该缓冲区的深度为L = ( 1 + x) × ( 1 + x′)
BBUF在PE的一列中共享,其深度为( 1 + x′)
3)每个PE都需要自己的AMUX和BMUX
AMUX和BMUX的扇入分别为1 + ( L - 1) × ( 1 + y + y′) × ( 1 + z)和1 + x × ( 1 + y)
4)双重稀疏性支持要求每个PE需要额外的z × z′加法器

  1. Hybrid Architecture (Griffin):
    Griffin的三种Configuration
    在这里插入图片描述
  • 图4(a).
    双稀疏基准时,表现为SparseAB( 2,0,0,2,0,0,1) 配置个数9ABUF+3BBUF+9AMUX+3BMUX+ADT;
    没有混合架构时,降级到SparseA( 2,0,0 )和SparseB( 2,0,1)
  • 图4(b).
    重新配置为SparseB( 8,0,1 )
    使用ABUF的九个元素+B中每个元素的metadata为4bit
    denseA的PE的控制座机空闲,BBUF只使用1entry,BMUX指标固定为0
  • 图4©.
    Griffin变形为SparseA( 2,1,1)BBUF的三个元素+PE的ADT

仲裁器的个数是怎么判断的???

五、EXPERIMENTAL SETUP

the paper‘s methodology:
实验平台,参数 stalls due to output synchronization, SRAM bank conflicts, and ABUF/BBUF fullness,影响因子
TableV The weight and activation (B,A) sparsity ratios, accuracy, and latency (i.e., number of cycles) with dense matrices for these benchmarks

  1. 实验配置:(K0, N0, M0)=(16, 16, 4) with 1024 MAC operations per cycle
    baseline on-chip memory ASRAM512KB BSRAM32KB
    主要开销在计算核 ( 为了充分利用稀疏性加速,SRAM BW 应等于或大于归一化加速与基线带宽的乘积。)
    //几个比较出名的稀疏结构?
  2. 根据三种最先进的稀疏 (SOTA) 架构评估我们的架构:
    BitTactical [12]、TensorDash [43] 和 SparTen [17]。
    Table V 比较的结构
    在这里插入图片描述
  3. 评估功耗和面积
    Table IV 实验设置和配置
    几何平均来估计评价指标,包括归一化加速比和功耗/面积效率
    在这里插入图片描述

六、RESULTS

分析仅权重稀疏、仅激活稀疏、双稀疏、混合架构的表现
在这里插入图片描述

  1. Weight-only sparsity
    图5(a).
    描述图片语言:
    ①db大 加速大;db1影响因子大于db2db3
    ②db3 boost the performance by up to …(举例) with increasing power overhead of …%
    ③shuffling is effective, mostly for db1 > 2 and leads to up to …% improvement
    ④进一步评价shuffling,作用的相似/独特,阐释说明,结果分析
    ⑤db间的相互作用 综合考虑
    图5(b).能耗 图5©.面积
    调整参数 绘制图片 寻找最优参数设计
    Pareto最优设计点

  2. Activation-only
    将只支持激活稀疏性的架构的设计空间探索缩小到AMUX / BMUX 扇入小于等于8的架构
    ①SparseB架构 da和db的重要性对比,原因Relu(50%的稀疏度)
    ②da3的影响因素
    ③shuffling对性能的提升
    ④可能存在的设计限制
    和SparTan比较:SparTan.A不能在K维展开–>高的积累代价和高的操作数取指能量

  3. Dual
    七个参数 da1,da2,da3,db1,db2,db3和shuffling
    图7(a). 与dense baseline相比的加速效果 Sparse.AB 4.9 ×的加速比
    图7(b)/©. projected power/area
    ①再次强调shuffling和da2/db2的关系: 升华为取代 & 相应的稀疏开销
    ②假设某些参数不为0的仿真结果 寻找Pareto 设计
    ③常用设计范围 较大或者较小的权衡
    总结最佳参数情况并分析其缘由(与其他的对比)

  4. Griffin
    8b)conf.B(db1, db2, db3, shuffle)=(8, 0, 1, on) with 3.5× speedup.–> 25 %和42 %的较好的功率效率和面积效率
    8c)conf . A( da1 , da2 , da3 , shuffle) = ( 2 , 1 , 1 , on) 1.94 × speedup --> 23 %和20 %
    在这里插入图片描述

表6 three configurations of Griffin
激活稀疏性的实时处理比权重预处理有效

  1. Hardware Overhead and Breakdown
    表7 密集基线和稀疏基线的功率和面积分解
    在这里插入图片描述
    Dense:乘子在功率和面积上都占主导地位
    资源分配给计算单元更高效
    SparseAB./SparseA/SparseB 控制开销较小

主要功耗开销:添加到数据通路流水线中的寄存器以及ABUFs和BBUFs所需要的寄存器
与dense相比,数据通路功率/面积开销的增加并解释其原因
与增加稀疏逻辑的TCLB/TDash.AB 3D密集核对比

- dense: multipliers are dominant both in power and area, so allocating most of the resources to the compute unit
Sparse.B* and Sparse.A*: registers added to the data path pipeline and those needed for ABUFs and BBUFs
The selected design: increase the data path power& the area overhead
TCLB/TDash.AB: (add sparse logic designed on top of efficient 3D dense core)the higher speedup from Sparse.B* and Griffin caused better power and area efficiency
Sparsten.AB: PE and BUFs cause inefficiency

  1. Overall
    描述了归一化面积和能耗的计算体系 保持四类DNN模型的最佳:Griffin
    贬低一下其他的都不太行…

图8(a) 降低的效益:为了获得稀疏增益而花费的sparsity tax
不同设计差别较大,dense不特别好但是DNN.B/DNN.AB 完胜基准模型(前提是双稀疏)
再次提及SparTan和TCL

Prior work

  1. Cambricon-X:
  • how: leverages a queue for weights generated by flattening (K) axes and it uses a wide activation crossbar to fetch inputs corresponding with nonzero weights.(利用通过展平 (K) 轴生成的权重队列,并使用宽激活交叉开关来获取与非零权重相对应的输入。)
  • overhead: input crossbar and bandwidth
  • demerit: infeasible for scaling up(无法按比例放大。)
  1. TCL
  • how: static scheduling coupled with a lightweight input multiplexing network &routing nonzero weights in time and input channel(引入了静态调度和轻量级输入复用网络。 TCL 通过在时间和输入通道(即 db1 和 db2)中路由非零权重来静态压缩权重。)
  • demerit: does not support routing nonzero weights from different output channels(即db3 = 0 )
  1. SCNN
  • how: proposed CNN architectures& uses a 2D array of compute units that perform an outer product between two nonzero weight and activation vectors(使用计算单元的 2D 数组,在两个非零权重和激活向量之间执行外积。)
  • overhead: a heavyweight crossbar
  1. ZeNA (similar to Sparten)
  • how: which route computations in time (i.e., db1 and da1) only for each MAC unit independently(该单元仅独立地为每个 MAC 单元及时路由计算(即 db1 和 da1))
  • demerit: limited in efficiency and scalability due to their limited data movement and reuse between MACs.
  1. Eyeriss v2
  • how: a hierarchical mesh network for flexible processing of sparse weights and input activations directly in a compressed domain
  • demerit: degrading the performances of dense models
  1. Others
    Outerspace提出了一种基于核的设计来执行稀疏的外部产品
    Sp Arch通过减少内存占用( DRAM访问)来优化稀疏GEMM
    Tensaurus提出了一种新的稀疏存储格式,压缩交织稀疏切片( Compressed Interleaved Sparse Slice,CISS )
    Spaghetti设计了一种模式感知的软件调度器来利用稀疏模式来优化DRAM的利用率
    Sparse CNN FPGA加速器提出了一种稀疏数据流来跳过零权重并最小化片外存储器访问
    Procrustes使用优化的Dropback算法从稀疏DNNs训练中产生剪枝模型
    SIGMA引入了一个高度灵活的点积引擎和前向加法器网络,以实现DNNs训练中高效的GEMM计算。

总结

一种系统方法:支持各种类型的DNNs稀疏性
Griffin:在权重和激活张量都不稀疏的情况下,也可以实现接近最优的功率效率。
最佳尺寸讨论
不同条件下的性能分析(自己)
不同模型类别 不同架构的效果对比(与其他)
数据结果呈现:功率和面积效率分别提高了3.1和3.8倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值