Skip to main content
QUICK REVIEW

[論文レビュー] LUTNet: Rethinking Inference in FPGA Soft Logic

Erwei Wang, James J. Davis|arXiv (Cornell University)|Apr 1, 2019
Advanced Neural Network Applications参考文献 21被引用数 8
ひとこと要約

LUTNetは、バイナリゼートニューラルネットワーク(BNNs)におけるXNORゲートを、設定可能なK-LUTに置き換えることで、FPGAベースのニューラルネットワーク推論フレームワークを提案する。これにより、LUTの全布尔論理機能を活用できる。スパースなネットワークを訓練することで、各K-LUTが任意のブール関数を実装するようにし、最先端のBNNと比較して最大2.08倍の面積効率および最大6.66倍のエネルギー効率を達成したが、精度の損失は最小限に抑えられた。

ABSTRACT

Research has shown that deep neural networks contain significant redundancy, and that high classification accuracies can be achieved even when weights and activations are quantised down to binary values. Network binarisation on FPGAs greatly increases area efficiency by replacing resource-hungry multipliers with lightweight XNOR gates. However, an FPGA's fundamental building block, the K-LUT, is capable of implementing far more than an XNOR: it can perform any K-input Boolean operation. Inspired by this observation, we propose LUTNet, an end-to-end hardware-software framework for the construction of area-efficient FPGA-based neural network accelerators using the native LUTs as inference operators. We demonstrate that the exploitation of LUT flexibility allows for far heavier pruning than possible in prior works, resulting in significant area savings while achieving comparable accuracy. Against the state-of-the-art binarised neural network implementation, we achieve twice the area efficiency for several standard network models when inferencing popular datasets. We also demonstrate that even greater energy efficiency improvements are obtainable.

研究の動機と目的

  • FPGAのLUTが、それらが任意のK入力ブール関数を計算できるにもかかわらず、従来のBNNでは単にXNORゲートとしてのみ利用されているという、リソースの未利用化を是正する。
  • K-LUTの非線形性および表現力の全機能を活用することで、BNNの面積およびエネルギー効率の限界を克服する。
  • スパースでK-LUTに基づくネットワークが、高い精度を維持しながらハードウェアリソースの使用を著しく削減できるよう、トレーニング方式を開発する。
  • K-LUTがDNNにおけるネイティブな推論演算子として機能できることを実証し、FPGA上での論理密度の向上とハードウェア効率の改善を実現する。

提案手法

  • BNN内の各XNORゲートを、K個のバイナリ入力に対して任意のブール関数を計算するK-LUTに置き換え、LUTの柔軟性を最大限に活用する。
  • 複数のLUT間で入力を再利用することで、推論項の数˜N ≪ Nを削減するネットワークプルーニング戦略を導入し、ポップカウントツリーのサイズを最小限に抑える。
  • ネットワーク重みを直接LUTマスクにエンコードすることで、外部の重みストレージの必要性を排除し、リソースのオーバーヘッドを低減する。
  • 三値またはそれ以上のレベルの重み表現をサポートする修正されたバックプロパゲーション手法を用いてネットワークをトレーニングし、細かく制御されたプルーニングと関数学習を可能にする。
  • 各K-LUTを1つのFPGA LUTブロックにマッピングすることで、マルチプライヤーや複雑なアドダーツリーを必要とせず、直接ハードウェアインスタンス化が可能になる。
  • K-LUTの出力に対してポップカウント(popcount)操作を適用し、結果の和算を効率的に行い、バランスの取れたアドダーツリーと比較してLUT使用量を削減する。

実験結果

リサーチクエスチョン

  • RQ1FPGAのK-LUTをDNNにおけるネイティブな推論演算子として使用できるか。XNORベースのBNNと比較して、論理密度を高められるか。
  • RQ2LUTに実装された任意のK入力ブール関数に置き換えたXNORゲートにおいて、ネットワークプルーニングをどの程度活用できるか。
  • RQ3K-LUTのサイズ(K)とFPGAベースDNN推論におけるハードウェア効率(面積およびエネルギー)のトレードオフはどのようなものか。
  • RQ4提案されたトレーニング方式は、高精度でスパースなネットワークを、LUTベースの推論演算子に効率的にマッピング可能にするか。
  • RQ5LUTNetは、精度を犠牲にすることなく、最先端のBNNと比較して顕著に優れた面積およびエネルギー効率を達成できるか。

主な発見

  • LUTNetは、CIFAR-10のCNVおよびImageNetのAlexNetにおいて、最先端のBNN(ReBNet)と比較して平均で1.81倍の面積削減を達成し、最大2.08倍の面積効率向上を示した。
  • LUT使用量の削減と効率的なポップカウントベースの和算により、先行するBNN研究と比較して最大6.66倍のエネルギー効率向上が実証された。
  • 4-LUTNetの実装は、すべての評価対象モデルおよびデータセットで、元のBNNと±0.300パーセンテージポイント以内の精度を維持した。
  • 4-LUTNetから7-LUTNetへの実装変更において、トレーニング時間はほぼ一定であった(最大16倍の重み増加に対しても)。これは、GPUメモリ転送がボトルネックとなっており、計算量に依存しないことを示している。
  • K-LUTの使用により、XNORベースのBNNと比較して著しく高い論理密度が達成されたが、K > 2では関数表現の制約により効果の減少が観察された。
  • 6-LUTNetでは過学習が観察された。今後の研究では、トレーニング中にK-LUTの表現力の動的制御を導入することで、容量と一般化性能のバランスを取ることが推奨される。

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

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

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

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