FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

論文 "Sparse Stream Semantic Registers: A Lightweight ISA Extension Accelerating General Sparse Linear Algebra" を読む2

arxiv.org

https://arxiv.org/pdf/2305.05559v1.pdf

4. 性能評価

本論文 Figure4 より抜粋
  • Sparseな要素とDenseな要素の演算
    •  sV\times dV: 図4aは、スパースベクトルの非ゼロカウントnnzを変化させた場合の sV\times dVカーネルのFPU使用率
      • baseとssrはどのようインデックスの大きさに対しても同一の性能を発揮する
        • RISC-Vのロード命令はどのような命令でも1命令1要素であるため
      • 16ビットと32ビットのインデックスが、アービトレーションによって制限される67%と80%に近づき、SSRよりも4.7倍と5.6倍高いFPU使用率を達成する
      • 8ビットインデックスのカーネルは最大5.8倍高い利用率に達し、インデックスを繰り返す8ビット関節は88%の調停限界に近づいた
    •  sV+dV: 図4bは、 sV+dVカーネルのFPU使用率を示す
      • 結果は密なベクトル上に累積される(つまり、ESSRが使用される)
      •  sV\times dVの場合と同様の傾向が見られますが、2つの重要な違いがある
        • すべての要素に対して結果値が書き戻されるため、BASEとSSRのピーク使用率はさらに低下する
    •  sM\times dV: 図4cは、BASEに対するSSSR  sM\times dVカーネルの高速化を、行列行あたりの平均ノンゼロ数nnz(行ごとに実行されるMACを反映)に対して示している
    •  sM\times dM:  sM\times dVカーネルとほぼ同じである
  • Sparseな要素とSparseな要素の演算
    本論文 Figure4 より抜粋
    •  sV\times sV: 図4dは、ベクトル密度が0.03-30 %、ベクトル長が60kの場合、16ビットSSSR  sV\times sV カーネルがBASEカーネルの性能比較
      • 3.0~7.7倍の速度向上が見られ、オペランドの密度に比例してほぼ対称的に増加することがわかる
      • 同程度の密度では一般に高速化が進み、密度が乖離すると高速化は5.0×に収束する
        • intersection(共通部分)がなく、1つのベクトルの非ゼロをスキャンする場合、baseは非ゼロあたり5サイクル、SSSRは1サイクル必要
        • Intersection(共通部分)を処理する場合、BASEは非ゼロペアあたり18サイクル、SSSRは1.25サイクル必要
        • 非ゼロ位置が正確に一致した場合、達成可能なピークスピードは14.4倍、FPU使用率は80%になる
    •  sV+sV: 図4eは、 sV\times sVと同じベクトルについて、BASEに対する16ビットSSSR  sV+sV カーネルの速度向上を示している
      • 5.4~9.8倍の速度向上が見られ、オペランドの密度が高くなるにつれて増加し、オペランドの非対称性がわずかに存在する
      • SSSRは、インデックス比較を継続的に行うと仮定した場合、aまたはbの和集合のみを読み出し、各要素を最大9.6倍および8.8倍高速に処理できる
    •  sM\times sV: 図4fは、異なるベクトル密度における行列行あたりの平均ノンゼロ数nnzに対する、BASEに対する16ビットSSSR  sM\times sV カーネルの速度向上を示す
      • 両引数の密度に比例して増加し、対応する密度で sV\times dV の高速化に近づき、最大6.3倍まで達する

まとめ

  • この研究では、SSRを拡張して、間接アクセ、積演算、和演算を高速化する
  • ISA拡張を作成し、広く普及しているCSRやCSFを含むスパースファイバベースのフォーマット上で効率的な一般的スパース線形代数を実現した
  • RISC-V Snitchシステムにおいて、シングルコアの効率的なSparse-DenseおよびSparse-SparceのLAカーネルを評価した
    • 16ビットインデックスを使用するシングルコア
      •  sV\times dVのFPUのピーク利用率は80%、 sM\times dVは最大7.0倍まで高速化された
      • SSSRの積演算と結合演算により、スパーススパースのドット積とベクトル加算において、3.0~7.7倍と5.4~9.8倍の高速化を実現した
      •  sM\times sV では最大6.3倍の高速化を可能にた
    • Snitchクラスタにスケールアウト
      • SSSRを用いた sM\times dVは最大5.0倍高速でエネルギー効率は2.9倍
      •  sM\times sV はベクトル密度1%で最大5.9倍高速、エネルギー効率3.0倍
    • 1コアあたり11kGE、クラスタ全体では1.8%の追加面積しか発生しない