# 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  ## 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 |
aarch64-oe-linux-gcc11.2libQnnCpu.soaarch64-oe-linux-gcc11.2libQnnGpu.soaarch64-oe-linux-gcc11.2libQnnHtp.solibQnnHtpPrepare.solibQnnHtpV68Stub.sohexagon-v68libQnnHtpV68Skel.solibQnnHtp.so: Library used forlibQnnHtpPrepare.so: Hexagon TensorlibQnnHtpV68Stub.so: Hexagon TensorlibQnnHtpV68Skel.so: Hexagon Tensor