# LiteRT architecture The LiteRT framework optimizes models for latency, model size, and power consumption. It helps to run them on devices with low-power requirements, such as mobile, embedded, and edge platforms. 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. The following figure shows the delegates the LiteRT framework uses to run models. Page-1 LiteRT LiteRT LiteRT model LiteRT model Input data Input data Output result Output result XNNPACK delegate for CPU XNNPACK delegate for CPU GPU delegate GPU delegate QNN delegate QNN delegate **Figure: LiteRT architecture** ## LiteRT on-device inference 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 running 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 Delegates allow you to offload the LiteRT graph execution to hardware accelerators, such as CPU, GPU, and the Hexagon Tensor Processor. Currently, LiteRT supports the following delegates: ### XNNPACK delegate for CPU The XNNPACK delegate uses the XNNPACK library to speed up 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 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 operations within a LiteRT model execution graph on the GPU. The default cross-compilation of the GPU delegate includes the LiteRT library, optimizing the execution of 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 The QNN delegate is a proprietary delegate designed for vendor-specific hardware acceleration to speed up LiteRT models. It’s 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 speed up models. For more information about these APIs, see [Qualcomm AI Engine direct SDK](bundle/publicresource/topics/80-63442-50). The QNN delegate can run 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 Qualcomm 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. ![../../_images/qnn-delegate-directory-structure.png](data:image/png;base64,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) **Figure: QNN delegate directory structure** ### 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 don’t have to recompile the application. To use the C++ API and run inference with LiteRT on Linux, see [Run inference using C++](https://ai.google.dev/edge/litert/inference#run-c). 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 more external delegate options. For instructions, see [External delegate options for QNN delegate](https://docs.qualcomm.com/doc/80-70018-54/topic/sample-applications.html#external-delegate-options-for-qnn-delegate). ## Next steps - [Get started](https://docs.qualcomm.com/doc/80-70018-54/topic/getting-started.html#getting-started) - [Run LiteRT sample applications](https://docs.qualcomm.com/doc/80-70018-54/topic/sample-applications.html#run-litert-sample-apps) Last Published: Apr 07, 2025 [Previous Topic Get started with LiteRT](https://docs.qualcomm.com/bundle/publicresource/80-70018-54/topics/getting-started.md) [Next Topic LiteRT developer workflow](https://docs.qualcomm.com/bundle/publicresource/80-70018-54/topics/tensorflow-lite-developer-workflow.md)