> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QIR software architecture

The QIR SDK builds on top of the Qualcomm Linux distributions and various function SDKs. The following figure shows the overall software architecture.

<img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-1.svg?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=ca59f9da992b0dbd0e4632e46b20b29c" alt="qirp-arch-1" style={{ width: '100%', display: 'block', margin: '0 auto' }} width="954" height="706" data-path="archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-1.svg" />

<p style={{ textAlign: 'center', fontWeight: 'bold'}}>
  Figure: Overall software architecture of QIR SDK
</p>

## Layers

The QIR SDK builds on top of the open-source Yocto Project and integrates multiple foundational software layers, making it easier to use, customize, and extend. These layers include:

<p style={{ textAlign: 'center', fontWeight: 'bold' }}>
  Table: Layers of the QIR SDK
</p>

| **Layer** | **Description** |
| :- | :- |
| Qualcomm Linux Distribution | This is a collection of layers from Qualcomm. It provides the foundational Linux environment and multimedia support. |
| Robotics SDK layers | This is a collection of layers from Qualcomm. It provides the robot-related support. |
| meta-ros layer | This is a series of OpenEmbedded layers that adds Robot Operating System (ROS) support to embedded Linux distributions built with the Yocto Project. For more details, see [meta-ros](https://github.com/ros/meta-ros). |

## Component function SDKs

The QIR SDK integrates specialized components called function SDKs. The following table lists the details:

<p style={{ textAlign: 'center', fontWeight: 'bold' }}>
  Table: Function SDKs used by QIR SDK
</p>

| Function SDK | Description |
| - | :- |
| Qualcomm® Intelligent Multimedia SDK | The Qualcomm Intelligent Multimedia SDK (IM SDK) provides a unified environment for developing AI and multimedia use cases at the Edge on the Qualcomm® Linux platforms. For more details, see the [Qualcomm Intelligent Multimedia SDK (IM SDK) documentation](https://imsdkdocs.qualcomm.com/). |
| Qualcomm® Neural Processing SDK | The Qualcomm Neural Processing SDK enables execution, optimization, and deployment of deep neural networks across Snapdragon CPUs, GPUs, and DSPs, supporting model conversion, quantization, debugging, and application integration through C++/Java. For more details, see the [Qualcomm AI Runtime (QAIRT) Overview](../../Key-Documents/AI-Developer-Workflow/topic/qairt). |
| Qualcomm® AI Engine Direct SDK | The Qualcomm AI Engine Direct SDK helps build model files (for example, from PyTorch) to run on various device processors (CPU, GPU, DSP, HTP, or LPAI) across multiple operating systems. For more details, see the [Qualcomm AI Runtime (QAIRT) Overview](../../Key-Documents/AI-Developer-Workflow/topic/qairt). |

The following figure shows a more detailed tech stack. The QIR SDK implements its core functionality modules, based on which it builds the sample applications. Besides, the QIR SDK provides tools to make the development process smooth and faster.

<img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=e2812b56280e0f199f13bba7a9721cd8" alt="<QIR SDK tech stack diagram>" style={{ width: '100%', display: 'block', margin: '0 auto' }} data-og-width="1234" width="1234" data-og-height="778" height="778" data-path="archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=280&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=125970aaea93eed85693cba5955cb314 280w, https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=560&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=9f653bc862c837efcd243923d924e2b0 560w, https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=840&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=2a957d740a29e6e68cf59b48f60657d2 840w, https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=1100&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=13b4b6389c4dfb72f7e81766551f00b2 1100w, https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=1650&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=4b2bc61f29e96c49814bb6cc68a2a271 1650w, https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/SDKs/QIR-SDK-2.0/media/80-65220-2-qirp-sdk-qsg/qirsdk-arch-2.svg?w=2500&fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=fa7c40589cc154ca939d21d88f19e574 2500w" />

<p style={{ textAlign: 'center', fontWeight: 'bold' }}>
  Figure: QIR SDK tech stack
</p>

## Sample applications

To help you understand the features, the QIR SDK provides sample applications in the following categories:

| Sample application categories | Description |
| :- | :- |
| AI samples | Provides AI-related sample applications, such as hand detection, image classification, and object detection. |
| Robotics samples | Provides a robotics simulation platform where you can develop your own robotics applications, such as `simulation-sample-AMR-simple-motion`. |
| Platform samples | Provides ROS samples for common platform types including OCR, Rplidar, Orbbec Camera, and IMU. |

## Tools

To speed up the deployment of your development environment, the QIR SDK integrates the following tools:

| Tool name | Description |
| :- | :- |
| Cross-compile toolchain | Provides cross-compile toolchain, which can compile binaries on the host that run on the device. |
| ROS2 URDF FILE | Provides the URDF file for the robot, which can visualize the robot in ROS2. |
| Easy-to-use script | Provides the single-command script for configuring the device. |
