Currently, Tensorflow Lite requires the end user to add shared libraries to use Hexagon delegate, such as libhexagon_interface.so (interface from TensorFlow side - integrated in org.tensorflow:tensorflow-lite-hexagon aar) and libhexagon_nn_skel*.so (Qualcomm nnlib).
We want to automate this process with our Java aar and benchmark execution process.
Problem
The signature for the provided libraries is generated using the elfsigner from a Hexagon SDK, allowing for development on test devices. However, it is important to note that execution on production devices, such as OEM devices like Pico 4, requires appropriate credentials from system integrators.
Currently, Tensorflow Lite requires the end user to add shared libraries to use Hexagon delegate, such as
libhexagon_interface.so
(interface from TensorFlow side - integrated inorg.tensorflow:tensorflow-lite-hexagon
aar) andlibhexagon_nn_skel*.so
(Qualcomm nnlib). We want to automate this process with our Java aar and benchmark execution process.Problem
The signature for the provided libraries is generated using the
elfsigner
from a Hexagon SDK, allowing for development on test devices. However, it is important to note that execution on production devices, such as OEM devices like Pico 4, requires appropriate credentials from system integrators.Reference
Current solution
Simply push and load
libhexagon_nn_skel*.so
to public directories, such as/data/local/tmp
Possible direction to investigate
See if we can sign these libraries on our own (using Hexagon SDK https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools that requires company registration).