google/XNNPACK
High-efficiency floating-point neural network inference operators for mobile, server, and Web
它解決了什麼問題
XNNPACK 針對各種硬體平台(尤其是行動與邊緣裝置)對高效能神經網路推論的需求提供解決方案。它提供執行 AI 模型所需的低階數學基元,讓使用者不必自行撰寫特定架構的組合語言程式。
它如何運作
它作為一個低階加速函式庫,實作完整的神經網路運算子集合(例如 2D 捲積、池化以及各種激活函數)。這些運算子針對特定 CPU 架構(包括 ARM、x86、RISC‑V 與 WebAssembly)進行高度優化。它不直接供研究人員使用,而是被整合進 TensorFlow Lite、PyTorch 等高階框架,以提升執行速度。
目標對象
此函式庫設計給機器學習框架與執行引擎的開發者,協助他們在多樣化的硬體目標上最佳化推論效能。
重點特色
- 廣泛的硬體支援:最佳化支援 ARM64、ARMv7、ARMv6、x86/x86‑64(最高至 AVX512)、RISC‑V、WebAssembly 與 Hexagon。
- 豐富的運算子庫:支援大量運算,包括分組/深度可分離捲積、雙線性縮放以及各種量化/反量化轉換。
- 彈性的記憶體布局:支援 NHWC 佈局,並可在通道維度上使用自訂 stride,實現零成本的通道切分與串接。
- 框架整合:為 TensorFlow Lite、PyTorch Mobile、ONNX Runtime 與 MediaPipe 等主要工具提供推論加速。