天天看點

文獻閱讀(301)稀疏矩陣乘VectorSparse 方法Outer Product方法row-wise product方法

文章目錄

  • VectorSparse 方法
  • Outer Product方法
  • row-wise product方法
  • 題目: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上性能不足夠好呢

  • 負載不均勻
  • 非零元素的數量未知,難以選擇最佳的切片方案
  • 高度稀疏矩陣的計算量不足以隐藏長的存儲器通路延遲

如何解決負載不均勻的問題呢?

将權重矩陣拆分成不同的向量,并在剪枝的時候強行要求每個向量的稀疏度相同

文獻閱讀(301)稀疏矩陣乘VectorSparse 方法Outer Product方法row-wise product方法

在矩陣運算過程中,我們假設是稀疏矩陣乘密集矩陣,對于C的每一行,都是稀疏向量乘以密集矩陣的結果,而對于一個稀疏向量,隻有個别元素是非零的,隻需要和密集矩陣的對應行相乘即可。

對于下圖,A矩陣的第一行隻有A11和A16是非零的,那麼隻需要A11乘以B的第1行加上A16乘以B的第6行就是C的第一行結果

文獻閱讀(301)稀疏矩陣乘VectorSparse 方法Outer Product方法row-wise product方法
  • 題目:OuterSPACE: An Outer Product Based Sparse Matrix Multiplication Accelerator
  • 時間:2018
  • 會議:HPCA
  • 研究機構:密歇根大學

Outer Product方法

傳統的矩陣乘都是乘累加,本質上是輸出不變,輸出複用度較高;這裡換一種方式,先計算得到多個部分和矩陣,再将部分和矩陣對應相乘即可,這樣做的好處是輸入矩陣A的複用度較高

文獻閱讀(301)稀疏矩陣乘VectorSparse 方法Outer Product方法row-wise product方法
  • 題目: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:一列乘以一列,累加後可以得到一列的計算結果
文獻閱讀(301)稀疏矩陣乘VectorSparse 方法Outer Product方法row-wise product方法

繼續閱讀