文献阅读(301)稀疏矩阵乘

  • 题目:Sparse Tensor Core: Algorithm and Hardware Co-Design for Vector-wise Sparse Neural Networks on Modern GPUs
  • 时间:2019
  • 会议:MICRO
  • 研究机构:阿里巴巴/UCSB

VectorSparse 方法

在神经网络中,稀疏剪枝很常见,但是GPU的Tensor Core主要是面向密集矩阵乘优化的,对于稀疏矩阵的优化还不够
本篇论文的主要贡献:

  1. 证明GPU在运行稀疏神经网络时的低效率
  2. 在神经网络训练中,利用向量解析进行稀疏化训练,提高神经网络的稀疏性
  3. 与算法优化相对应,扩展了Volta GPU的指令集,微架构设计优化以提升稀疏矩阵性能

为什么稀疏矩阵在GPU上性能不足够好呢

  • 负载不均匀
  • 非零元素的数量未知,难以选择最佳的切片方案
  • 高度稀疏矩阵的计算量不足以隐藏长的存储器访问延迟

如何解决负载不均匀的问题呢?
将权重矩阵拆分成不同的向量,并在剪枝的时候强行要求每个向量的稀疏度相同
在这里插入图片描述
在矩阵运算过程中,我们假设是稀疏矩阵乘密集矩阵,对于C的每一行,都是稀疏向量乘以密集矩阵的结果,而对于一个稀疏向量,只有个别元素是非零的,只需要和密集矩阵的对应行相乘即可。
对于下图,A矩阵的第一行只有A11和A16是非零的,那么只需要A11乘以B的第1行加上A16乘以B的第6行就是C的第一行结果
在这里插入图片描述


  • 题目:OuterSPACE: An Outer Product Based Sparse Matrix Multiplication Accelerator
  • 时间:2018
  • 会议:HPCA
  • 研究机构:密歇根大学

Outer Product方法

传统的矩阵乘都是乘累加,本质上是输出不变,输出复用度较高;这里换一种方式,先计算得到多个部分和矩阵,再将部分和矩阵对应相乘即可,这样做的好处是输入矩阵A的复用度较高
在这里插入图片描述


  • 题目:MatRaptor: A Sparse-Sparse Matrix Multiplication Accelerator Based on Row-Wise Product
  • 时间:2020
  • 会议:MICRO
  • 研究机构:康奈尔大学

row-wise product方法

本篇论文的主要贡献:

  1. 系统的分析了稀疏矩阵乘的各种数据流,提出了row-wise product方法
  2. 提出了C2SR的数据存储格式
  3. 基于上述的数据流与数据存储格式,设计了稀疏卷积加速单元,相比于OuterSPACE提升明显

所有的稀疏矩阵乘可以分成四种不同的数据流:

  • 内积:一行乘以一列乘累加,输出不变
  • 外积:一列乘以一行,得到多个部分和矩阵
  • row-wise product:一行乘以一行,类似VectorSparse,累加后可以得到一行的计算结果
  • column-wise product:一列乘以一列,累加后可以得到一列的计算结果

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值