# DSP Runtime Environment The DSP runtime is a dynamically loaded module, needed for using the AIP and DSP runtimes. This module is found in : - $SNPE\_ROOT/lib/hexagon-v65/unsigned/libSnpeDspV65Skel.so (for v65 targets) - $SNPE\_ROOT/lib/hexagon-v66/unsigned/libSnpeDspV66Skel.so (for v66 targets) - $SNPE\_ROOT/lib/hexagon-v68/unsigned/libSnpeHtpV68Skel.so (for v68 targets) - $SNPE\_ROOT/lib/hexagon-v69/unsigned/libSnpeHtpV69Skel.so (for v69 targets) - $SNPE\_ROOT/lib/hexagon-v73/unsigned/libSnpeHtpV73Skel.so (for v73 targets) This module runs on the ADSP or the CDSP or the HTP, depending on the target. Please refer to the Snapdragon Device Support Matrix table in the [Overview](https://docs.qualcomm.com/doc/80-63442-2/topic/overview.html) section to determine Qualcomm® Neural Processing SDK support of DSP on various Snapdragon devices. Qualcomm® Neural Processing SDK automatically detects the appropriate DSP. The DSP loader requires the environment variable ADSP\_LIBRARY\_PATH to be set to the directory where the shared libraries are stored. This environment variable is used for both ADSP and CDSP. For command line executables A typical setting of **ADSP\_LIBRARY\_PATH** looks like: export ADSP_LIBRARY_PATH=";/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp" Copy to clipboard Where **<path\_to\_dsp\_skel>** is the path where $SNPE\_ROOT/lib/hexagon-v65/unsigned/libSnpeDspV65Skel.so and/or other skel files have been pushed. Do not include the file name of the skel in the path. **Example:** Assuming the appropriate DSP skel has been pushed to /data/local/tmp/snpeexample/dsp/lib, then the following command for setting ADSP\_LIBRARY\_PATH would be used. export ADSP_LIBRARY_PATH="/data/local/tmp/snpeexample/dsp/lib;/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp" Copy to clipboard **Key points to note when setting the ADSP\_LIBRARY\_PATH:** Unlike LD\_LIBRARY\_PATH, the path must be contained within quotations. Additionally, unlike LD\_LIBRARY\_PATH, the directory separator is a semi-colon, not a colon. For Android and most embeded linux systems, the three paths below **MUST** be part of ADSP\_LIBRARY\_PATH. If any of these are missing the DSP runtime may fail. - /system/lib/rfsa/adsp - /system/vendor/lib/rfsa/adsp - /dsp For embeded linux automotive system, the following DSP paths are required. - /usr/lib/rfsa/adsp - /dsp For Android APKs ADSP\_LIBRARY\_PATH must be set for Android APKs as well, and it cannot be done using an “export” command. It must be done within code running in the APK. The Qualcomm® Neural Processing SDK Android Java APIs automatically sets the ADSP\_LIBRARY\_PATH. The supplied Qualcomm® Neural Processing SDK Java AAR library automatically sets up the DSP environment for your Android application. Android applications that do not use the Qualcomm® Neural Processing SDK Java AAR must set the ADSP\_LIBRARY\_PATH explicitly in native code. An example is provided below. bool SetAdspLibraryPath(std::string nativeLibPath) { std::stringstream path; path << nativeLibPath << ";/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp"; return setenv("ADSP_LIBRARY_PATH", path.str().c_str(), 1 /*override*/) == 0; } Copy to clipboard Assuming that the DSP loadable module is placed in the same location as libSNPE.so in the Android application, the “nativeLibPath” input passed to the above method should be the string returned by the the following Android API: application.getApplicationInfo().nativeLibraryDir Copy to clipboard Last Published: Oct 02, 2025 [Previous Topic PSNPE Android Tutorial](https://docs.qualcomm.com/bundle/publicresource/80-63442-2/topics/tutorial_psnpe_android_tutorial.md) [Next Topic Network Resizing](https://docs.qualcomm.com/bundle/publicresource/80-63442-2/topics/network_resize.md)