DNN中的Sparsity研究
原文章。
https://www.sigarch.org/the-future-of-sparsity-in-deep-neural-networks/
从三方面分析
1. Sparse Algorithms
第一层面是算法。
算法可以直接减少需要的workload。
2. Sparse Kernels
kernel可以提升计算效率。
Sparse kernel大约在65%可以计算超过density。
但是sparse所能达到的peak perf仍然有限,大约17~33%。而Dense大约可以达到55%~80%。
这样在硬件资源使用效率上大概差3,也就是说sparse / dense至少加速3倍才真正有意义的加速。
随着硬件的支持, sparse的peak perf应该会越来越高。
3. Sparse Hardware
hardware层面的支持可以提高硬件层面的计算效率。
4. Structured Sparsity
这里不做讨论
* 稀疏和密集矩阵的比较
对于计算,专用矩阵乘法硬件的可用性使稀疏性处于劣势。在最新的 Nvidia A100 GPU 上,混合精度稀疏矩阵-密集矩阵乘法 (SpMM) 峰值是密集矩阵乘法 (GEMM) 峰值的1 ⁄ 16。更糟糕的是,SpMM 内核实现了小于1 ⁄ 3的峰值(E sparse ≤ 1 ⁄ 3)。GEMM 能够达到峰值的2 ⁄ 3. 由于密集计算在硬件能力和效率方面具有显着优势,稀疏问题需要大量减少工作以实现速度提升。