Hello,
I try to run the snpe_sample compiled on my computer with the SSD but I get that error:
Starting program: /home/xavier/Desktop/developpement/snpe-1.13.0/examples/NativeCpp/SampleCode/obj/local/x86_64-linux-clang/snpe-sample -b ITENSOR -d /home/xavier/Desktop/developpement/snpe-1.13.0/mobilenet_ssd.dlc -i /home/xavier/Desktop/developpement/snpe-1.13.0/models/SSD/data/cropped/raw_list.txt -o /home/xavier/Desktop/developpement/snpe-1.13.0/examples/NativeCpp/SampleCode/output/[Thread debugging using libthread_db enabled]Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".[New Thread 0x7ffff58af700 (LWP 18416)][New Thread 0x7fffeffff700 (LWP 18417)][New Thread 0x7ffff50ae700 (LWP 18418)][New Thread 0x7ffff48ad700 (LWP 18419)]SNPE Version: 1.13.0.0Thread 1 "snpe-sample" received signal SIGSEGV, Segmentation fault.__memcpy_avx_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S:100100 ../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S: No such file or directory.
But even in debug mode I don't have many debug info. The dlc model works properly with the executable snpe-run-net so I don't think it comes from the model file.
More information from the ldd command:
ldd ./obj/local/x86_64-linux-clang/snpe-samplelinux-vdso.so.1 => (0x00007fff4f5d4000)libSNPE.so => /home/xavier/Desktop/developpement/snpe-1.13.0/lib/x86_64-linux-clang/libSNPE.so (0x00007fa03207c000)libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa031cfa000)libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa031ae4000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa03171a000)libsymphony-cpu.so => /home/xavier/Desktop/developpement/snpe-1.13.0/lib/x86_64-linux-clang/libsymphony-cpu.so (0x00007fa030c21000)libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007fa030a19000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa030815000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa0305f8000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa0302ef000)/lib64/ld-linux-x86-64.so.2 (0x00007fa03260e000)librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa0300e7000)
I also try to use the model on my qualcomm 820. The CPU mode works properly but the gpu and the DSP crash:
Just to update in case people are interested in the post.
I forget to set the ADSP_LIBRARY_PATH
Now I get that error, the network don't seems to be runnable:
Just to summury:
In CPU : OK
-> time with DLC model ~ 1100s
->time with tensorflow model and API 300ms
In GPU :
In DSP
Can someone from Qualcomm help me?
MobilenetSSD is not supported on DSP.
Some of the layers are not supported on GPU. You need to enable the CPU fallback feature. When you do this, layers that can run on GPU will stay on GPU, while the unsupported ones will run on CPU instead. Run snpe-net-run -h to find out how to enable it. If you are writing your own app, it's also described in the API documentation.
Thank you for the answer. In the SNPEDiag file I get that information:
Those times are documented in the SNPE user's guide, in the benchmarking chapter.
Yes, Total Inference time includes forward propagate.
Hi xavier12358,
Can you provide some feedback on the performance using the 820 chip?
Is it able to process image frames in SSD fast enough to develop on?
Is it faster with the DLC format and SDK? You mention some numbers which make it look slower than with normal TF but were they on your desktop or the 820 chip?
Just wondering what kind of performance improvement the NPE SDK is providing to the SSD model, and in particular on that cheaper 820 chip?
Hello madhavajay,
On my Snapdragon 820 64 bit:
On tensorflow time to process images is 400ms up to 600ms
On CPU with SNPE time to process images is 1100 ms
On CPU/GPU with SNPE time to process images is approximatly 77ms
On DSP, the SSD model is not compatible.
I hopes this answer your questions.
Hi,
Yes that does thank you!
So it appears that with GPU support the device is quite fast however it doesnt have the DSP that the 845 has.
I have asked in another thread but not heard if theres any guarantee of support for NNAPI and TensoFlow Lite, but the device itself can handle the SSD network quite well.
Hi xavier12358,
I finally got my sNPE demo running on the LG G6 (821 Qualcomm) Android 7.0.
I have tested the snpe-net-run tool on the device and the DSP demo for inceptionv3 works so the device has DSP drivers so im sure it also does the GPU accell too right?
However the performance of the SSD after conversion using the DLC tool, (i have used 1.13.0 and 1.14.1 SDKs both for the aar file and the conversion with no difference) is still really bad. The CPU is about 750ms and the GPU is about 500ms.
Its basically the same as the normal TensorFlow SSD MobileNet v1 pb demo.
What did you do to get your amazing performance?
Can you say what hardware and what version of the SDK you used and if there are any special steps or configuration options to get this:
You said you got:
On CPU/GPU with SNPE time to process images is approximatly 77ms
I want that performance. :)
In fact I don't try the SDK integration, I just test the snpe-net-run binary in the SDK folder:
When I execute the binary file, it generates me the results and a log file. In the log file, you can get the execution time per process.
Hi xavier12358,
Can you comment on what hardware EXACTLY this was tested on?
If I can replicate your results then I can get the performance I need for a specific project.
Thanks!