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 等主要工具提供推理加速。