[論文レビュー] MNN: A Universal and Efficient Inference Engine
MNNは、事前推論最適化、カーネルレベルのパフォーマンスチューニング、および軽量なバックエンド抽象化を活用して、多様なハードウェアで高い効率を達成する、モバイルデバイス向けに設計された汎用的で効率的なディープラーニング推論エンジンです。TVM や NCNN と比較して実世界のベンチマークで優れた性能を示し、バイナリの肥大化を最小限に抑え、500台以上のデバイスで平均推論時間90.2msを達成しています。
Deploying deep learning models on mobile devices draws more and more attention recently. However, designing an efficient inference engine on devices is under the great challenges of model compatibility, device diversity, and resource limitation. To deal with these challenges, we propose Mobile Neural Network (MNN), a universal and efficient inference engine tailored to mobile applications. In this paper, the contributions of MNN include: (1) presenting a mechanism called pre-inference that manages to conduct runtime optimization; (2)deliveringthorough kernel optimization on operators to achieve optimal computation performance; (3) introducing backend abstraction module which enables hybrid scheduling and keeps the engine lightweight. Extensive benchmark experiments demonstrate that MNN performs favorably against other popular lightweight deep learning frameworks. MNN is available to public at: https://github.com/alibaba/MNN.
研究の動機と目的
- モバイルディープラーニング推論におけるモデル互換性、デバイスの多様性、リソース制約の課題に対処すること。
- 低スペックおよび高スペックのモバイルデバイスを問わず高いパフォーマンスを維持し、バイナリのオーバーヘッドを最小限に抑える推論エンジンを設計すること。
- エッジデバイスへのディープラーニングモデルの効率的でスケーラブルなデプロイを可能にし、普遍性やパフォーマンスを損なわないこと。
- 自動チューニングや大規模な依存関係を必要とするフレームワークと比較して、デプロイの複雑さとランタイムのオーバーヘッドを低減すること。
提案手法
- ランタイムで最適な実行スキームを選択するためのオンラインコスト評価を実行する事前推論メカニズムを導入する。
- 改良されたアルゴリズムとデータレイアウトを用いた深層カーネル最適化により、畳み込みなどの一般的な演算を高速化する。
- CPU、GPU、NPUを統合したハイブリッドスケジューリングを可能にするバックエンド抽象化モジュールを採用し、コアエンジンの軽量化を実現する。
- TensorFlow、PyTorch、Caffe などの複数のモデルフォーマットと、ARM、Mali、Adreno などのハードウェアバックエンドを統一インターフェースでサポートする。
- モデル固有のコード生成を回避することで、TVM などの自動チューニングフレームワークと比較してデプロイのオーバーヘッドを低減する。
- バイナリの肥大化を最小限に抑え、モバイルアプリケーションに統合した際のサイズ増加がたったの400–600 KBにとどまる。
実験結果
リサーチクエスチョン
- RQ1マルチプルデバイス環境において、モデル互換性を損なわず、高いパフォーマンスを達成するモバイル推論エンジンはどのように実現できるか?
- RQ2オンラインコスト評価によるランタイム最適化は、静的または自動チューニングされたコード生成を上回るパフォーマンスを発揮できるか?
- RQ3コードの複雑性を増大させることなく、カーネルレベルの最適化が推論速度にどれほど寄与できるか?
- RQ4バックエンド抽象化は、最小限のフットプリントを維持しながら効率的なハイブリッドスケジューリングを可能にするか?
- RQ5一般用途向けの推論エンジンは、TVM のような専用で自動チューニングされたフレームワークと同等またはそれ以上のパフォーマンスを達成できるか?
主な発見
- MNNは500台以上の実際のモバイルデバイスで平均推論時間90.2msを達成し、優れた普遍性と安定性を示している。
- Huawei P20 Pro(Kirin 970)では、MNNのCPU推論時間はTVMと同等であり、一部のケースでは自動チューニング済みTVMの結果を上回っている。
- 事前推論メカニズムにより、最適なランタイム実行スキームが選択され、最適化されていない演算子によるパフォーマンスボトルネックが回避される。
- 自動チューニングフレームワークに比べて長いコンパイル時間がない—TVMではResNet-18の自動チューニングに30回の試行で4,500秒以上を要したが、MNNには同様のオーバーヘッドがない。
- MNNはモバイルアプリケーションに統合された際のバイナリサイズ増加が400–600 KBにとどまり、Eigen や OpenBLAS などの外部ライブラリに依存するフレームワークと比較して顕著に小さい。
- 1×7や7×1畳み込みなどの最適化されていない演算子によるパフォーマンス低下を回避する汎用的な最適化戦略のおかげで、MNNはInception-v3においてNCNNを上回っている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。