# QNN delegate

Source: [https://docs.qualcomm.com/doc/80-70014-54/topic/qnn-delegate.html](https://docs.qualcomm.com/doc/80-70014-54/topic/qnn-delegate.html)

The QNN delegate is a proprietary delegate for vendor-specific hardware acceleration
        to accelerate TensorFlow Lite models. The QNN delegate is designed based on the TensorFlow
        Lite's [external delegate interface](https://www.tensorflow.org/lite/performance/implementing_delegate). You can use the QNN
        delegate to offload parts or the entire TensorFlow Lite model to specialized Qualcomm
        hardware, such as the Adreno GPU and Hexagon Tensor Processor.

The QNN delegate improves the performance of model execution and power efficiency by
            decreasing the CPU workload.

The QNN delegate also uses the existing Qualcomm AI Engine Direct APIs and available
            backends to accelerate models. For more information, see [Qualcomm AI Engine Direct](bundle/publicresource/topics/80-63442-50).

The QNN delegate can execute models in 32‑bit floating-point precision and INT8 precision
            on the available hardware.

You can build applications using the following interfaces:

- Qualcomm AI Engine Direct delegate interface
- TensorFlow Lite External delegate interface

You can access both the interfaces when using a standalone TensorFlow Lite application.
            However, if you deploy your TensorFlow Lite models using the IM SDK, the qtimltflite
            GStreamer plug-in for Qualcomm TensorFlow Lite Runtime uses the external delegate
            interface of TensorFlow Lite. For more information, see [Leverage external delegate](https://www.tensorflow.org/lite/performance/implementing_delegate#option_2_leverage_external_delegate).

The following figure shows the directory structure of QNN delegate libraries from the
            Qualcomm AI Engine Direct SDK:

Figure : QNN delegate directory structure
            
            ![](data:image/png;base64,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)

## Qualcomm AI Engine Direct delegate interface (QNN delegate)

The QNN delegate provides the `QnnTFLiteDelegate.h` header as an
                interface. You can include this header as part of your application before linking it
                to the QNN delegate library.

For RB3 Gen 2, you can find a compatible QNN delegate library and QNN libraries
                placed in the `aarch64-oe-linux-gcc11.2 cross-compiler` toolchain
                triplet directory.

Table : QNN delegate acceleration support

| Backend name | Backend description | Target and library names | Library description |
| --- | --- | --- | --- |
| CPU | Backend for Arm CPU acceleration | <ul class="ul" id="qnn-delegate__ul_syy_45m_tbc"><br>                                    <li class="li"><code class="ph codeph">aarch64-oe-linux-gcc11.2</code><ul class="ul" id="qnn-delegate__ul_tyy_45m_tbc"><br>                                            <li class="li"><code class="ph codeph">libQnnCpu.so</code></li><br><br>                                        </ul><br></li><br><br>                                </ul> | `libQnnCpu.so`: CPU backend library |
| GPU | Backend for the Adreno GPU hardware accelerator | <ul class="ul" id="qnn-delegate__ul_uyy_45m_tbc"><br>                                    <li class="li"><code class="ph codeph">aarch64-oe-linux-gcc11.2</code><ul class="ul" id="qnn-delegate__ul_vyy_45m_tbc"><br>                                            <li class="li"><code class="ph codeph">libQnnGpu.so</code></li><br><br>                                        </ul><br></li><br><br>                                </ul> | `libQnnGpu.so`: GPU backend library |
| Hexagon Tensor Processor | Backend for the Hexagon Tensor Processor hardware<br>                                accelerator | <ul class="ul" id="qnn-delegate__ul_wyy_45m_tbc"><br>                                    <li class="li"><code class="ph codeph">aarch64-oe-linux-gcc11.2</code><ul class="ul" id="qnn-delegate__ul_xyy_45m_tbc"><br>                                            <li class="li"><code class="ph codeph">libQnnHtp.so</code></li><br><br>                                            <li class="li"><code class="ph codeph">libQnnHtpPrepare.so</code></li><br><br>                                            <li class="li"><code class="ph codeph">libQnnHtpV68Stub.so</code></li><br><br>                                        </ul><br></li><br><br>                                    <li class="li"><code class="ph codeph">hexagon-v68</code><ul class="ul" id="qnn-delegate__ul_yyy_45m_tbc"><br>                                            <li class="li"><code class="ph codeph">libQnnHtpV68Skel.so</code></li><br><br>                                        </ul><br></li><br><br>                                </ul> | <ul class="ul" id="qnn-delegate__ul_zyy_45m_tbc"><br>                                    <li class="li"><code class="ph codeph">libQnnHtp.so</code>: Library used for<br>                                        communication between the Arm CPU and Hexagon Tensor<br>                                        Processor.</li><br><br>                                    <li class="li"><code class="ph codeph">libQnnHtpPrepare.so</code>: Hexagon Tensor<br>                                        Processor library running on the CPU side. This library is<br>                                        loaded to prepare the graph and optimize the execution graph<br>                                        at runtime.</li><br><br>                                    <li class="li"><code class="ph codeph">libQnnHtpV68Stub.so</code>: Hexagon Tensor<br>                                        Processor proxy library on the CPU side, communicating with<br>                                        the Skel library loaded on the Hexagon Tensor<br>                                        Processor.</li><br><br>                                    <li class="li"><code class="ph codeph">libQnnHtpV68Skel.so</code>: Hexagon Tensor<br>                                        Processor native library with optimized kernel/operator<br>                                        implementation for Hexagon Tensor Processor v68.</li><br><br>                                </ul> |

## TensorFlow Lite external delegate interface

In an external delegate interface, the application to run TensorFlow Lite models must
                load the `libQnnTFLiteDelegate.so` delegate library of QNN. The C/C++
                application and the `libQnnTFLiteDelegate.so` delegate library have
                no dependency on each other. Therefore, if the delegate changes, you do not have to
                recompile the application.

In addition to the TensorFlow Lite Android C API, integrate the following into the
                C/C++ Android application in the same way as the TensorFlow Lite Android C API:

- The external\_delegate.h header file
- The libexternal\_delegate.so shared library

The QNN delegate offers acceleration on the Hexagon Tensor Processor, GPU, and CPU.
                To customize where and how to run models using the QNN delegate when using the
                external delegate interface, you must provide additional external delegate options.
                For instructions, see [External delegate options for QNN delegate](https://docs.qualcomm.com/doc/80-70014-54/topic/external-delegate-options-for-qnn-delegate.html).

**Parent Topic:** [Delegates](https://docs.qualcomm.com/doc/80-70014-54/topic/delegates.html)

Last Published: Jul 12, 2024

[Previous Topic
GPU delegate](https://docs.qualcomm.com/bundle/publicresource/80-70014-54/topics/gpu-delegate.md) [Next Topic
TensorFlow Lite developer workflow](https://docs.qualcomm.com/bundle/publicresource/80-70014-54/topics/tensorflow-lite-developer-workflow.md)