google/XNNPACK
High-efficiency floating-point neural network inference operators for mobile, server, and Web
解決する課題
XNNPACK は、特にモバイルやエッジデバイスを含む多種多様なハードウェアプラットフォームにおいて、高性能なニューラルネットワーク推論が求められる課題に応えます。AI モデルを効率的に実行するために必要な低レベルの数学プリミティブを提供し、ユーザーがアーキテクチャ固有のアセンブリコードを書く必要をなくします。
仕組み
低レベルのアクセラレーションライブラリとして機能し、2D 畳み込み、プーリング、各種活性化関数などの包括的なニューラルネットワーク演算子セットを実装しています。これらの演算子は ARM、x86、RISC‑V、WebAssembly といった特定の CPU アーキテクチャ向けに高度に最適化されています。研究者が直接使用するのではなく、TensorFlow Lite や PyTorch などの上位フレームワークに組み込まれ、実行速度を向上させます。
対象者
機械学習フレームワークやランタイムエンジンの開発者向けに設計されており、さまざまなハードウェアターゲットで推論性能を最適化したい方に適しています。
ハイライト
- 幅広いハードウェアサポート:ARM64、ARMv7、ARMv6、x86/x86‑64(AVX512 まで)、RISC‑V、WebAssembly、Hexagon に最適化。
- 豊富な演算子ライブラリ:グループ化/深さ方向分離畳み込み、双一次リサイズ、各種量子化/逆量子化変換など多数の操作をサポート。
- 柔軟なメモリレイアウト:NHWC レイアウトをサポートし、チャンネル次元にカスタムストライドを設定できるため、コストゼロでのチャンネル分割・結合が可能。
- フレームワーク統合:TensorFlow Lite、PyTorch Mobile、ONNX Runtime、MediaPipe など主要ツールの推論を加速。