Forums - SNPE-1.46 dsp v68 UDO complie need QNN SDK

4 posts / 0 new
Last post
SNPE-1.46 dsp v68 UDO complie need QNN SDK
abxr7y
Join Date: 10 Nov 20
Posts: 6
Posted: Fri, 2021-03-26 06:23

Hi, I followed the official document about UDO tutorial to compile the Softmax op for the DSP, but encountered a "cannot load symbol" error while compiling the V68 architecture Softmax op,

  • Device: Mi 11 (sdm 888)
  • Version: SNPE-1.46.0
  • Hexagon DSP SDK version: 3.5.2
  • DSP UDO target architecture: V68
  •  

Here is the compilation log

[INFO] Writing quantized model to: /home/suth/snpe-1.46.0/models/inception_v3/dlc/inception_v3_udo_quantized.dlc
[ERROR] SnpeQnnController::Load Cannot load symbol QnnBackend_initialize : snpe-dlc-quantize: undefined symbol: QnnBackend_initialize
[ERROR] Unable to loadQnnFunction QnnBackend_initialize
[ERROR] SnpeQnnController::Load Cannot load symbol QnnBackend_terminate : snpe-dlc-quantize: undefined symbol: QnnBackend_terminate
[ERROR] Unable to loadQnnFunction QnnBackend_terminate
[ERROR] SnpeQnnController::Load Cannot load symbol QnnBackend_registerOpPackage : snpe-dlc-quantize: undefined symbol: QnnBackend_registerOpPackage
[ERROR] Unable to loadQnnFunction QnnBackend_registerOpPackage
[ERROR] SnpeQnnController::Load Cannot load symbol QnnBackend_getPerfInfrastructure : snpe-dlc-quantize: undefined symbol: QnnBackend_getPerfInfrastructure
[ERROR] Unable to loadQnnFunction QnnBackend_getPerfInfrastructure
[ERROR] SnpeQnnController::Load Cannot load symbol QnnContext_create : snpe-dlc-quantize: undefined symbol: QnnContext_create
[ERROR] Unable to loadQnnFunction QnnContext_create
[ERROR] SnpeQnnController::Load Cannot load symbol QnnContext_free : snpe-dlc-quantize: undefined symbol: QnnContext_free
[ERROR] Unable to loadQnnFunction QnnContext_free
[ERROR] SnpeQnnController::Load Cannot load symbol QnnContext_getBinarySize : snpe-dlc-quantize: undefined symbol: QnnContext_getBinarySize
[ERROR] Unable to loadQnnFunction QnnContext_getBinarySize
[ERROR] SnpeQnnController::Load Cannot load symbol QnnContext_getBinary : snpe-dlc-quantize: undefined symbol: QnnContext_getBinary
[ERROR] Unable to loadQnnFunction QnnContext_getBinary
[ERROR] SnpeQnnController::Load Cannot load symbol QnnContext_createFromBinary : snpe-dlc-quantize: undefined symbol: QnnContext_createFromBinary
[ERROR] Unable to loadQnnFunction QnnContext_createFromBinary
[ERROR] SnpeQnnController::Load Cannot load symbol QnnGraph_create : snpe-dlc-quantize: undefined symbol: QnnGraph_create
[ERROR] Unable to loadQnnFunction QnnGraph_create
[ERROR] SnpeQnnController::Load Cannot load symbol QnnGraph_addNode : snpe-dlc-quantize: undefined symbol: QnnGraph_addNode
[ERROR] Unable to loadQnnFunction QnnGraph_addNode
[ERROR] SnpeQnnController::Load Cannot load symbol QnnGraph_finalize : snpe-dlc-quantize: undefined symbol: QnnGraph_finalize
[ERROR] Unable to loadQnnFunction QnnGraph_finalize
[ERROR] SnpeQnnController::Load Cannot load symbol QnnGraph_execute : snpe-dlc-quantize: undefined symbol: QnnGraph_execute
[ERROR] Unable to loadQnnFunction QnnGraph_execute
[ERROR] SnpeQnnController::Load Cannot load symbol QnnGraph_retrieve : snpe-dlc-quantize: undefined symbol: QnnGraph_retrieve
[ERROR] Unable to loadQnnFunction QnnGraph_retrieve
[ERROR] SnpeQnnController::Load Cannot load symbol QnnProfile_create : snpe-dlc-quantize: undefined symbol: QnnProfile_create
[ERROR] Unable to loadQnnFunction QnnProfile_create
[ERROR] SnpeQnnController::Load Cannot load symbol QnnProfile_getEvents : snpe-dlc-quantize: undefined symbol: QnnProfile_getEvents
[ERROR] Unable to loadQnnFunction QnnProfile_getEvents
[ERROR] SnpeQnnController::Load Cannot load symbol QnnProfile_getSubEvents : snpe-dlc-quantize: undefined symbol: QnnProfile_getSubEvents
[ERROR] Unable to loadQnnFunction QnnProfile_getSubEvents
[ERROR] SnpeQnnController::Load Cannot load symbol QnnProfile_getEventData : snpe-dlc-quantize: undefined symbol: QnnProfile_getEventData
[ERROR] Unable to loadQnnFunction QnnProfile_getEventData
[ERROR] SnpeQnnController::Load Cannot load symbol QnnTensor_createContextTensor : snpe-dlc-quantize: undefined symbol: QnnTensor_createContextTensor
[ERROR] Unable to loadQnnFunction QnnTensor_createContextTensor
[ERROR] SnpeQnnController::Load Cannot load symbol QnnTensor_createGraphTensor : snpe-dlc-quantize: undefined symbol: QnnTensor_createGraphTensor
[ERROR] Unable to loadQnnFunction QnnTensor_createGraphTensor
[ERROR] Couldn't initialize Htp Offline Prepare Backend.
[INFO] DebugLog shutting down.
 

After this I try SNPE-1.48, It shows that I need to setup QNN_SDK_ROOT variable, but I can't find this SDK, where should I download QNN SDK?

  • Up0
  • Down0
990933841
Join Date: 18 May 21
Posts: 2
Posted: Wed, 2021-06-23 03:36

I also encountered the same problem. According to the document, it needs to be based on Hexagon SDK 4.0.0.1 version (the original sentence "This SNPE release supports building UDO DSP implementation libraries using Hexagon-SDK 4.0.1/4.0.2 and QNN SDK"). But I can't find the download path of QNN SDK, nor can I download the corresponding version of Hexagon-SDK. Hope someone can help, thanks in advance.

  • Up0
  • Down0
jack.profit
Join Date: 10 May 22
Posts: 5
Posted: Thu, 2022-05-12 10:52

This question doesn't seem to have an answer even though it is quite old.

Where can I find the "QNN_SDK_ROOT" that is required in order to successfully build a UDO model with SNPE? As far as I can tell, it is not included with SPNE or the Hexagon SDK.

  • Up0
  • Down0
jack.profit1
Join Date: 27 May 22
Posts: 3
Posted: Fri, 2022-05-27 11:05

Apparently, QNN SDK is not open source and is not available for general download . 

That said, it is not required unless you are targeting a QC chip that has Hexagon Tensor Accelerator support. It is not needed for DSP targeted models that use HVX (is my understanding).

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