美文网首页论文阅读
[MLSys]Accelerating Sparse DNN M

[MLSys]Accelerating Sparse DNN M

作者: sagfugetabf | 来源:发表于2021-07-07 23:16 被阅读0次

    2021-07-07
    地址:SC‘20


    概念图 模型压缩

    Abstract:网络剪枝可以减少DNN的代价(哪个方面的代价,计算,网络,存储?)。稀疏模型中国常有随机分布的weights,会导致计算的不规律性。GPU是为密集矩阵运算加速的通用工具,对于稀疏模型,这里存在gap。之前的工作,致力于找一个完全新的稀疏优化的架构(怎么理解这个架构)。我们提出了算法-软件协同的剪枝方案,可以在现有的dense架构上加速latency。本文工作的insight是矩阵乘法通常是将大矩阵分解为小矩阵来并行计算,在这个拆分小矩阵的方法上做文章,让不规律的稀疏矩阵,在分解成小矩阵时保持一定的规律性。
    加速效果:1.95x

    intro,泛-精-专
    泛:背景和意义
    DNN现在很厉害,有的效果比人都好,但是就是有点贵,所以优化很有必要,尤其是模型推理的延迟

    精:他人的解决方案
    一种解决方案是,将dense 矩阵通过抛弃不重要的weights变成稀疏矩阵,并且重新训练模型保持精度。理论上,稀疏模型可以有更小的计算代价。tradeoff在模型准确率和训练效率之间。问题的关键在于密集矩阵稀疏化的sparsity pattern。
    剪枝的粒度,有元素级别(EW),一个weights一个weights的剪枝and训练,对模型精度影响最小,但是会导致稀疏矩阵访存的不规律性,结果导致,剪枝的模型还不如不剪枝的跑得快

    另一种解决方案:研究人员加入了硬件设备的支持,提出一些特定硬件结构。比如从向量的维度切分weight到一列一列的组,并且prune掉同一组的相同数字。(这里减少访存的原理没想明白)

    专:本文的解决方案
    insight:现在cv也好,nlp也好,大家其实都是在用GEMM(dense generalmatrix multiplication),所以我们的剪枝方案要是能让稀疏后的结果能够直接利用现有的GEMM。
    怎么做到的呢?请看下文分解,[doge]

    作者分析了GEMM的流程,发现GEMM是利用了tiling approach(作者给起的名字,意思是,大矩阵拆分成小矩阵,就像一块块瓷砖一样),所以我们也依据这个特性设计了适合稀疏性的瓷砖块算法(tile sparsity,or TW)。

    瓷砖块可大可小,小到极致就是元素级别(EW),大到极致就是global structural pruning,删除整行整列。瓷砖算是两种方法的中间,and可以调整大小。

    TW算法的base上,还可以加一个混合剪枝,再已经sparsity的模型上再加一层EW,可以得到更高的精度。

    TW方法的两个问题:
    1.TW天然呆进入了非连续性的内存访问
    2.不同的TW的计算强度不同,看你造成imbalance
    解决方案:intelligent data layout and concurrency/batching optimizations

    三个贡献点

    1. tile wise的sparsity pattern,平衡精度和代价
      2.一个多阶段的剪枝算法,在不同的层动态分配负载
    2. 在通用的GPU上实现出来,并且取得了效果
    传统方法 TW方法概要 TW方法优化

    只能说,很复杂的工作,背后有着非常大的工作量。得对细节有着深入的理解,对cuda环境足够熟悉。

    TW模式稀疏得更规整

    实验非常多,分析的角度也很多。

    1. TW和EW以及BW的Accuracy and latency 对比
      2.TEW模式中添加E的部分,对Accuracy and latency 的影响
      3.不同TW稀疏比例加速的


      不同TW稀疏比例加速的
    2. 几种方法在不同的模型上的效果
    3. 延迟和精度之间的tradeoff
      6.TW在端到端的结果

    七,相关工作及讨论

    1, 硬件方面工作
    2,软件方面优化
    3,TW在其他平台的应用可行性
    4,稀疏模式这个课题未来的发展方向:energy-oriented pruning

    结论:一个非常delicate的工作,很细节,甚至有点繁琐。
    可能是我这方面优化的文章看少了,还不能完全理解这个工作的层次,在这个领域是繁是简。


    阅读参考:Computer architecture for Matrix computation
    这个ppt介绍了GPU的工作流程,可以更细致的理解

    相关文章

      网友评论

        本文标题:[MLSys]Accelerating Sparse DNN M

        本文链接:https://www.haomeiwen.com/subject/jgjoultx.html