TVM runtime throwing "Hexagon Device API not enabled" error

OS : QNX 7.1 Platform : Qualcomm Board

Target Hardware Accelerator : HTP (v73)

TVM build : From source

Description : I have built tvm runtime from source with following hexagon flags:

USE_HEXAGON : ON

USE_HEXAGON_SDK : Path_hexagon_sdk

USE_HEXAGON_RPC : ON

USE_HEXAGON_ARCH: v73

and cross-compiled tvm runtime for QNX 7.1 . The runtime was built without error . I’ve also built hexagon skel file for v73 using hexagon-clang and hexagon-clang++ as C and CXX compilers. On the board , I’m setting LD_LIBRARY_PATH and DSP_LIBRARY_PATH to point to runtime and skel files respectively. During inference, I’m getting “Hexagon Device API is not enabled” error. Does anybody know how to resolve this error? @srkreddy1238

Probably @kparzysz can help on this.

@VarunGupta Could you specify some more details how you’re trying to run the inference. I’m assuming that you’re trying to use the android launcher. Just as a sanity check to see if build is working as expected, could you check whether you’re able to run any of the tests in test_hexagon directory like perhaps this one?

Also if you could provide the exact error from logcat, that would give more info to help you out.

Actually I just noticed that you’ve mentioned QNX 7.1 platform. I don’t think QNX with hexagon is supported yet, so it’s probably not expected to work.

@sanirudh Thanks for your reply.

  1. I’m not using android launcher. I’m trying to run inference of NN on a Qualcomm Board which is running QNX 7.1 OS. Board has ARM CPU and v73 HTP (DSP)
  2. I’ve cross compiled tvm to build tvm_runtime.so for aarch64 CPU for QNX with following hexagon flags : USE_HEXAGON=ON USE_HEXAGON_SDK=path_to_hexagon_sdk USE_HEXAGON_ARCH=v73 USE_HEXAGON_RPC = ON
  3. I’ve build tvm runtime for HTP/DSP (skel file) using following flags: USE_C_COMPILER = hexagon-clang USE_CXX_COMPILER=hexagon-clang++ USE_HEXAGON_SDK=path_to_hexagon_sdk USE_HEXAGON=ON USE_HEXAGON_ARCH=v73 Using above steps I’ve built tvm_runtime for DSP ( File has extension Qualcomm DSP6 )
  4. Since python doesn’t work on QNX, I have created a C++ executable for running NN on the board. I’m calling HTP using C++ API kDLHexagon.

Following is my error SS:

Right yes, as I edited my comment above, I missed that mention of QNX platform in your question above, sorry about that.

I don’t think hexagon with QNX is supported yet.

@sanirudh Thanks for your reply.

I’m no longer at Qualcomm and I don’t work on Hexagon anymore.