# 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 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 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 | <Architecture type(x86\_64/aarch64)> | | --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/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 --discovery-token-ca-cert-hash sha256: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 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 -- /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/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)