Skip to main content
QUICK REVIEW

[論文レビュー] daBNN: A Super Fast Inference Framework for Binary Neural Networks on ARM devices

Jianhao Zhang, Yingwei Pan|arXiv (Cornell University)|Aug 16, 2019
Advanced Neural Network Applications被引用数 10
ひとこと要約

daBNN は、ARM デバイスにおけるバイナリニューラルネットワーク(BNN)の推論を高度に最適化したオープンソースのフレームワークであり、C++ および ARM アセンブリを用いたカスタム ビットパッキング、バイナリ直接畳み込み、メモリレイアウト最適化を活用している。単一のバイナリ畳み込みにおいて、BMXNet より 7×–23×、TensorFlow Lite より 8×–10× 速く、アーキテクチャの改善により Bi-Real Net 18 で 30% の高速化を達成している。これは、その高い効率性のおかげで可能になったものである。

ABSTRACT

It is always well believed that Binary Neural Networks (BNNs) could drastically accelerate the inference efficiency by replacing the arithmetic operations in float-valued Deep Neural Networks (DNNs) with bit-wise operations. Nevertheless, there has not been open-source implementation in support of this idea on low-end ARM devices (e.g., mobile phones and embedded devices). In this work, we propose daBNN --- a super fast inference framework that implements BNNs on ARM devices. Several speed-up and memory refinement strategies for bit-packing, binarized convolution, and memory layout are uniquely devised to enhance inference efficiency. Compared to the recent open-source BNN inference framework, BMXNet, our daBNN is $7\ imes$$\\sim$$23\ imes$ faster on a single binary convolution, and about $6\ imes$ faster on Bi-Real Net 18 (a BNN variant of ResNet-18). The daBNN is a BSD-licensed inference framework, and its source code, sample projects and pre-trained models are available on-line: https://github.com/JDAI-CV/dabnn.

研究の動機と目的

  • 低価格の ARM デバイス(スマートフォンや組み込みシステムなど)における高速でオープンソースの BNN 推論フレームワークの不足に対処すること。
  • ARM におけるフルプレシジョン推論よりも遅い既存の BNN フレームワーク(例:BMXNet)の性能ボトルネックを克服すること。
  • 高速でオープンソースの推論バックエンドを提供することで、BNN の効率的なデプロイとアーキテクチャ探索を可能にすること。
  • 手動で最適化されたアセンブリおよび SIMD 指令を用いて、ARM CPU 専用にビットパッキング、バイナリ畳み込み、メモリアクセスパターンを最適化すること。
  • ONNX から daBNN 形式へのモデル変換をサポートすることで、カスタム演算子を必要とせず、フレームワーク間での BNN デプロイを可能にすること。

提案手法

  • 32ビット整数の符号ビットと SIMD 右シフト・オーバーライト命令を活用し、複数の 1 ビット要素を同時にパックするアップグレードされたビットパッキング方式を提案。これは、単純な逐次パッキングに比べて遅延を約 4× 減少させる。
  • BGEMM における不要な 'addv' 指令を排除するための 'バイナリ直接畳み込み' を導入。XNOR および popcount 操作を直接用いてバイナリ内積を計算する。
  • バイナリテンソルのためのデータローカリティとアライメントを向上させることで、メモリアクセスのオーバーヘッドを低減する、新しいメモリレイアウトを採用。
  • コア演算子を C++ で実装し、手動で最適化された ARM アセンブリを用い、Java バインディングおよび Android パッケージングによりモバイルデプロイを実現。
  • バイナリテンソルを Sign 演算子で検出し、ONNX モデルを daBNN 形式に変換する、onnx2bnn と呼ばれるモデル変換ツールを開発。
  • 畳み込みとバッチノーマライゼーションの統合されたバイナリ化レイヤーをサポートし、フレームワーク固有のカスタムレイヤーを避けることで、標準 ONNX 演算子のみに依存し、相互運用性を確保。

実験結果

リサーチクエスチョン

  • RQ1高度に最適化されたオープンソースの BNN 推論フレームワークは、低価格の ARM デバイスで超高速な推論を達成できるか?
  • RQ2符号ビットと SIMD 指令を用いた最適化されたビットパッキングは、単純な逐次パッキングに比べて、BNN 推論速度をどのように向上させるか?
  • RQ3バイナリ直接畳み込みは、'addv' 指令を含む従来の BGEMM 実装を上回る性能を発揮できるか?
  • RQ4高性能バックエンドを用いる場合、アーキテクチャの変更(例:7×7 畳み込みの置き換え)が、BNN 推論速度にどの程度の影響を与えるか?
  • RQ5高速な推論フレームワークは、遅いバックエンドでは実現不可能な、新しい効率的な BNN デザインの実現を可能にするか?

主な発見

  • daBNN は、BMXNet よりも単一のバイナリ畳み込みにおいて 7×–23× 速く、BMXNet は唯一のオープンソース BNN フレームワークであるにもかかわらず、その高速性を実証している。
  • daBNN は、単一のバイナリ畳み込みにおいて、フルプレシジョンの TensorFlow Lite よりも 8×–10× 速く、ARM デバイス上での BNN がフルプレシジョンモデルを上回る速度性能を発揮できることを示している。
  • Bi-Real Net 18 では、daBNN は BMXNet より約 6× 速く、TensorFlow Lite よりも 3× 速く、実世界の BNN における優位性を確認している。
  • Bi-Real Net 18 の最初の 7×7 畳み込みを STEM モジュールに置き換えることで、Google Pixel 1 で 30% の高速化が達成されたが、これは daBNN の高い効率性のおかげで実現可能だった。
  • onnx2bnn 変換ツールにより、TensorFlow や PyTorch で学習した BNN を、カスタム演算子に依存せず、daBNN へシームレスにデプロイできるようになった。
  • daBNN のオープンソースの BSD ライセンス、事前ビルド済みバイナリ、Android サンプルプロジェクトにより、産業分野でのデプロイおよび学術研究の障壁が低下した。

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

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

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

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