Forums - Benchmarking non- Android target

3 posts / 0 new
Last post
Benchmarking non- Android target
sharvin.vittappan0
Join Date: 25 May 18
Posts: 2
Posted: Fri, 2018-06-08 04:13

Hi,

I am trying to run benchmarking in a target running debian (Dragon board 820c).

SNPE version using 1.15.0.0

The bench marking script  "snpe_bench.py " running in the host machine is using "Adb" to communicate with the target device. So how can  the bench marking run in non-android platforms? The document says that "In addition to Android, there is limited support for LinuxEmbedded, where only the timing measurement is supported". So could some one please tell me how to run the bench marking in my debian target?

As a temporary solution, I have made a hack, by changing the adb shell execution into the direct shell execution. Also I had to split the code into two parts. One for running in the Aarch64 embedded linux target ( It usues the bin and libs in the folders "bin/aarch64-linux-gcc4.9" and "/lib/aarch64-linux-gcc4.9" respectively). Second part for analysing the profile information and creating the report, which runs in the host pc.

With this modification I could run the bench marking in my debian target for CPU runtime. And could generate the report in CSV format.

My questions are...

1) Whether this hack is correct?

2) In the report I could see the fields such as Load,Deserialize and Create which are not explained in the latest documentation for SNPE SDK.

  What do these fields mean?

3) Why the total of the execution time in each layer is not equal to the "Forward Propagate" time ? (I see an error of 0.7%)

Thanks In Advance.

 

 

 

  • Up0
  • Down0
gesqdn-forum
Join Date: 4 Nov 18
Posts: 184
Posted: Fri, 2019-10-04 03:46

Hi,
It is great if the modified script is working for you and getting you the results.
Load: It could be the time taken to load the application into ram and start the execution.
Deserialization: It is the process of converting the data stored in memory to an object/data-structure format it needs to be to represent.
Ex: the image can be stored in the form of pixel values. Deserialization is converting the CSV format to image data.
Create: It can be the process of creating the object with the data available.

The below description should clarify your doubt on the  0.7% error you were mentioning,
Total Inference Time measures the entire execution time of one inference pass. This includes any input and output processing, copying of data, etc. This is measured at the start and end of the execute call.
Forward Propogate measures the time spent executing one inference pass excluding processing overheads on one of the accelerator cores. For example, in the case of the GPU this represents the execution time of all the GPU kernels running on the GPU HW.

  • Up0
  • Down0
SoDa
Join Date: 22 Nov 19
Posts: 5
Posted: Sun, 2020-03-01 15:27

Hi Sharvin,

I was wondering if you can share your modified benchmark script. 

Thank you

  • 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.