[論文レビュー] ShiftCNN: Generalized Low-Precision Architecture for Inference of Convolutional Neural Networks
ShiftCNNは、べき乗二重の重み表現と事前計算された畳み込み項を使用した、乗算なしの一般化低精度CNN推論アーキテクチャを導入し、計算量を劇的に削減する。ImageNetでの精度低下は最小限に、FPGAの電力削減は substantial。
In this paper we introduce ShiftCNN, a generalized low-precision architecture for inference of multiplierless convolutional neural networks (CNNs). ShiftCNN is based on a power-of-two weight representation and, as a result, performs only shift and addition operations. Furthermore, ShiftCNN substantially reduces computational cost of convolutional layers by precomputing convolution terms. Such an optimization can be applied to any CNN architecture with a relatively small codebook of weights and allows to decrease the number of product operations by at least two orders of magnitude. The proposed architecture targets custom inference accelerators and can be realized on FPGAs or ASICs. Extensive evaluation on ImageNet shows that the state-of-the-art CNNs can be converted without retraining into ShiftCNN with less than 1% drop in accuracy when the proposed quantization algorithm is employed. RTL simulations, targeting modern FPGAs, show that power consumption of convolutional layers is reduced by a factor of 4 compared to conventional 8-bit fixed-point architectures.
研究の動機と目的
- ハードウェア効率が高く、乗算を回避する低精度CNN推論フレームワークを動機づける。
- retrainingせずに、重みをべき乗のコードブックで表現する一般化量子化アルゴリズムを提案する。
- 畳み込み計算を事前計算戦略で大幅に削減する。
- ShiftCNNアーキテクチャ(ShiftALU)とシフト&加算畳み込みを実現するメモリ設計を設計する。
- ImageNetでの精度を評価し、FPGAの電力と複雑さへの影響を分析する。
提案手法
- 非均一なべき乗コードブックを用いて重みを量子化する(アルゴリズム1)ことで、CNコードブック内の成分を含む連結重み表現 參W_hatを得る。
- 畳み込み項のテンソルPを事前計算し、べき乗のシフト(ShiftALUはシフトと符号反転を実行)に置換する。
- 重みインデックスを用いて事前計算済みPを参照することで畳み込みを計算し、乗算をO(PCHW)の演算量に削減する。
- 入力チャネルの並列性を活用し、専用のPメモリバッファへの書き込み/読み出しを行うスケジューリングロジック(アルゴリズム2)を提供する。
- 二項/三値/高精度など、NとBの設定に対するアーキテクチャのバリエーションを提供し、スパース/圧縮モデルへの拡張を検討する。
実験結果
リサーチクエスチョン
- RQ1標準的なCNNで再訓練を伴わないべき乗重み表現への一般的な量子化が精度を維持できるか?
- RQ2畳み込み_TERMを事前計算することで、CNN推論の計算コストとエネルギー効率はどう変化するか?
- RQ3ShiftCNNベースの乗算なしアーキテクチャのFPGA/ASICの電力とリソース影響はどうなるか?
- RQ4N(項の数)とB(ビット幅)の異なる設定が、代表的なCNNで精度とハードウェア複雑さにどのように影響するか?
主な発見
- ShiftCNNのバリエーションは、ImageNetにおいてTop-1精度の低下が1%未満となるモデルが複数、B=4かつN>2で達成。
- N=2, B=4の場合の精度低下は約1%程度(例:ResNet-50: 0.67% Top-1損失; GoogleNet: 0.39% Top-1損失)。
- 畳み込み層の演算は、Pの事前計算項の数を決定し、畳み込み計算をC̃HfWf/P程度の因数減少で実現できる。SqueezeNetで260x、GoogleNetで687x、ResNet-18で1090xといった大幅な速度向上を観測。
- FPGA RTLシミュレーションでは、ShiftCNNは8ビット固定小数乗算器より約2.5倍のリソース削減と約4倍のダイナミック電力削減を示す。加算木の75%が電力を占めており、乗算無しハードウェアの大幅な利点を示唆。
- ShiftCNNは、バイナリ/三値、または高精度な重み表現を取り込める柔軟なコードブックを実現し、精度と複雑さのトレードオフを可能にする。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。