Forums - Error occured when SNPE v1.12.0 use MobileNet-SSD on Adreno530

9 posts / 0 new
Last post
Error occured when SNPE v1.12.0 use MobileNet-SSD on Adreno530
lunarcake
Join Date: 26 Jul 17
Posts: 10
Posted: Wed, 2018-02-21 01:53

Hi,

 

I got such error message when I execute benchmark script of SNPE v1.12.0 for MobileNet-SSD.

 

Layer BoxPredictor_0/Reshape_1:0 : output width = 1083, depth = 91 width * depth (packed) = 24909 exceeds maximum image width 16384 for Adreno A530

 

I saw description "Support for MobileNet SSD support on CPU and GPU" in release note of v1.12.0.

Which AP can run MobileNet-SSD on GPU by using SNPE v1.12.0?

 

Thanks in advance.

  • Up0
  • Down0
jesliger
Join Date: 6 Aug 13
Posts: 75
Posted: Wed, 2018-02-21 04:59

We'll check on that specific error, but when running on the GPU, "CPU fallback" must be enabled.  Some of the layers aren't supported on the GPU, and will fallback to the CPU in that case.  If you are using snpe-net-run, add the option --enable_cpu_fallback to your command line.

  • Up0
  • Down0
yanbophx
Join Date: 16 Oct 17
Posts: 17
Posted: Wed, 2018-02-21 19:38

Similar error was spotted.

The detailed logs are:

2018-02-22 11:35:48,933 - WARNING - snpe_bench: Failed to perform benchmark for GPU_timing.
2018-02-22 11:35:48,933 - INFO - snpe_bench: GPU_ub_float_timing
2018-02-22 11:35:48,933 - INFO - snpe_bench: Run 1
2018-02-22 11:35:50,078 - ERROR - _execute_adbcmd_raw: adb -H localhost -s de275f47 shell "sh /data/local/tmp/snpebm/artifacts/arm-android-gcc4.9/bin/snpe-bench_cmds.sh && echo ADB_SHELL_CMD_SUCCESS" failed with stderr of: error_code=802; error_message=Layer parameter value is invalid in GPU. Layer BoxPredictor_0/Reshape_1:0 : output width = 1083, depth = 91 width * depth (packed) = 24909 exceeds maximum image width 16384 for Adreno A530; error_component=GPU Runtime; line_no=391; thread_id=-336038748

2018-02-22 11:35:50,078 - WARNING - _execute_adbcmd_raw: adb shell command failed to execute:
    error_code=802; error_message=Layer parameter value is invalid in GPU. Layer BoxPredictor_0/Reshape_1:0 : output width = 1083, depth = 91 width * depth (packed) = 24909 exceeds maximum image width 16384 for Adreno A530; error_component=GPU Runtime; line_no=391; thread_id=-336038748

 

 

  • Up0
  • Down0
lcycoding
Join Date: 17 Jan 18
Posts: 5
Posted: Sun, 2018-02-25 23:44

I was running SNPE-1.12.0 on android device in the provided example app.

How do I turn on the cpu fallback feature under this circumstance?

Thanks!

  • Up0
  • Down0
jesliger
Join Date: 6 Aug 13
Posts: 75
Posted: Fri, 2018-03-02 04:55

When using snpe-net-run, use the option --enable_cpu_fallback  (run snpe-net-run -h to see all options)

When using snpe_bench, it doesn't support enabling fallback in 1.12.0.  This should be supported in an upcoming release.

If you are writing a native or Java app, you need to set the builder option for enabling CPU fallback.  "setCPUFallbackMode" for native code, and "setCpuFallbackEnabled" in Java.  These are documented in the APIs section of the user's guide.  Hopefully that helps.

  • Up0
  • Down0
omniengr77
Join Date: 13 Oct 16
Posts: 8
Posted: Sat, 2018-03-31 23:55

Hi,

I see this error in 1.13.0 too. Is there plan to fix it? Does "--enable-cpu.." flag put all net on CPU or only layer that can't run on GPU?

thanks

  • Up0
  • Down0
jesliger
Join Date: 6 Aug 13
Posts: 75
Posted: Sun, 2018-04-01 04:42

When using fallback, layers that CAN run on GPU will run on GPU.  Layers that cannot run on GPU will fallback to CPU.

  • Up0
  • Down0
omniengr77
Join Date: 13 Oct 16
Posts: 8
Posted: Mon, 2018-04-02 22:15

thanks. Is there plan to fix this for A530 GPU?

  • Up0
  • Down0
jesliger
Join Date: 6 Aug 13
Posts: 75
Posted: Tue, 2018-04-03 04:40

No plan to address this for this network at this time.  The limitation being hit is a size limitation.   CPU fallback is the supported mechanism for this network.

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