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=519546168568DspTransport.openSession qnn_open failed, 0x00000072IDspTransport: Unknown rpc status 0x00000072DspTransport failed,cannot open session, error 0xffffffffSNPEFactory error 1200: QnnBackend_initialize failed: 1The 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=519546168568error_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
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
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."
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
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
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
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