Skip to main content
QUICK REVIEW

[論文レビュー] High performance ultra-low-precision convolutions on mobile devices

Andrew Tulloch, Yangqing Jia|arXiv (Cornell University)|Dec 6, 2017
Advancements in PLL and VCO Technologies参考文献 2被引用数 19
ひとこと要約

本稿では、モバイルARMv7 CPU向けに、超高精度(4ビット未塔)の畳み込みカーネルのオープンソースで高最適化された実装を提示する。XORおよびPOPCNT命令を用いたビット単位の演算により、バイナリ内積を高速化している。Cortex-A53やCortex-A7といった低性能デバイスにおいて、最先端のfloat32およびint8ベースラインと比較して4倍〜20倍の高速化を達成しており、リアルタイムのモバイルビジョンワークロードにおける実用的妥当性を示している。

ABSTRACT

Many applications of mobile deep learning, especially real-time computer vision workloads, are constrained by computation power. This is particularly true for workloads running on older consumer phones, where a typical device might be powered by a single- or dual-core ARMv7 CPU. We provide an open-source implementation and a comprehensive analysis of (to our knowledge) the state of the art ultra-low-precision (<4 bit precision) implementation of the core primitives required for modern deep learning workloads on ARMv7 devices, and demonstrate speedups of 4x-20x over our additional state-of-the-art float32 and int8 baselines.

研究の動機と目的

  • モバイルCPUにおける超高精度ディープラーニングの未解明な計算的・実装的課題に取り組む。
  • 計算リソースが限られた低性能モバイルデバイスにおいて、リアルタイムのコンピュータビジョン処理を高速に実行可能にする。
  • 多様なハードウェア、モデルアーキテクチャ、ベースライン実装をカバーする、公平で包括的な超高精度モデルの性能評価を実施する。
  • ARMv7およびAVX2アーキテクチャを対象とした、超高精度ニューラルネットワーク向けの高効率ランタイムの開発とオープンソース化を実施する。
  • 超高精度モデルが、高度に最適化されたカーネルと適切なトレーニング技術を組み合わせることで、顕著な性能向上を達成できることを実証する。

提案手法

  • ARMv7のXORおよびPOPCNT命令を活用し、バイナリ内積のマイクロカーネルを実装することで、低精度ベクトルのドット積を効率的に計算する。
  • 各ビット深度を別々のバイナリベクトルとして格納するパックドビットレイアウト表現を採用し、効率的なSIMD処理を可能にする。
  • レジスタブロッキングおよびL1キャッシュブロッキングなどの標準的な最適化技術を適用し、データ局所性を最大化し、メモリ帯域幅の圧力を軽減する。
  • 低レベルの詳細を抽象化するBLISスタイルのソフトウェアスタックにマイクロカーネルを統合し、異なるアーキテクチャ間での再利用を可能にする。
  • 1×1および3×3畳み込みの両方の最適化を実施し、事前計算されたフィルタ重みを用いたWinograd型変換と、オプションのFP16中間保存を組み合わせることで、メモリ帯域幅を削減する。
  • HWGQ量子化およびビットデイの再訓練といった高度なトレーニング技術を活用し、1〜3ビットへの過酷な量子化後でもモデルの精度を維持する。

実験結果

リサーチクエスチョン

  • RQ1低性能ARMv7モバイルCPU上で、float32およびint8ベースラインと比較して、超高精度(4ビット未塔)畳み込みが顕著な性能向上を達成できるか?
  • RQ2ハードウェアのマイクロアーキテクチャ(例:Cortex-A53対Cortex-A7)が、超高精度カーネルの性能優位性に与える影響は何か?
  • RQ3ARMv7上でバイナリ内積の性能を理論ピークに近づけるために、最も効果的な実装技術は何か?
  • RQ4重みと活性化を1〜2ビットにまで極端に量子化しても、モデルの精度を損なわずに実用的に行える範囲はどの程度か?
  • RQ5異なるベースライン実装(float32、int8)が、モバイルデバイス上での超高精度推論の実感される利点に与える影響は何か?

主な発見

  • 提案された超高精度畳み込みカーネルは、ARMv7デバイス上でfloat32ベースラインと比較して最大20倍、int8ベースラインと比較して4倍の高速化を達成した。
  • 1.4GHzのCortex-A53では、マイクロベンチマークにおいてピーク理論性能のおよそ75%に達した。
  • 3×3および1×1畳み込みにおいて、特定のレイヤー構成でCortex-A53では9.5倍、Cortex-A7では11倍の性能向上が観察された。
  • 事前計算されたWinograd変換フィルタとオプションのFP16中間保存を活用することで、標準のGEMMLOWPベースラインと比較して最大2.5倍の性能向上が得られた。
  • 一部のケースでは、先行するオープンソースのARMv7実装を10倍以上上回り、幾何平均で3.7倍の高速化を達成した。
  • HWGQ量子化およびビットデイ再訓練といった高度なトレーニング技術を用いることで、2ビットの活性化と1ビットの重みでも高い精度を維持でき、超高精度モデルが実世界の展開に実用的であることが示された。

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

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

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

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