文献阅读(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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当涉及到矩阵运算加速算法时,以下是一些相关的文献和资料,希望能对你有所帮助: 1. Strassen算法:Strassen算法是一种用于矩阵乘法的分治算法,可以在较少的乘法操作次数下加速矩阵乘法。你可以查阅 Volker Strassen 在 1969 年发表的原始论文,题目为 "Gaussian Elimination is not Optimal"。 2. Coppersmith-Winograd算法:Coppersmith-Winograd算法是一种用于矩阵乘法的算法,可以在理论上达到更快的运行时间。你可以查阅 Don Coppersmith 和 Shmuel Winograd 在 1987 年发表的论文,题目为 "Matrix multiplication via arithmetic progressions"。 3. GEMM优化:GEMM(General Matrix Multiply)是一种用于矩阵乘法的基本操作,很多高性能计算库和硬件都对其进行了优化。你可以查阅一些与GEMM优化相关的文献,例如 BLIS(BLAS-like Library Instantiation Software)项目的相关论文。 4. 稀疏矩阵优化:当处理稀疏矩阵时,有一些特定的优化方法可以加速运算。你可以查阅 Tim Davis 编写的《Direct Methods for Sparse Linear Systems》一书,其中有关于稀疏矩阵的优化算法的介绍。 5. 并行计算:并行计算是利用多个处理器或计算机同时进行计算的方法,可以加速矩阵运算。你可以查阅一些与并行计算相关的资料,例如《Parallel Computing for Data Science: With Examples in R, C++ and CUDA》一书。 请注意,这些文献和资料是一些经典的参考,你可能需要进一步搜索和阅读相关的研究论文和书籍来深入了解矩阵运算加速算法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值