Hello, I am using Particle Tachyon (Qualcomm QCM6490) running Ubuntu Linux. Findings: /dev/fastrpc-adsp and /dev/fastrpc-cdsp exist QNN libraries such as libQnnDsp.so, libQnnGpu.so are present But libcdsprpc.so is missing qnn-platform-validator fails for DSP backend clinfo shows only POCL CPU, no Adreno GPU OpenCL device Questions: Does Tachyon officially support DSP inference via QNN on Linux? Is there a userspace package that provides libcdsprpc.so and Hexagon RPC? Is Adreno OpenCL supported on Tachyon Ubuntu image? If yes, where can I obtain the proper OpenCL ICD and GPU drivers? Goal: enable hardware acceleration for real-time vision inference.
# DEBUG LOGS ...
Backend DSP Prerequisites: Present.
Unit Test on the backend DSP: Passed.
QNN is supported for backend DSP on the device.
*********** Results Summary ***********
Backend = DSP
{
Backend Hardware : Supported
Backend Libraries : Found
Library Version : Not Queried
Core Version : Hexagon Architecture V68
Unit Test : Passed
}
These are the steps to build and install the missing FastRPC libs:
sudo apt update
sudo apt install -y \
git \
autoconf \
automake \
libtool \
pkg-config \
libyaml-dev \
libbsd-dev \
build-essential \
make
cd /tmp
git clone https://github.com/quic/fastrpc
cd fastrpc
./gitcompile
sudo make install
rm -rf /tmp/fastrpc
Small change in @ericpietrowicz’s code regarding the LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$QNN_LIB:/usr/local/lib
…and now it recognizes but it has some compatibility issues:
$ qnn-platform-validator --backend dsp --coreVersion --testBackend
PF_VALIDATOR: DEBUG: Calling PlatformValidator->setBackend
PF_VALIDATOR: DEBUG: Calling PlatformValidator->isBackendHardwarePresent
PF_VALIDATOR: DEBUG: Calling PlatformValidator->isBackendAvailable
PF_VALIDATOR: DEBUG: Should be able to access atleast one of libraries from : libc.so.6
PF_VALIDATOR: DEBUG: dlOpen successfull for library : libc.so.6
PF_VALIDATOR: DEBUG: Should be able to access atleast one of libraries from : libcdsprpc.so
PF_VALIDATOR: DEBUG: dlOpen successfull for library : libcdsprpc.so
Backend DSP Prerequisites: Present.
PF_VALIDATOR: DEBUG: Calling PlatformValidator->getCoreVersion
Core Version of the backend DSP: Hexagon Architecture V68
PF_VALIDATOR: DEBUG: Calling PlatformValidator->backendCheck
PF_VALIDATOR: DEBUG: Should be able to access atleast one of libraries from : libc.so.6
PF_VALIDATOR: DEBUG: dlOpen successfull for library : libc.so.6
PF_VALIDATOR: DEBUG: Should be able to access atleast one of libraries from : libcdsprpc.so
PF_VALIDATOR: DEBUG: dlOpen successfull for library : libcdsprpc.so
PF_VALIDATOR: DEBUG: Starting calculator test
PF_VALIDATOR: DEBUG: Loading sample stub: libQnnHtpV68CalculatorStub.so
PF_VALIDATOR: DEBUG: Successfully loaded DSP library - 'libQnnHtpV68CalculatorStub.so'. Setting up pointers.
Unable to destroy the handlePF_VALIDATOR: ERROR: -6 . Error while executing the sum function.
PF_VALIDATOR: ERROR: Please use testsig if using unsigned images.
PF_VALIDATOR: ERROR: Also make sure ADSP_LIBRARY_PATH points to directory containing skels.
Unit Test on the backend DSP: Failed.
QNN is NOT supported for backend DSP on the device.
*********** Results Summary ***********
Backend = DSP
{
Backend Hardware : Supported
Backend Libraries : Found
Library Version : Not Queried
Core Version : Hexagon Architecture V68
Unit Test : Failed
}
If I have some time then I will try again but I leave it here if it helps to someone.
It appears to me the hexagon*/unsigned/.Skel files are unsigned and the DSP stack does not allow running them. I’m currently stuck using @ericpietrowicz tutorial, and cross-referencing the qualcomm examples doc “tutorial_qtld_net_run.html” that comes in the examples folder with the qcom ai framework. I also used the edgeimpulse platform to train and generate a runner, which also failed in the same manner.* @szasza576 Thank you for the build commands for fastrpc, as that got me past initial dynamic loading errors. It sounds like 20.04 might allow the unsigned hexagon images to run, but 24.04 does not, based on previous posts.