|
Snapdragon Neural Processing Engine SDK
Reference Guide
|
The Snapdragon Neural Processing Engine (SNPE) is a Qualcomm Snapdragon software accelerated runtime for the execution of deep neural networks. With SNPE, users can:

The basic SNPE workflow consists of only a few steps:
| Snapdragon Device | CPU | GPU | DSP | AIP |
|---|---|---|---|---|
| Qualcomm Snapdragon 855 | Yes | Yes | Yes (CDSP) | Yes (CDSP) |
| Qualcomm Snapdragon 845 | Yes | Yes | Yes (CDSP) | No |
| Qualcomm Snapdragon 710 | Yes | Yes | Yes (CDSP) | No |
| Qualcomm Snapdragon 630 | Yes | Yes | No | No |
| Qualcomm Snapdragon 625 | Yes | Yes | No | No |
| Qualcomm Snapdragon 605 | Yes | Yes | Yes (CDSP) | No |
| Qualcomm Snapdragon 450 | Yes | Yes | No | No |
$SNPE_ROOT refers to the base directory where the SDK is installed.
| SDK Asset | Type | Compiler | C++ STL | Description |
|---|---|---|---|---|
| android | lib | - | - | Android aar file used to include SNPE into your application |
| bin/x86_64-linux-clang | binary | clang3.4 | gnustl | x86 Linux binaries |
| bin/arm-android-clang6.0 | binary | clang6.0 | libc++ | ARM Android binaries |
| bin/aarch64-android-clang6.0 | binary | clang6.0 | libc++ | Aarch64 Android binaries |
| bin/arm-linux-gcc4.9sf | binary | gcc4.9 | gnustl | Arm Linux Soft Float binaries |
| bin/aarch64-linux-gcc4.9 | binary | gcc4.9 | gnustl | Aarch64 Linux binaries |
| bin/arm-oe-linux-gcc6.4hf | binary | gcc6.4 | gnustl | Arm Linux Hard Float binaries |
| bin/aarch64-oe-linux-gcc6.4 | binary | gcc6.4 | gnustl | Aarch64 Linux binaries |
| lib/x86_64-linux-clang | lib | clang3.4 | gnustl | x86 Linux libraries |
| lib/arm-android-clang6.0 | lib | clang6.0 | libc++ | ARM Android libraries |
| lib/aarch64-android-clang6.0 | lib | clang6.0 | libc++ | Aarch64 Android libraries |
| lib/dsp | lib | - | - | Hexagon DSP runtime libraries |
| lib/arm-linux-gcc4.9sf | lib | gcc4.9 | gnustl | ARM Linux Soft Float libraries |
| lib/aarch64-linux-gcc4.9 | lib | gcc4.9 | gnustl | Aarch64 Linux libraries |
| lib/arm-oe-linux-gcc6.4hf | lib | gcc6.4 | gnustl | ARM Linux Hard Float libraries |
| lib/aarch64-oe-linux-gcc6.4 | lib | gcc6.4 | gnustl | Aarch64 Linux libraries |
| lib/python | lib | - | - | SNPE python model tools modules |
| include/zdl/SNPE | include dir | - | - | SNPE SDK API header files |
| examples | examples dir | - | - | Source code sample applications in Native C++ and Android Java |
| doc | documents | - | - | User and reference API guide |
| benchmarks | scripts | - | - | Benchmark framework to gather runtime performance data on devices |
| models | resources | - | - | Example neural network models |
| File | Type | Details | Location |
|---|---|---|---|
| envsetup.sh | script | Script to setup various environment variables needed to run SDK tools and binaries | $SNPE_ROOT/bin |
| snpe-caffe-to-dlc | script | Script to convert a Caffe model to a DLC file | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-caffe2-to-dlc | script | Script to convert a Caffe2 model to a DLC file | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-onnx-to-dlc | script | Script to convert a ONNX model to a DLC file | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-tensorflow-to-dlc | script | Script to convert a TensorFlow model to a DLC file | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-dlc-quantize | executable | Used to quantize a DLC file using 8 bit quantization | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-diagview | executable | View SNPE timing output | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe-dlc-info | script | Script to print various DLC file information | $SNPE_ROOT/bin/x86_64-linux-clang |
| snpe_bench.py | script | Script to run DLC model on device and collect benchmark information | $SNPE_ROOT/benchmarks |
| snpe-net-run | executable | Example binary that can run a neural network | $SNPE_ROOT/bin/x86_64-linux-clang $SNPE_ROOT/bin/arm-android-clang6.0 $SNPE_ROOT/bin/aarch64-android-clang6.0 $SNPE_ROOT/bin/arm-linux-gcc4.9sf $SNPE_ROOT/bin/aarch64-linux-gcc4.9 $SNPE_ROOT/bin/aarch64-oe-linux-gcc6.4 $SNPE_ROOT/bin/arm-oe-linux-gcc6.4hf |
| libSNPE.so | library | SNPE runtime for host and device development | $SNPE_ROOT/lib/x86_64-linux-clang $SNPE_ROOT/lib/arm-android-clang6.0 $SNPE_ROOT/lib/aarch64-android-clang6.0 $SNPE_ROOT/lib/arm-linux-gcc4.9sf $SNPE_ROOT/lib/aarch64-linux-gcc4.9 $SNPE_ROOT/lib/aarch64-oe-linux-gcc6.4 $SNPE_ROOT/lib/arm-oe-linux-gcc6.4hf |
| libsymphony-cpu.so | library | Symphony CPU runtime library. | $SNPE_ROOT/lib/x86_64-linux-clang $SNPE_ROOT/lib/arm-linux-gcc4.9sf $SNPE_ROOT/lib/aarch64-linux-gcc4.9 $SNPE_ROOT/lib/aarch64-oe-linux-gcc6.4 $SNPE_ROOT/lib/arm-oe-linux-gcc6.4hf |
| libsymphony-cpu.so | library | Symphony CPU runtime library for Android. | $SNPE_ROOT/lib/arm-android-clang6.0 $SNPE_ROOT/lib/aarch64-android-clang6.0 |
| libsnpe_dsp_domains_v2.so | library | Library for Android DSP runtime loading from the /system partition, for non SDM 820 targets. | $SNPE_ROOT/lib/arm-android-clang6.0 $SNPE_ROOT/lib/aarch64-android-clang6.0 |
| libsnpe_dsp_v65_domains_v2_skel.so | library | Hexagon DSP runtime library for v65 targets. | $SNPE_ROOT/lib/dsp |
| libsnpe_dsp_v66_domains_v2_skel.so | library | Hexagon DSP runtime library for v66 targets. | $SNPE_ROOT/lib/dsp |
| libc++_shared.so | library | Shared STL library implementation. | $SNPE_ROOT/lib/arm-android-clang6.0 $SNPE_ROOT/lib/aarch64-android-clang6.0 |