XNNPACK: クロスプラットフォーム推論向けに最適化されたニューラルネットワーク・プリミティブを提供する低レベル加速ライブラリ
XNNPACK: クロスプラットフォーム推論向けに最適化されたニューラルネットワーク・プリミティブを提供する低レベル加速ライブラリ
解決する課題
XNNPACKは、多種多様なハードウェアプラットフォーム、特にモバイルおよびエッジデバイスにおける高性能なニューラルネットワーク推論のニーズに対応します。ユーザーがアーキテクチャ固有のアセンブリコードを記述することなく、AIモデルを効率的に実行するために必要な低レベルの数学的プリミティブを提供します。
仕組み
これは、包括的なニューラルネットワーク・オペレーター(2D convolutions、pooling、および様々なactivation functionsなど)のセットを実装する低レベル加速ライブラリとして機能します。これらのオペレーターは、ARM、x86、RISC-V、およびWebAssemblyを含む特定のCPUアーキテクチャ向けに高度に最適化されています。研究者が直接使用するのではなく、TensorFlow LiteやPyTorchのような高レベルフレームワークに統合され、その実行を高速化します。
対象ユーザー
多様なハードウェアターゲットにわたって推論パフォーマンスを最適化する必要がある、機械学習フレームワークおよびランタイムエンジンの開発者向けに設計されています。
ハイライト
- 幅広いハードウェアサポート: ARM64、ARMv7、ARMv6、x86/x86-64 (up to AVX512)、RISC-V、WebAssembly、およびHexagon向けに最適化されています。
- 広範なオペレーターライブラリ: grouped/depthwise convolutions、bilinear resize、および様々なquantization/dequantization convertsを含む、膨大な数の操作をサポートしています。
- 柔軟なメモリレイアウト: ゼロコストでのチャネル分割および結合を実現するため、チャネル次元に沿ったカスタムストライドを持つNHWCレイアウトをサポートしています。
- フレームワーク統合: TensorFlow Lite、PyTorch Mobile、ONNX Runtime、およびMediaPipeなどの主要なツールにおける推論を支えています。
Sources
- undefinedgoogle/XNNPACK