PopSparse: Accelerated block sparse matrix multiplication on IPU

要約

タイトル:IPU上での加速ブロック疎行列の乗算のためのPopSparse

要約:

– スパーシティを使用して大規模なニューラルネットワークの計算コストを削減することが、ディープラーニングコミュニティで注目されている。
– FLOPとパラメータ数を減らして、タスクのパフォーマンスを維持することに成功したが、実際のスピードアップを実現することは通常は困難であった。
– PopSparseは、IPUのハードウェア特性とデータ内で定義されたブロック構造を活用して、IPU上で高速なスパース演算を可能にするライブラリである。
– 静的スパーシティ(コンパイル時にスパーシティパターンが固定される)と動的スパーシティ(モデルの実行ごとに変更可能)の2つのスパーシティタイプを対象としている。
– IPUでの行列乗算のベンチマーク結果を示し、様々なブロックサイズ、行列サイズ、密度に対して、両方のモードについての効率が良い結果を得た。
– PopSparseの実装は、大規模な行列サイズとブロックサイズの多くのスパーシティレベルで、IPU上での密集行列乗算よりも速い結果を示した。
– さらに、静的スパーシティは一般的に動的スパーシティを上回る。
– 従来のGPUsによるスパース処理の先行研究では、非常に高いスパーシティ(通常99%以上)に対してのみ速度向上が示されていたが、本研究では、静的なスパース実装が、低いスパーシティ(約90%)のFP16で等価な密集計算より優れたパフォーマンスを発揮した。
– IPUコードはipu.dev/sparsity-benchmarksで閲覧および実行でき、GPUコードは近日中に公開されます。

要約(オリジナル)

Reducing the computational cost of running large scale neural networks using sparsity has attracted great attention in the deep learning community. While much success has been achieved in reducing FLOP and parameter counts while maintaining acceptable task performance, achieving actual speed improvements has typically been much more difficult, particularly on general purpose accelerators (GPAs) such as NVIDIA GPUs using low precision number formats. In this work we introduce PopSparse, a library that enables fast sparse operations on Graphcore IPUs by leveraging both the unique hardware characteristics of IPUs as well as any block structure defined in the data. We target two different types of sparsity: static, where the sparsity pattern is fixed at compile-time; and dynamic, where it can change each time the model is run. We present benchmark results for matrix multiplication for both of these modes on IPU with a range of block sizes, matrix sizes and densities. Results indicate that the PopSparse implementations are faster than dense matrix multiplications on IPU at a range of sparsity levels with large matrix size and block size. Furthermore, static sparsity in general outperforms dynamic sparsity. While previous work on GPAs has shown speedups only for very high sparsity (typically 99\% and above), the present work demonstrates that our static sparse implementation outperforms equivalent dense calculations in FP16 at lower sparsity (around 90%). IPU code is available to view and run at ipu.dev/sparsity-benchmarks, GPU code will be made available shortly.

arxiv情報

著者 Zhiyi Li,Douglas Orr,Valeriu Ohan,Godfrey Da costa,Tom Murray,Adam Sanders,Deniz Beker,Dominic Masters
発行日 2023-04-05 13:43:15+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, OpenAI

カテゴリー: cs.LG パーマリンク