XNNPACK is a highly optimized library of floating-point neural network inference operators for ARM, WebAssembly, and x86 platforms. XNNPACK is not intended for direct use by deep learning practitioners and researchers; instead it provides low-level performance primitives for accelerating high-level machine learning frameworks, such as TensorFlow Lite, TensorFlow.js, PyTorch, and MediaPipe.
XNNPACK implements the following neural network operators:
All operators in XNNPACK support NHWC layout, but additionally allow custom stride along the Channel dimension. Thus, operators can consume a subset of channels in the input tensor, and produce a subset of channels in the output tensor, providing a zero-cost Channel Split and Channel Concatenation operations.
The table below presents single-threaded performance of XNNPACK library on three generations of MobileNet models and three generations of Pixel phones.
Model | Pixel, ms | Pixel 2, ms | Pixel 3a, ms |
---|---|---|---|
FP32 MobileNet v1 1.0X | 82 | 86 | 88 |
FP32 MobileNet v2 1.0X | 49 | 53 | 55 |
FP32 MobileNet v3 Large | 39 | 42 | 44 |
FP32 MobileNet v3 Small | 12 | 14 | 14 |
The following table presents multi-threaded (using as many threads as there are big cores) performance of XNNPACK library on three generations of MobileNet models and three generations of Pixel phones.
Model | Pixel, ms | Pixel 2, ms | Pixel 3a, ms |
---|---|---|---|
FP32 MobileNet v1 1.0X | 43 | 27 | 46 |
FP32 MobileNet v2 1.0X | 26 | 18 | 28 |
FP32 MobileNet v3 Large | 22 | 16 | 24 |
FP32 MobileNet v3 Small | 7 | 6 | 8 |
Benchmarked on March 27, 2020 with end2end_bench --benchmark_min_time=5
on an Android/ARM64 build with Android NDK r21 (bazel build -c opt --config android_arm64 :end2end_bench
) and neural network models with randomized weights and inputs.
The table below presents multi-threaded performance of XNNPACK library on three generations of MobileNet models and three generations of Raspberry Pi boards.
Model | RPi Zero W (BCM2835), ms | RPi 2 (BCM2836), ms | RPi 3+ (BCM2837B0), ms | RPi 4 (BCM2711), ms | RPi 4 (BCM2711, ARM64), ms |
---|---|---|---|---|---|
FP32 MobileNet v1 1.0X | 3919 | 302 | 114 | 72 | 77 |
FP32 MobileNet v2 1.0X | 1987 | 191 | 79 | 41 | 46 |
FP32 MobileNet v3 Large | 1658 | 161 | 67 | 38 | 40 |
FP32 MobileNet v3 Small | 474 | 50 | 22 | 13 | 15 |
INT8 MobileNet v1 1.0X | 2589 | 128 | 46 | 29 | 24 |
INT8 MobileNet v2 1.0X | 1495 | 82 | 30 | 20 | 17 |
Benchmarked on Feb 8, 2022 with end2end-bench --benchmark_min_time=5
on a Raspbian Buster build with CMake (./scripts/build-local.sh
) and neural network models with randomized weights and inputs. INT8 inference was evaluated on per-channel quantization schema.
XNNPACK is a based on QNNPACK library. Over time its codebase diverged a lot, and XNNPACK API is no longer compatible with QNNPACK.
戏谑什么意思 | 40岁男人学什么乐器好 | 睚眦必报是什么意思 | 波子是什么车 | 经常早上肚子疼是什么原因 |
双龙戏珠是什么生肖 | 肺实变是什么意思 | 迂回战术什么意思 | 四个金读什么 | 5月10日什么星座 |
霜对什么 | 10月15号是什么星座的 | 扁桃体发炎吃什么食物好 | 迄今为止什么意思 | 大腿为什么会长妊娠纹 |
6月19什么星座 | 纳豆什么味道 | 电动车不充电是什么原因 | 手上月牙代表什么 | 120是什么电话 |
曹操是什么帝hcv9jop0ns9r.cn | 太阳绕着什么转hcv8jop2ns9r.cn | 细菌性阴道炎用什么药效果好hcv8jop5ns9r.cn | 新生儿嘴唇发紫是什么原因hcv9jop0ns2r.cn | g代表什么单位cl108k.com |
绿豆汤不能和什么一起吃hcv7jop5ns4r.cn | 治疗腱鞘炎用什么药效果好hcv9jop4ns1r.cn | 正月初十是什么星座hcv8jop5ns9r.cn | 晚上没有睡意什么原因hcv8jop6ns9r.cn | 小肠与什么相表里hcv9jop0ns0r.cn |
人为什么会做梦hcv9jop6ns0r.cn | 女生痛经有什么办法缓解fenrenren.com | 兰蔻适合什么年龄的人用hcv7jop9ns6r.cn | carrots是什么意思hcv9jop5ns5r.cn | 家里蟑螂多是什么原因hcv8jop5ns0r.cn |
两岁宝宝不开口说话是什么原因imcecn.com | cpu是什么意思hcv7jop9ns7r.cn | 孕吐什么时候结束hcv8jop6ns9r.cn | 女性血热吃什么好得快hcv8jop4ns9r.cn | 语什么心什么hcv9jop4ns6r.cn |