# 10 Network deployment

**Parent Topic:** https://docs.qualcomm.com/doc/80-PT790-993B/topic/dl_inference_tools_part.html

## 10.1 Kubernetes

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Machine learning applications built for the Cloud AI 100 accelerator can be containerized with docker and deployed with Kubernetes. The following figure shows a sample Kubernetes deployment.

Figure : Kubernetes cluster

![Kubernetes cluster](data:image/png;base64,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)

**Parent Topic:** [Network deployment](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

## 10.1.1 Qualcomm deliverables

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Kubernetes scripts for Qualcomm Cloud AI 100 are provided via Me2U download:

    qaic-k8s-device-plugin-1.0.tar.gzCopy to clipboard

Create a support case at [https://qualcomm-cdmatech-support.my.salesforce.com](https://qualcomm-cdmatech-support.my.salesforce.com) with the following problem areas to receive the files:

- Problem Area 1: BSP/HLOS
- Problem Area 2: AI Accelerator
- Problem Area 3: Installation

**Parent Topic:** [Kubernetes](https://docs.qualcomm.com/doc/80-PT790-993B/topic/Kubernetes.html)

## 10.1.2 Qaic-k8s-device-plugin

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

The qaic-k8s-device-plugin package is composed of the following tree structure:

    ├── qaic-k8s-device-plugin-1.0
    │   ├── build_image.sh
    │   ├── deploy-qranium-single.yaml
    │   ├── docker
    │   │   ├── aarch64
    │   │   │   └── Dockerfile.ubuntu
    │   │   └── x86_64
    │   │       └── Dockerfile.ubuntu
    │   ├── examples
    │   │   ─└─ pod-example.yml
    │   ├── main.go
    │   ├── qaic-device-plugin.yml
    │   ├── qaic.go
    │   ├── README.md
    │   ├── server.go
    └─└── vendorCopy to clipboard

Contents of the qaic-k8s-device-plugin package:

- QAic K8s Device Plugin
    - Sends the kubelet the list of AIC100 devices it manages.
    - Monitors AIC100 device health.
    - Handles AIC100 device allocation and cleanup.
- Qaic K8s Device Plugin Docker image build script
- Deployment scripts (YAML)
    - Device Plugin Deployment Script (deploys Qaic K8s Device Plugin as daemonset)
    - Sample AIC100 Workload Deployment Script

Prerequisites for deployment:

- Platform SDK installed on Kubernetes Worker Node
    - Required for QAic Linux kernel drivers and firmware images.
- QAic K8s Device Plugin Docker Image available through customer docker-hub or preloaded on Kubernetes Worker Node
- AIC100 Workload Docker Image available through customer docker-hub or preloaded on Kubernetes Worker Node

**Parent Topic:** [Kubernetes](https://docs.qualcomm.com/doc/80-PT790-993B/topic/Kubernetes.html)

## 10.1.3 Deployment

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

**Parent Topic:** [Kubernetes](https://docs.qualcomm.com/doc/80-PT790-993B/topic/Kubernetes.html)

## 10.1.3.1 Kubernetes

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services. A Kubernetes cluster consists of a set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node. The worker node(s) host the pods that are the components of the application workload. The master node manages the worker nodes and the pods in the cluster.

QAic K8s device plugin is provided to allow a Kubernetes master to manage AIC100 devices in the cluster.

**Parent Topic:** [Deployment](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deployment.html)

## 10.1.3.2 QAic K8s device plugin

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

The QAic device plugin for Kubernetes is a daemonset that allows you to automatically:

- Report the number of AIC100 devices on each node in your cluster.
- Monitor the health status AIC100 devices.
- Be capable to run containers with AIC100 devices.
- Provides a way to share device across containers.

The command to build the device plugin image is:

    $ bash build_image.sh -a <architecture>Copy to clipboard

Example:

    $ bash build_image.sh -a aarch64Copy to clipboard

To know architecture, run 'uname -m', the above command supports “aarch64” and “x86\_64”.

Note: A cross architecture build requires docker setup for binary translation.

To install device plugin on master node:

    $ kubectl create -f <device plugin file name>Copy to clipboard

Example:

    $ kubectl create -f qaic-device-plugin.yml
    daemonset.apps/qaic-device-plugin-daemonset createdCopy to clipboard

To view available QAic resources:

    $ kubectl describe node | grep qaicCopy to clipboard

## Argument details

Table : QAic K8s device plugin build script argument details

| Argument | Description |
| --- | --- |
| -a | &lt;Architecture type(x86\_64/aarch64)&gt; |
| --help | For help |

**Parent Topic:** [Deployment](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deployment.html)

## 10.1.4 Deployment examples

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

**Parent Topic:** [Kubernetes](https://docs.qualcomm.com/doc/80-PT790-993B/topic/Kubernetes.html)

## 10.1.4.1 Deploy with mini-kube

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

## Prerequisites

Docker and mini-kube installed on host machine with AIC100 card.

## Start mini-kube

Make sure mini-kube is up and running,

- As a root, start mini-kube using the following command (this will use the docker registry of your local machine):

        $ minikube start --driver=noneCopy to clipboard
- Check that '/var/lib/kubelet/device-plugins/kubelet.sock' exists.
- Run the following command to check that the node shows up:

        $ kubectl describe nodeCopy to clipboard

**Parent Topic:** [Deployment examples](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deployment_examples.html)

## 10.1.4.1.1 Start mini-cube

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Make sure mini-kube is up and running,

- As a root, start mini-kube using the following command (this will use the docker registry of your local machine):

        $ minikube start --driver=noneCopy to clipboard
- Check that '/var/lib/kubelet/device-plugins/kubelet.sock' exists.
- Run the following command to check that the node shows up:

        $ kubectl describe nodeCopy to clipboard

**Parent Topic:** [Deploy with mini-kube](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_mini_kube.html)

## 10.1.4.1.2 QAic docker image

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Build the docker image using the QAic docker build script with Apps-SDK and Platform-SDK.

- Get QAic docker build script, Apps-SDK, and Platform-SDK onto your system.
- Use the following command to build the docker image:

        $ ./build_image.sh --apps-sdk ~/qaic-apps-1.0.103.zip --platform-sdk ~/qaic-platform-sdk-1.0.103.zip --tag "1.0.103" --os centos7 Copy to clipboard
- Check the docker image created above:

        $ docker images
        REPOSITORY         TAG        IMAGE ID       CREATED             SIZE
        qran-centos7      1.0.103    5f15df6a4b25    5 minutes ago       3.54GBCopy to clipboard

**Parent Topic:** [Deploy with mini-kube](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_mini_kube.html)

## 10.1.4.1.3 QAic K8s device plugin

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Build the device plugin docker image and install using device plugin build script, qaic-device-plugin.yml file.

- Get QAic k8s device plugin build script and .yml files.
- Use the following command to build the device plugin image:

        $ bash build_image.sh -a  aarch64Copy to clipboard
- Check the docker image created above:

        $ docker images
        REPOSITORY               TAG      IMAGE ID         CREATED        SIZE
        qaic-k8s-device-plugin   v1.0.0   f8de6163fc79     5 days ago     82.2MBCopy to clipboard
- To install the device plugin, use the following command:

        $ kubectl create -f qaic-device-plugin.yml
        daemonset.apps/qaic-device-plugin-daemonset createdCopy to clipboard
- To view available qaic resources:

        $ kubectl describe node | grep qaic
        
        qualcomm.com/qaic:  4
        qualcomm.com/qaic:  4
          kube-system                qaic-device-plugin-daemonset-d2xnj     0 (0%)        0 (0%)      0 (0%)           0 (0%)         160m
          qualcomm.com/qaic  1          1Copy to clipboard

**Parent Topic:** [Deploy with mini-kube](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_mini_kube.html)

## 10.1.4.1.4 Running deployment

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Create and run the deployment and verify by querying the device and running ResNet-50 workload:

- To create the deployment:

        $ kubectl apply --filename=./deploy-qranium-single.yaml --record=true
        deployment.apps/qranium-deployment createdCopy to clipboard
- Check if the deployment is running:

        $ kubectl get deployments
        NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
        qranium-deployment   1/1     1            1           160mCopy to clipboard
- Run the following command to get the running containers:

        $ kubectl get pods
        NAME                                 READY   STATUS    RESTARTS   AGE
        qranium-deployment-69c588c54f-vrsl6  1/1     Running   0          7sCopy to clipboard
- Run the following to get a shell in the pod:

        $ kubectl exec --stdin --tty qaic-device-plugin-daemonset-vrsl6 -- /bin/bash
        bash-4.4$Copy to clipboard
- From the container, query device to display card details:

        bash-4.4$ /opt/qti-aic/tools/qaic-util -q
        
        LRT QC_IMAGE_VERSION: LRT.AIC.1.4.1.1.12
        LRT IMAGE_VARIANT: LRT.AIC.REL
        Number of devices: 1
        QID 0
                Status:Ready
                PCI Address:0002:01:00.0
                PCI Info:Unassigned class [ff00] Qualcomm Device a100
                HW Version:0.1.0.0
                HW Serial:0x9ae51a65
                FW Version:1.1.12
                FW QC_IMAGE_VERSION:QSM.AIC.1.1.12
                FW OEM_IMAGE_VERSION:
                FW IMAGE_VARIANT:AIC100.REL
                NSP Version:1.1.5
                NSP QC_IMAGE_VERSION:NSP.AIC.1.1.5
                NSP OEM_IMAGE_VERSION:
                NSP IMAGE_VARIANT:aic100.nsp.prodQ
                Compiler Version:0
                Dram Total:8122 MB
                Dram Free:8122 MB
                Dram Fragmentation:0.00%
                Vc Total:16
                Vc Free:16
                Nsp Total:8
                Nsp Free:8
                Peak Dram Bw:0.0
                Peak Sram Bw:0.0
                Peak PcieBw:0.0
                MCID Total:3072
                MCID Free:3072
                Semaphore Total:32
                Semaphore Free:32
                Constants Loaded:0
                Constants In-Use:0
                Networks Loaded:0
                Networks Active:0Copy to clipboard
- To run ResNet-50 workload, test data for v1 or v2 hardware versions are located at:

        /opt/qti-aic/test-data/aic100/<v1 or v2>Copy to clipboard
- Determine hardware version using qaic-util:

        bash-4.4$ /opt/qti-aic/tools/qaic-util -q | grep "HW Version"
        HW Version:0.1.0.0Copy to clipboard
- From the container run the quantized ResNet-50 workload using qaic-runner:

        bash-4.4$ /opt/qti-aic/exec/qaic-runner -t /opt/qti-aic/test-data/aic100/v1/1nsp/1nsp-quant-resnet50/ -n 5000 -a 8
        
        Device: ID 0
        Test path: /opt/qti-aic/test-data/aic100/v1/1nsp/1nsp-quant-resnet50/
        Number of activations: 8
        InferenceCnt 4960 TotalDuration 3227623us Inf/Sec 1536.73Copy to clipboard

**Parent Topic:** [Deploy with mini-kube](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_mini_kube.html)

## 10.1.4.1.5 Prerequisites

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Docker and mini-kube installed on host machine with AIC100 card.

**Parent Topic:** [Deploy with mini-kube](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_mini_kube.html)

## 10.1.4.2 Deploy with kubeadm

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

**Parent Topic:** [Deployment examples](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deployment_examples.html)

## 10.1.4.2.1 On Kubernetes master

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Initialize and start kubeadm as shown:

- If the user’s kube config is not listed in your KUBECONFIG environment variable, append it to your KUBECONFIG environment variable.

        $ export KUBECONFIG=/local/mnt/workspace/qranium/.kube/configCopy to clipboard
- Initialize a Kubernetes control plane node:

        $ kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.16.15Copy to clipboard

    If it is successful, then you will see the following message in the output:

        Your Kubernetes control-plane has initialized successfully!Copy to clipboard
- Copy admin.conf to the user’s kube config:

        $ yes | cp -if /etc/kubernetes/admin.conf /local/mnt/workspace/.kube/configCopy to clipboard
- Change permission:

        $ chmod a+rx /local/mnt/workspace/.kube/configCopy to clipboard
- Install pod network:

        $ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
        
        podsecuritypolicy.policy/psp.flannel.unprivileged created
        clusterrole.rbac.authorization.k8s.io/flannel created
        clusterrolebinding.rbac.authorization.k8s.io/flannel created
        serviceaccount/flannel created
        configmap/kube-flannel-cfg created
        daemonset.apps/kube-flannel-ds createdCopy to clipboard
- Install device plug-in:

        $ kubectl create -f ./qaic-deviceplugin/qaic-device-plugin.yml
        daemonset.apps/qaic-device-plugin-daemonset createdCopy to clipboard
- Verify the pod(s) master node is up and running:

        $ kubectl get pods -o wide --all-namespaces
        NAMESPACE    NAME                                    READY   STATUS  ...
        kube-system  coredns-5644d7b6d9-6jwkz                1/1     Running ...
        kube-system  coredns-5644d7b6d9-bxtfq                1/1     Running ...
        kube-system  etcd-qranium-linux                      1/1     Running ...
        kube-system  kube-apiserver-qranium-linux            1/1     Running ...
        kube-system  kube-controller-manager-qranium-linux   1/1     Running ...
        kube-system  kube-flannel-ds-mlcxr                   1/1     Running ...
        kube-system  kube-proxy-lmk5w                        1/1     Running ...
        kube-system  kube-scheduler-qranium-linux            1/1     Running ...
        
        $ kubectl get nodes
        NAME            STATUS   ROLES    AGE   VERSION
        qranium-linux   Ready    master   61m   v1.16.15Copy to clipboard

**Parent Topic:** [Deploy with kubeadm](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_kubeadm.html)

## 10.1.4.2.2 On Kubernetes worker node

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

- Join master node:

        $ kubeadm join 10.63.26.60:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash data>Copy to clipboard

    Example:

        $ kubeadm join 10.63.26.60:6443 --token r4u4d0.0atuo02hn8u79jp1 --discovery-token-ca-cert-hash sha256: f7b75dea0238536845a35476273226ee81ab4deaecd30e7bc1fedd4b265e864dCopy to clipboard

    If the command above is successful, then you will see the following output:

        This node has joined the cluster:
        * Certificate signing request was sent to apiserver and a response was received.
        * The Kubelet was informed of the new secure connection details.
        Run 'kubectl get nodes' on the control-plane to see this node join the cluster.Copy to clipboard
- In the join command above, if kubelet does not start automatically on the host (a known issue with the SM8250 CentOS release for Edge) then:
    - Open another window and run the following command to start kubelet manually:

            $ /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1Copy to clipboard

**Parent Topic:** [Deploy with kubeadm](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_kubeadm.html)

## 10.1.4.2.3 On Kubernetes master

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Verify that the worker node has joined the master. Run the deployment and verify by querying the device and running a ResNet-50 workload from the master:

- Verify worker node has joined the master:

        $ kubectl get nodes
        NAME            STATUS   ROLES    AGE   VERSION
        ax260-hdk8250   Ready    <none>   11m   v1.16.14
        qranium-linux   Ready    master   99m   v1.16.15Copy to clipboard
- Check pods:

        $ kubectl get pods -o wide --all-namespaces
        NAMESPACE     NAME                                   READY   STATUS  ...
        kube-system   coredns-5644d7b6d9-6jwkz               1/1     Running ... 
        kube-system   coredns-5644d7b6d9-bxtfq               1/1     Running ...
        kube-system   etcd-qranium-linux                     1/1     Running ...
        kube-system   kube-apiserver-qranium-linux           1/1     Running ...
        kube-system   kube-controller-manager-qranium-linux  1/1     Running ...
        kube-system   kube-flannel-ds-8hdxv                  1/1     Running ...
        kube-system   kube-flannel-ds-mlcxr                  1/1     Running ...
        kube-system   kube-proxy-lmk5w                       1/1     Running ...
        kube-system   kube-proxy-zwxj4                       1/1     Running ...
        kube-system   kube-scheduler-qranium-linux           1/1     Running ...
        kube-system   qaic-device-plugin-daemonset-d2xnj     1/1     Running ...Copy to clipboard
- To create the deployment:

        $ kubectl apply --filename=./deploy-qranium-single.yaml --record=true
        
        deployment.apps/qranium-deployment createdCopy to clipboard
- Check if the deployment is running:

        $ kubectl get deployments
        
        NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
        qranium-deployment   1/1     1            1           2m34sCopy to clipboard
- Check ‘`qranium-deployment`’ pod is in running and ready (1/1) state:

        $ kubectl get pods -o wide --all-namespaces
        
        NAMESPACE     NAME                                   READY   STATUS  ...
        default       qranium-deployment-77cc676d45-fv966    1/1     Running ...
        kube-system   coredns-5644d7b6d9-6jwkz               1/1     Running ...
        kube-system   coredns-5644d7b6d9-bxtfq               1/1     Running ...
        kube-system   etcd-qranium-linux                     1/1     Running ...
        kube-system   kube-apiserver-qranium-linux           1/1     Running ...
        kube-system   kube-controller-manager-qranium-linux  1/1     Running ...
        kube-system   kube-flannel-ds-8hdxv                  1/1     Running ...
        kube-system   kube-flannel-ds-mlcxr                  1/1     Running ...
        kube-system   kube-proxy-lmk5w                       1/1     Running ...
        kube-system   kube-proxy-zwxj4                       1/1     Running ...
        kube-system   kube-scheduler-qranium-linux           1/1     Running ...
        kube-system   qaic-device-plugin-daemonset-d2xnj     1/1     Running ...Copy to clipboard
- Run the following command to get a shell to the running container:

        $ kubectl exec --stdin --tty <pod name> -- /bin/bashCopy to clipboard

    Example:

        $ kubectl exec --stdin --tty qranium-deployment-77cc676d45-fv966 -- /bin/bash
        bash-4.4$Copy to clipboard
- From the container, query device to display card details:

        bash-4.4$ /opt/qti-aic/tools/qaic-util -q
        
        LRT QC_IMAGE_VERSION: LRT.AIC.1.4.1.1.12
        LRT IMAGE_VARIANT: LRT.AIC.REL
        Number of devices: 1
        QID 0
                Status:Ready
                PCI Address:0002:01:00.0
                PCI Info:Unassigned class [ff00] Qualcomm Device a100
                HW Version:0.1.0.0
                HW Serial:0x9ae51a65
                FW Version:1.1.12
                FW QC_IMAGE_VERSION:QSM.AIC.1.1.12
                FW OEM_IMAGE_VERSION:
                FW IMAGE_VARIANT:AIC100.REL
                NSP Version:1.1.5
                NSP QC_IMAGE_VERSION:NSP.AIC.1.1.5
                NSP OEM_IMAGE_VERSION:
                NSP IMAGE_VARIANT:aic100.nsp.prodQ
                Compiler Version:0
                Dram Total:8122 MB
                Dram Free:8122 MB
                Dram Fragmentation:0.00%
                Vc Total:16
                Vc Free:16
                Nsp Total:8
                Nsp Free:8
                Peak Dram Bw:0.0
                Peak Sram Bw:0.0
                Peak PcieBw:0.0
                MCID Total:3072
                MCID Free:3072
                Semaphore Total:32
                Semaphore Free:32
                Constants Loaded:0
                Constants In-Use:0
                Networks Loaded:0
                Networks Active:0Copy to clipboard
- To run ResNet-50 workload, test data for v1 or v2 hardware versions located at:

        /opt/qti-aic/test-data/aic100/<v1 or v2>Copy to clipboard
- Determine hardware version using qaic-util:

        bash-4.4$ /opt/qti-aic/tools/qaic-util -q | grep "HW Version"
        HW Version:0.1.0.0Copy to clipboard
- From the container, run the quantized ResNet-50 workload using qaic-runner:

        bash-4.4$ /opt/qti-aic/exec/qaic-runner -t /opt/qti-aic/test-data/aic100/v1/1nsp/1nsp-quant-resnet50/ -n 5000 -a 8
        
        Device: ID 0
        Test path: /opt/qti-aic/test-data/aic100/v1/1nsp/1nsp-quant-resnet50/
        Number of activations: 8
        InferenceCnt 4960 TotalDuration 3294043 us Inf/Sec 1505.75Copy to clipboard

**Parent Topic:** [Deploy with kubeadm](https://docs.qualcomm.com/doc/80-PT790-993B/topic/deploy_with_kubeadm.html)

## 10.2 QAic device partition

Source: [https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

The device partitioning feature creates virtual devices from a subset of NSPs. Each device will be assigned a unique ID, which then can be passed into the container.

**Feature overview:**

Figure : Device before and after the partition

![Device before and after the partition](data:image/png;base64,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)

Command to create device partitions:

    $sudo /opt/qti-aic/tools/qaic-dev-partition -q /opt/qti-aic/test-data/aic100/v2/<#>nsp/<#>nsp-quant-resnet50/programqpc.bin -r <#>Copy to clipboard

Example:

- Create device partitions:

        $sudo /opt/qti-aic/tools/qaic-dev-partition -q /opt/qti-aic/test-data/aic100/v2/4nsp/4nsp-quant-resnet50/programqpc.bin -r 4Copy to clipboard

Note:
    - Before partition, QID\_0 device with 14 NSPs available.
    - The above command will create 4 partitions, QID\_0 (2NSPs, this is the original device), QID\_100 to QID\_102 (4 NSPs, these are new devices created).
    - The above command is like a daemon which needs to be kept in running state; once it is canceled (Ctl+C) all the partitions will get cleared.
    - The `qaic-dev-partition` utility is part of SDK release.
- Open another window and check new devices that have been created by above command:

        $ ls /devCopy to clipboard

    Example:

        qaic_aic100_0, qaic_aic100_1,  
        qaic_aic100_2, qaic_aic100_3Copy to clipboard
- Run docker image with the partition:

        $sudo docker run -dit --name qran-centos-partition --device=/dev/qaic_aic100_1 qran-centos8:1.2.73Copy to clipboard
- Get container ID:

        $sudo docker psCopy to clipboard

    Example:

        CONTAINER ID   IMAGE                  COMMAND        CREATED 
        d8efeb696508   qran-centos8:1.2.73    "/bin/bash"    27 seconds agoCopy to clipboard
- Open a shell in the docker container and run inference:
          
    Run container:

        $sudo docker exec -it d8efeb696508 /bin/bashCopy to clipboard
- Check resources: (Make sure of QID & resources)

        $sudo /opt/qti-aic/tools/qaic-util -qCopy to clipboard

    Example:

        QID 100 
        Nsp Total:4 
        Nsp Free:4 Copy to clipboard
- Run inference for ResNet-50 workload:

        $sudo /opt/qti-aic/exec/qaic-runner -t /opt/qti-aic/test-data/aic100/v2/4nsp/4nsp-quant-resnet50/ -d 100 -n 5000 -a 1Copy to clipboard

Table : qaic-dev-partition argument details

| Argument | Description |
| --- | --- |
| -d, --aic-device-id | Optional qaic devices id. Default: Apply to all devices. |
| -q, --program-qpc | Path to the program QPC. This parameter can be repeated. The reservation will correspond to the largest program requested. |
| -a, --add-resources | Adds the resources needed to run programs. Should be used when the user wants to reserve for concurrent execution. |
| -h, --help | help |

**Parent Topic:** [Network deployment](https://docs.qualcomm.com/doc/80-PT790-993B/topic/network-deployment.html)

Last Published: Jul 26, 2023

[Previous Topic
Limitations](https://docs.qualcomm.com/bundle/publicresource/80-PT790-993B/topics/network-profiler.md#network-profiler_qaic-opstats-analyzer-limitations) [Next Topic
End-to-end workflow – QInference Optimizer](https://docs.qualcomm.com/bundle/publicresource/80-PT790-993B/topics/end-to-end-workflow-qinference-optimizer.md)