Forums - Does SNPE fully support development on QC ARM devices?

7 posts / 0 new
Last post
Does SNPE fully support development on QC ARM devices?
ivberg
Join Date: 21 Oct 22
Posts: 1
Posted: Tue, 2022-11-29 12:55

I am on a QC SQ3 Surface Pro9 ARM based device. It doesn't seem like the Qualcomm Neural Processing SDK actually fully supports this setup for development, despite that not being spelled out in the system requirements. Instead you need to use an extra amd64 device which is odd.

This is because it seems the SDK binaries are most supported and compiled for AMD64.

For example this tutorial - Snapdragon Neural Processing Engine SDK: Running a ONNX Model with SNPE SDK (qualcomm.com) (2) says "You should be able to run snpe-onnx-to-dlc -h without error if the environment is set correctly."

However "snpe-onnx-to-dlc" doesn't seem to be compiled for ARM. You can see there is a lot more  x86_64-linux-clang binaries than other ones.

>Note I can't add more info here because otherwise I get the error "we only support questions in English" even though it's English!!

If you fulfill all the dependencies and attempt to run the x64 version on the QC ARM device you will get this error. Only attempting to run this version because there is no arm equivalent.
 
$ bin/x86_64-linux-clang/snpe-onnx-to-dlc -h
ImportError: /home/user/snpe-1.67.0.3862/lib/python/qti/aisw/converters/common/libPyIrGraph.so: cannot open shared object file: No such file or directory
 
$ objdump -a -f  /home/user/snpe-1.67.0.3862/lib/python/qti/aisw/converters/common/libPyIrGraph.so
/home/user/snpe-1.67.0.3862/lib/python/qti/aisw/converters/common/libPyIrGraph.so: file format elf64-little
  • Up0
  • Down0
weihuan
Join Date: 12 Apr 20
Posts: 270
Posted: Sun, 2022-12-04 00:12

Dear customer,

We're appreciate to hear that our Windows platform is developing external.

Up to now, SNPE don't release version to supporte SNPE Windows yet. Or you will hit error if push relating libs to devices. So that, you can't run your model on device yet.

BR.

Wei

  • Up0
  • Down0
soham.mazumder
Join Date: 18 Jan 23
Posts: 1
Posted: Wed, 2023-02-08 05:00

Hi
Were you able to solve the error that you faced. I am developing on the Microsoft Dev Kit 2023 which uses the same hardware as Surface Pro 9 QC. 
I am unable to use "snpe-onnx-to-dlc"  which produces the same error as you faced.

 

  • Up0
  • Down0
mannkeithc
Join Date: 13 Nov 22
Posts: 2
Posted: Thu, 2023-02-09 07:16

Hi,

I have the same problem. I have a Microsoft Dev Kit 2023 with the Snapdragon 8cx Gen 3 / Microsoft SQ3 processor. Qualcomm have recently released the snpe-sdk for Windows, but the final part of converting the Inception V3 model to a dlc file and quantizing fails because snpe-dlc-quant is an x86 binary, plus conversion script cannot open libPyIrGraph.so reporting no such file or directory, even though this file is present excactly at the location where the script is looking for it. So I suspect this file is also dependent on an x86 architecture.

What's the point of Qualcomm releasing a snpe-sdk for Windows 11 arm64 development PC when half the tools you need are missing? So you follow the instructions to install WSL2 Ubuntu 18.04, set-up the Linux and Python development environment, only to find you cannot install tensorflow because the version supplied by PyPI is x86/x64 binary. I solved this hurdle by installing Miniconda3 aarch64 verson, and setup a virtual Python environment, where the included version of pip was able to install / build an aarch64 version of tensorflow plus the missing pip modules they omit to tell you about; tensorflow_io, pillow and image. The Inception V3 setup script finally starts to run correctly creating the required raw data files etc, only failing at the final hurdle of converting the model to a dlc file because of a baked in x86 binary in the Linux snpe-sdk.

If Qualcomm want developers to take the Windows arm64 processors seriously and develop code for Windows 11 arm64 they need to properly support the whole arm64 development environment, and not force developers to jump backwards and forwards between arm64 and amd64 to complete the NPU development set-up process.

 

  • Up0
  • Down0
mannkeithc
Join Date: 13 Nov 22
Posts: 2
Posted: Thu, 2023-02-09 07:20

Hi,

I have the same problem. I have a Microsoft Dev Kit 2023 with the Snapdragon 8cx Gen 3 / Microsoft SQ3 processor. Qualcomm have recently released the snpe-sdk for Windows, but the final part of converting the Inception V3 model to a dlc file and quantizing fails because snpe-dlc-quant is an x86 binary, plus conversion script cannot open libPyIrGraph.so reporting no such file or directory, even though this file is present excactly at the location where the script is looking for it. So I suspect this file is also dependent on an x86 architecture.

What's the point of Qualcomm releasing a snpe-sdk for Windows 11 arm64 development PC when half the tools you need are missing? So you follow the instructions to install WSL2 Ubuntu 18.04, set-up the Linux and Python development environment, only to find you cannot install tensorflow because the version supplied by PyPI is x86/x64 binary. I solved this hurdle by installing Miniconda3 aarch64 verson, and setup a virtual Python environment, where the included version of pip was able to install / build an aarch64 version of tensorflow plus the missing pip modules they omit to tell you about; tensorflow_io, pillow and image. The Inception V3 setup script finally starts to run correctly creating the required raw data files etc, only failing at the final hurdle of converting the model to a dlc file because of a baked in x86 binary in the Linux snpe-sdk.

If Qualcomm want developers to take the Windows arm64 processors seriously and develop code for Windows 11 arm64 they need to properly support the whole arm64 development environment, and not force developers to jump backwards and forwards between arm64 and amd64 to complete the NPU development set-up process.

 

  • Up0
  • Down0
prahladreddy1
Join Date: 21 May 23
Posts: 2
Posted: Sun, 2023-05-21 10:04

I had installed latest SNPE 2.10.40.4 and found this file libPyIrGraph.so.
You can try same.

  • Up0
  • Down0
rneti
Join Date: 16 Jun 22
Posts: 4
Posted: Sun, 2023-05-21 23:20

SNPE is not end-to-end supported on ARM devices. 

Currently users need to convert to DLC on X86 platform, and use the DLC on ARM64 platform. 

As I know, DLC conversion is not supported on ARM platform. Please try above approach

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