# LiteRT architecture Source: [https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) The LiteRT framework is designed to run 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 to run a neural network model efficiently on specific hardware. Figure : LiteRT architecture Page-1 Sheet.19 Sheet.1 Sheet.2 LiteRT LiteRT Sheet.3 LiteRT model LiteRT model Sheet.4 Input data Input data Sheet.5 Output result Output result Sheet.7 XNNPACK delegate for CPU XNNPACK delegate for CPU Sheet.8 GPU delegate GPU delegate Sheet.9 QNN delegate QNN delegate Sheet.12 Sheet.13 Sheet.14 Sheet.15 Sheet.16 Sheet.17 Sheet.20 ## LiteRT on-device inference Source: [https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) The LiteRT on-device inference loads the model into an interpreter, which parses the model and uses a delegate to run it. The process includes the following: 1. The inference loads the LiteRT model into a LiteRT interpreter interface, which parses the model to identify the neural network operators present in it. 2. The interpreter interface is further configured to run the model using a delegate. 3. The interpreter invokes a model inference on the provided inputs and saves the corresponding outputs into the buffers provided to the interpreter interface. Qualcomm supports executing LiteRT models on the following accelerators using delegates: - CPU - Adreno GPU - Hexagon Tensor Processor The following table lists the delegates and their 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 LiteRT Source: [https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) Delegates enable you to offload the LiteRT graph execution to hardware accelerators, such as CPU, GPU, and the Hexagon Tensor Processor. Currently, the following delegates are supported. ### XNNPACK delegate for CPU Source: [https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) The XNNPACK delegate uses the XNNPACK library to accelerate LiteRT models efficiently on CPUs. XNNPACK is an open-source library from Google, which does the following: - Provides an optimized implementation of neural network operators for 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-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) The GPU open-source delegate accelerates LiteRT models on various vendor-specific GPUs, including the Adreno GPU. LiteRT 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 LiteRT model execution graph on the GPU. The GPU delegate is cross-compiled by default along with the LiteRT library and is optimized to run the following LiteRT models on the Adreno GPU: - 16‑bit floating-point - 32‑bit floating-point For more information, see [GPU delegates for LiteRT](https://www.tensorflow.org/lite/performance/gpu). ### QNN delegate Source: [https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html](https://docs.qualcomm.com/doc/80-70017-54/topic/arch.html) The QNN delegate is a proprietary delegate designed for vendor-specific hardware acceleration to accelerate LiteRT models. It is based on the [external delegate interface](https://ai.google.dev/edge/litert/performance/implementing_delegate#option_2_leverage_external_delegate) of LiteRT. You can use the QNN delegate to offload parts or the entire LiteRT model to specialized Qualcomm hardware, such as the Adreno GPU and the Hexagon Tensor Processor. This delegate improves model execution performance and power efficiency by reducing the CPU workload. It also uses the existing Qualcomm AI Engine direct APIs and available back ends to accelerate models. For more information, see [Qualcomm AI Engine direct SDK](bundle/publicresource/topics/80-63442-50). The QNN delegate can execute models in both 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 - LiteRT external delegate interface You can access both the interfaces when using a standalone LiteRT application. However, if you deploy your LiteRT models using the IM SDK, the qtimltflite GStreamer plug-in for Qualcomm TensorFlow Lite uses the QNN delegate. For more information, see [Leverage external delegate](https://ai.google.dev/edge/litert/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 in your application before linking it to the QNN delegate library. You can find the compatible QNN delegate library and QNN libraries 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 - QCS8275: Hexagon Tensor Processor v75 ### LiteRT external delegate interface To run LiteRT models using an external delegate interface, the application 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 LiteRT Android C API, integrate the following into the C/C++ Android application in the same way as the LiteRT Android C API: - The external\_delegate.h header file - The libexternal\_delegate.so shared library The QNN delegate provides acceleration on the Hexagon Tensor Processor, GPU, and CPU. To customize where and how to run models using the QNN delegate with 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-70017-54/topic/sample-applications.html#external-delegate-options-for-qnn-delegate). Last Published: Jan 06, 2025 [Previous Topic Get started](https://docs.qualcomm.com/bundle/publicresource/80-70017-54/topics/getting-started.md) [Next Topic LiteRT developer workflow](https://docs.qualcomm.com/bundle/publicresource/80-70017-54/topics/tensorflow-lite-developer-workflow.md)