Skip to main content
QUICK REVIEW

[論文レビュー] BiQGEMM: Matrix Multiplication with Lookup Table For Binary-Coding-based Quantized DNNs

Yongkweon Jeon, Baeseong Park|arXiv (Cornell University)|May 20, 2020
Parallel Computing and Optimization Techniques参考文献 42被引用数 6
ひとこと要約

BiQGEMM は、バイナリコーディングに基づく量子化 DNN のための新しい行列乗算アルゴリズムであり、繰り返し発生する乗算を置き換えるために事前計算されたルックアップテーブルを用い、非一様に量子化された重みへの同時アクセスを固定幅命令によって可能にすることで、推論を高速化する。これは、ベースラインの kGpu に対して最大 30.42× の高速化を達成し、特に NLP モデルで一般的な大規模出力サイズ・小規模バッチサイズのワークロードにおいて、メモリバウンドな状況下で XNOR ベースの手法を上回る性能を発揮する。

ABSTRACT

The number of parameters in deep neural networks (DNNs) is rapidly increasing to support complicated tasks and to improve model accuracy. Correspondingly, the amount of computations and required memory footprint increase as well. Quantization is an efficient method to address such concerns by compressing DNNs such that computations can be simplified while required storage footprint is significantly reduced. Unfortunately, commercial CPUs and GPUs do not fully support quantization because only fixed data transfers (such as 32 bits) are allowed. As a result, even if weights are quantized into a few bits, CPUs and GPUs cannot access multiple quantized weights without memory bandwidth waste. Success of quantization in practice, hence, relies on an efficient computation engine design, especially for matrix multiplication that is a basic computation engine in most DNNs. In this paper, we propose a novel matrix multiplication method, called BiQGEMM, dedicated to quantized DNNs. BiQGEMM can access multiple quantized weights simultaneously in one instruction. In addition, BiQGEMM pre-computes intermediate results that are highly redundant when quantization leads to limited available computation space. Since pre-computed values are stored in lookup tables and reused, BiQGEMM achieves lower amount of overall computations. Our extensive experimental results show that BiQGEMM presents higher performance than conventional schemes when DNNs are quantized.

研究の動機と目的

  • ボルツマンアーキテクチャにおける非効率なメモリ帯域幅の利用が引き起こす量子化 DNN 推論の性能ボトルネックを解消すること。
  • CPU/GPU における固定幅データ転送の制限を克服し、非一様に量子化された重み(例:1ビット、2ビット)を効率的に処理すること。
  • 量子化 DNN の行列乗算において、中間結果を事前計算しルックアップテーブルに格納することで、重複する計算を削減すること。
  • ハードウェアの変更なしに、現代の CPU/GPU で高性能な GEMM 操作を実現すること、特に大規模な出力次元と小規模なバッチサイズを持つモデルに特化すること。
  • ソフトウェアレベルの効率的で実用的な解決策を提供し、量子化 DNN 推論における計算効率とメモリ帯域幅の利用効率を両方向上させること。

提案手法

  • 量子化行列乗算の途中計算結果を事前計算し、ルックアップテーブルに格納することで、繰り返し発生する乗算を置き換える。
  • 複数の非一様に量子化された重みを1命令で同時にロードできるメモリアクセスパターンを設計し、メモリ帯域幅の無駄を最小限に抑える。
  • ビットパッキングを用いて量子化された重みを効率的に格納し、1ワードに複数ビットを同時に処理できるようにパック解除を行う。
  • ルックアップベースの計算を、明示的な乗算演算を避けるように、量子化重み行列を対象とした GEMM カーネルに統合する。
  • 出力サイズ(m)が大きく、バッチサイズ(n)が小さい状況(NLP モデルであるトランスフォーマー や LSTMs で一般的)を最適化する。
  • GPU 上に修正された kGpu ベースラインを実装し、XNOR ベースおよび標準 GEMM アプローチと比較する。

実験結果

リサーチクエスチョン

  • RQ1ルックアップベースの事前計算は、量子化 DNN の行列乗算において、重複計算を顕著に削減できるか?
  • RQ2固定幅プロセッサ上で非一様に量子化された重みにアクセスする際、メモリ帯域幅を最大限に活用する方法は何か?
  • RQ3ビットパッキングとルックアップテーブルを組み合わせた GEMM カーネルが、量子化 DNN の GEMM に与える性能向上はどの程度か?
  • RQ4どのようなワークロード環境(例:大規模な m、小規模な n)で BiQGEMM は XNOR や kGpu といった既存の量子化 GEMM 手法を上回るか?
  • RQ5BiQGEMM は、モデルの精度を維持したまま、計算複雑度をどの程度低減できるか?

主な発見

  • BiQGEMM は、1ビット量子化 DNN の行列乗算において、kGpu ベースラインに対して最大 30.42× の高速化を達成し、特に行列サイズが大きくバッチサイズが小さい場合に顕著である。
  • 性能向上は出力サイズ(m)が大きくなるほど、バッチサイズ(n)が小さくなるほど顕著になり、トランスフォーマー や LSTMs などの NLP モデルに特に効果的である。
  • XNOR ベースの手法ですら最適化されている状況でも、BiQGEMM はメモリバウンドな状況下で優れた性能を発揮する。
  • ルックアップテーブルを用いることで、低ビット量子化に起因する出力空間の制限が生じる場合でも、量子化行列乗算における重複計算が顕著に削減される。
  • 1回の命令で複数の非一様に量子化された重みへの同時アクセスを可能にすることで、メモリ帯域幅の利用効率が著しく向上し、データ転送のオーバーヘッドが削減される。
  • BiQGEMM はハードウェアの変更なしに、現代のボルツマンアーキテクチャ上で高い効率を発揮し、標準的な CPU や GPU への実装・展開が実用的である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。