Forums - Missing dependency on Snapdragon 8 Gen 1 Phone

6 posts / 0 new
Last post
Missing dependency on Snapdragon 8 Gen 1 Phone
jason2
Join Date: 17 Aug 21
Posts: 14
Posted: Thu, 2022-09-01 14:57

Hi,

I have been testing the SNPE SDK via snpe-net-run and snpe_bench.py on my Snapdragon 865 phone.  DLC files are running on all of the cpu, gpu, dsp, and aip without issue.  I recently procured a Snapdragon 8 Gen 1 SoC (ASUS ROG Phone 6), and am able to run DLC files on the cpu and gpu.  However, when I try to run on dsp or aip with

$ snpe-net-run  --container model.dlc --input_list target_raw_list.txt < --use_dsp or --use_aip>

I get the following error:

SNPEFactory error 908: Missing SNPE DSP dependent libraries: libcdsprpc_system.so.
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=519546168568
DspTransport.openSession qnn_open failed, 0x00000072
IDspTransport: Unknown rpc status 0x00000072
DspTransport failed,cannot open session, error 0xffffffff
SNPEFactory error 1200: QnnBackend_initialize failed: 1
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=1200; error_message=libstd error. QnnBackend_initialize failed: 1; error_component=Dependent library; line_no=537; thread_id=519546168568
error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=519546168568
Normally, when I see this error while testing on the 865 chipset, it means I forgot to run 
$ export ADSP_LIBRARY_PATH="/data/local/tmp/snpeexample/dsp/lib;/system/lib/rfsa/adsp;/system/vendor/lib/rfsa/adsp;/dsp"
and that would fix the issue.  However, on this Snapdragon 8 Gen 1 platform, running that command does not fix the issue or cause any noticeable change in behavior.  I'm not sure where "libcdsprpc_system.so" is supposed to be, and I have not found that file on either of my 865 platform or my 8Gen1 platform.  Is there another path I should be passing to ADSP_LIBRARY_PATH, or is something else going wrong?  Does the Snapdragon 8 Gen 1 work with SNPE?  ( I am working with SNPE 1.64)
 
Thanks,
Jason
 
  • Up0
  • Down0
weihuan
Join Date: 12 Apr 20
Posts: 270
Posted: Sun, 2022-09-04 06:12

Dear customer,

Regarding the 8 Gen1 which is SM8450 internal, you need to specific with option of "--htp_socs  'sm8450'" to quantization steps.

BR.

Wei

  • Up0
  • Down0
jason2
Join Date: 17 Aug 21
Posts: 14
Posted: Sun, 2022-09-04 20:57

Hi Weihuan,

Thank you for your response.  I followed your instruction but am still getting the same errors as previously.  I added that option as you specified:

snpe-dlc-quantize --input_dlc dlc/resnet152.dlc --input_list data/cropped/raw_list.txt --enable_htp --htp_socs 'sm8450'

I did not see any errors in the output, and quantization seemed to be successful, because the tool printed

"[INFO] SNPE HTP Offline Prepare: Done creating QNN HTP graph cache.

[INFO] Successfully compiled HTP metadata into DLC."

Next, on target I ran
$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt
and
$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt --use_gpu
both of which ran without errors.  However, here is the output of running with --use_dsp and --use_aip:
 
$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt --use_dsp
"DspTransport.openSession qnn_open failed, 0x00000072
IDspTransport: Unknown rpc status 0x00000072
DspTransport failed,cannot open session, error 0xffffffff
SNPEFactory error 1200: QnnBackend_initialize failed: 1
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=1200; error_message=libstd error. QnnBackend_initialize failed: 1; error_component=Dependent library; line_no=537; thread_id=505929250040
DspTransport.openSession qnn_open failed, 0x00000072
IDspTransport: Unknown rpc status 0x00000072
DspTransport failed,cannot open session, error 0xffffffff
error_code=1200; error_message=libstd error. QnnBackend_initialize failed: 1; error_component=Dependent library; line_no=537; thread_id=505929250040"
 
$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt --use_aip
"SNPEFactory error 908: Missing SNPE DSP dependent libraries: libcdsprpc_system.so.
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=503152080120
DspTransport.openSession qnn_open failed, 0x00000072
IDspTransport: Unknown rpc status 0x00000072
DspTransport failed,cannot open session, error 0xffffffff
SNPEFactory error 1200: QnnBackend_initialize failed: 1
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=1200; error_message=libstd error. QnnBackend_initialize failed: 1; error_component=Dependent library; line_no=537; thread_id=503152080120
error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=503152080120"
 
Do you have any other ideas what I may be doing wrong?  Or it is possible that this platform simply isn't supported?  (Again the specs are ASUS ROG Phone 6, Android 12, Snapdragon 8 Gen 1 chipset.)
 
Thanks for your time,
Jason
  • Up0
  • Down0
jason2
Join Date: 17 Aug 21
Posts: 14
Posted: Sun, 2022-09-04 21:28

Hello,

I wanted to follow up because I actually did get the dsp runtime (but not the aip runtime) working.  It appears the issue is that Android 12 requires snpe-net-run to use the unsigned PD when running on the dsp.  So the command

$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt --use_dsp --platform_options 'unsignedPD:ON'

ran without error.  However, when I ran tried to run the same command for the aip:

$ snpe-net-run --container resnet152_quantized.dlc --input_list target_raw_list.txt --use_aip --platform_options 'unsignedPD:ON'

I received the following error:

"PlatformOptions (unsignedPD:ON) set successful config option is valid

SNPEFactory error 908: Missing SNPE DSP dependent libraries: libcdsprpc_system.so.
The selected runtime is not available on this platform. Continue anyway to observe the failure at network creation time.
error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=543798592760

error_code=908; error_message=DSP runtime communication error. Missing SNPE DSP dependent libraries: libcdsprpc_system.so.; error_component=DSP Runtime; line_no=1200; thread_id=543798592760"

It seems this platform cannot find "libcdsprpc_system.so".  How can I fix this issue?

 

Thanks,

Jason

  • Up0
  • Down0
weihuan
Join Date: 12 Apr 20
Posts: 270
Posted: Sat, 2022-09-17 23:23

Dear developer,

The 888 platform don't support AIP runtime anymore, you can't run with specitifc _use_aip. Regarding your implementation commands, snpe-dlc-quantize --input_dlc dlc/resnet152.dlc --input_list data/cropped/raw_list.txt --enable_htp --htp_socs 'sm8450' you need to add the option of

--platform_options 'unsignedPD:ON'.

BR.

Wei 

  • Up0
  • Down0
jason2
Join Date: 17 Aug 21
Posts: 14
Posted: Mon, 2022-09-19 08:47

Thanks your your response.  So to confirm my understanding, the 888 platform and later platforms (such as the 8 Gen 1 that I am currently using) only support the DSP and not that AIP?  I thought using the AIP would lead to the best perforance speedup.  Is that not the case?   Are there plans to eventually support the AIP again in the future, or should I just expect to run with the DSP runtime only?  My understanding is that if I only run my models using the DSP runtime, I will only be able to use the HTP accceleration, but I won't be able to use the HTA acceleration.   Is my understanding correct?

Thanks,

Jason

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.