# Architecture Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html) The TensorFlow Lite framework runs models on devices with low-power requirements, such as mobile, embedded, and edge platforms by optimizing them for latency, model size, and power consumption. The framework runs models with the help of delegates. Delegates are software layers that use libraries written to execute a neural network model efficiently on a specific hardware. Figure : TensorFlow Lite Runtime architecture Page-1 TensorFlow Lite Runtime TensorFlow Lite Runtime TensorFlow Lite model TensorFlow Lite model Input data Input data Output result Output result Delegates Delegates XNNPACK delegate for CPU XNNPACK delegate for CPU GPU delegate GPU delegate QNN delegate QNN delegate ## TensorFlow Lite Runtime Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html) The TensorFlow Lite on-device inference loads the model into an interpreter, which parses the model and uses a delegate to run it. The TensorFlow Lite on-device inference does the following: 1. The inference loads the TensorFlow Lite model into a TensorFlow Lite interpreter interface, which parses the model to identify neural network operators present within the model. 2. The interpreter interface is further configured to run the model by using a delegate. 3. The interpreter invokes a model inference on the provided inputs and saves the corresponding outputs of model inference into the buffers provided to the interpreter interface. Qualcomm supports executing TensorFlow Lite models on the following accelerators using delegates: - CPU - Adreno GPU - Hexagon Tensor Processor The following table lists the delegates and its accelerators: Table : Supported delegates and accelerators | Delegate | Acceleration | | --- | --- | | XNNPACK delegate | CPU | | GPU delegate | GPU | | Qualcomm^®^ AI Engine direct delegate (Qualcomm^®^
Neural Network (QNN) delegate) | CPU, GPU, and Hexagon Tensor Processor | ## Delegates for TensorFlow Lite Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html) Delegates help you offload the TensorFlow Lite graph execution to the CPU, GPU, and the Hexagon Tensor Processor hardware accelerators. Currently, the following delegates are supported. ### XNNPACK delegate for CPU Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html) The XNNPACK delegate uses the XNNPACK library to accelerate TensorFlow Lite models on CPUs efficiently. XNNPACK is an open-source library from Google, which does the following: - Provides an optimized implementation of neural network operators to run on Arm CPUs - Uses low-level CPU instructions such as the Arm^®^ Neon™ instruction set to optimize operators for efficient execution The XNNPACK delegate can run models in both 32‑bit floating-point and INT8 formats. For more information, see [XNNPACK back-end for TensorFlow Lite](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/xnnpack/README.md). ### GPU delegate Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html) The GPU open-source delegate provides acceleration on various vendor-specific GPUs, including the Adreno GPU. TensorFlow Lite can use the GPU delegate to improve the parallel-processing power of GPUs, which makes inferencing faster. The GPU delegate uses OpenCL kernels to run neural network ops within a TensorFlow Lite model execution graph on the GPU. The GPU delegate is cross-compiled by default along with the TensorFlow Lite library and is optimized to run the following TensorFlow Lite models on the Adreno GPU: - 16‑bit floating-point - 32‑bit floating-point For more information, see [GPU delegates for TensorFlow Lite](https://www.tensorflow.org/lite/performance/gpu). ### QNN delegate Source: [https://docs.qualcomm.com/doc/80-70015-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70015-54/topic/arch.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 [external delegate interface](https://ai.google.dev/edge/litert/performance/implementing_delegate#option_2_leverage_external_delegate) of TensorFlow Lite. 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 the 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 back ends 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 TensorFlow Lite external delegate interface. 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 The Qualcomm AI Engine direct delegate interface, also known as 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. 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 | Back end name | Back end description | Target and library names | Library description | | --- | --- | --- | --- | | CPU | Back end for Arm CPU acceleration | | `libQnnCpu.so`: CPU back-end library | | GPU | Back end for the Adreno GPU hardware accelerator | | `libQnnGpu.so`: GPU back-end library | | Hexagon Tensor Processor | Back end for the Hexagon Tensor Processor hardware
accelerator | | | Note:Select the appropriate libraries based on the Hexagon Tensor Processor version of the Qualcomm Linux Development Kit. The versions are as follows: - QCS6490/QCS5430: Hexagon Tensor Processor v68 - QCS9075: Hexagon Tensor Processor v73 ### TensorFlow Lite external delegate interface In an external delegate interface, the application to run TensorFlow Lite models must load the `libQnnTFLiteDelegate.so` QNN delegate library. 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-70015-54/topic/sample-applications.html#external-delegate-options-for-qnn-delegate). Last Published: Oct 09, 2024 [Previous Topic Get started](https://docs.qualcomm.com/bundle/publicresource/80-70015-54/topics/getting-started.md) [Next Topic TensorFlow Lite developer workflow](https://docs.qualcomm.com/bundle/publicresource/80-70015-54/topics/tensorflow-lite-developer-workflow.md)