# Compile the model

The AI/ML models compilation step compiles a pre-trained model defined
in other formats (ONNX is preferred) into QPC (QAic Program Container)
format. This is required, since Cloud AI devices works on this format,
to run inference.

Before compiling model into QPC format, do the following:

1. Use ONNX format as input.
2. Try to squash the original model into a single file ONNX format.

A pretrained model can be compiled in three ways:

1. Using `qaic-exec`, a binary executable shipped with the Apps SDK. This
CLI tool has support for all the latest compiler flags.
2. Using high level Python APIs.
3. Using C++ APIs.

The remainder of this section shows how to compile the model using `qaic-exec` and how to tune performance.

## Compile using `qaic-exec`

The `qaic-exec` (QAic executor) is a CLI tool that you use to compile the model. The tool is at `/opt/qti-aic/exec/qaic-exec`.

The tutorials and models folder (#FIXME) provides several examples of
`qaic- exec` usage.

The help and usage command shown in the following example provide an extensive list of arguments and descriptions.

/opt/qti-aic/exec/qaic-exec -h
    /opt/qti-aic/exec/qaic-exec --usage
    Copy to clipboard

The following output shows the explanations for some of the frequently used arguments:

-m=<path>;, -model=<path> # specifies the path of input ONNX model
    
    -onnx-define-symbol=<sym, value> # defines the names and values of the ONNX symbols that needed to be passed into the QPC.
      For example
     -onnx-define-symbol=sequence,10 # For single symbol
     -onnx-define-symbol=sequence,10 -onnx-define-symbol=batch_size,8 # For more than one symbol
    
    -aic-num-cores=<numCores>
      The Cloud AI cards can have a number of Neural Signal Processing cores (a.k.a AI cores) based on the SKU. The Inferencing workload can be distributed among different cores, so that they can execute concurrently and can produce more efficient inferencing. Refer to Tune Performance section on how to set this value.
    
    -ols= <1,2,4,8.. numCores>
      Factor to increase splitting of network operations for more fine-grained parallelism. Refer to Tune Performance section on how to set this value.
    
    -mos= <1,2,4,8.. numCores>
      Effort level to reduce on-chip memory usage. Refer to Tune Performance section on how to set this value.
    
    -multicast-weights
      Reduce DDR bandwidth by loading weights used on multiple-cores only once and multicasting to other cores.
    
    -convert-to-fp16
      mandatory flag, ensures that compiled QPC executes all floating point computations on the AIC 100 device is 16-bit precision.
    
    -batchsize=<numBatch>
      batchsize refers to number of number of input samples that can be passed to the model during inferencing. Ideally a careful selection of batch size can facilitate better parallel processing and hence a better throughput from the device. Tune performance section expands on batchsize selection.
    
    -stats-batchsize=<numBatch>
      Set this value to numBatch. Used in performance statistics reporting
    
    -aic-binary-dir=<path>
      specifies the output QPC path.
    
    -aic-hw
      Mandatory flag. This flag enables the QPC to be run on hardware.
    
    -compile-only
      Mandatory flag, allows to only compile and produce the QPC format file for the model and does not run the model with random data. Use qaic-runner CLI to execute the QPC.
    
    -aic-hw-version=2.0
      The version string must be passed as "2.0" which is the .
    
    -aic-profiling-type=<stats|trace|latency>
      Used in device level profiling. Refer to Profiler notebook under tutorials.
    Copy to clipboard

`qaic-exec` can also be used to dump the operators supported across
onnx, tensorflow, pytorch, caffe or caffe2 ML frameworks.

/opt/qti-aic/exec/qaic-exec -operators-supported=<onnx | tensorflow | pytorch | caffe | caffe2>
    Copy to clipboard

## Tune performance

Throughput (inferences per second) and latency (time per inference)
tuning techniques for Cloud AI platforms are discussed in this section.

### Key performance parameters

The following parameters are key parameters that require tuning to achieve the best throughput and latency based on your use case.

- Core: Cloud AI Platforms contain multiple AI cores depending on the SKU. EachAI core contains one or more scalar, vector and tensor engines which provide a rich instruction set to accelerate ML operations A model can be compiled for one or more AI cores.

    The `core` parameter is a a compile parameter.
- Instance (a.k.a activation):  The compiled binary of a model executing inferences on a set of AI cores. Let’s say bert-large was compiled for 2 AI cores and the Cloud AI device has 14 AI cores. Each instance will run on 2 AI cores. Up to seven instances (on 14 AI cores) can be executed in parallel.

> 
> 
> The `instance` parameter is a runtime parameter.

- Batch size (bs): The number of input elements inferred by an instance.

> 
> 
> The `bs` parameter is a a compile parameter.

- Set-size:  the number of inferences that can be queued up on the host per activation. Set-size helps hide host side overhead by pipelining inferences. Models that require large input/output data to be transferred (from/to host and device) or some pre-processing/post-processing on the host can see throughput increases with increasing set-size up to a certain value beyond which the device utilization cannot be improved.

> 
> 
> The `set-size` parameter is a runtime parameter.

- Instance and batch size: The product of number of instances and batch size provides the total input samples that can be inferred in parallel on a single Cloud AI device.

### Cores and instances

The product of ‘number of instances’ and ‘number of AI cores used per
instance’ cannot exceed the total number of AI cores available on the
Cloud AI platform/card.

#### Optimize for best throughput or the least latency

[Model
configurator](https://docs.qualcomm.com/bundle/publicresource/topics/80-PT790-993B/network-perform-tuning.html#network-perform-tuning_qaic-model-configurator)
is a hardware-in-loop test tool that runs through various configurations
and identifies the best configuration for a model. The Model configurator
tool offers two workflows: highest throughput and least latency.

Refer to the performance-tuning [Tutorial #1 -
CV](https://github.com/quic/cloud-ai-sdk/blob/1.10/tutorials/Computer-Vision/Perfomance-Tuning-Beginner)
and [Tutorial #2 -
NLP](https://github.com/quic/cloud-ai-sdk/tree/1.10/tutorials/NLP/Performance-Tuning-Beginner)
for step by step walkthrough for performance tuning.

Refer to Performance tuning tutorial for the workflow for optimizing for
best throughput and least latency.

For least latency configuration, batch-size should be set to 1. Set-size
of 1 provides the least latency.

For models that require host side pre-processing, such as CV models, you can define a higher set size to improve throughput significantly with only a slight increase in latency.

#### Throughput and latency vs batch-size

For an instance on a fixed number of cores, increasing the batch size
(BS) from 1 will typically improve throughput. Increasing beyond the
optimal BS will cause the performance to drop.

![cloud-ai-mkdocs/images/throughput_latency_bs.png](data:image/png;base64,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)

#### Throughput vs cores and instances

Based on the total number of AI cores available on the device, a few
combinations of cores and instances exist and some of these combinations
provide better performance that others.

This example uses the standard SKU of the Cloud AI 100 with fourteen AI cores. Throughput for different combinations of cores and instances are
shown in the following figure. The batch-size is fixed. For example, C1 x
I12 represents the model compiled on 1 core and 12 instances deployed on
12 cores.

![cloud-ai-mkdocs/images/throughput_cores_instances.png](data:image/png;base64,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)

#### Next steps

Last Published: May 01, 2026

[Previous Topic
Export the model](https://docs.qualcomm.com/bundle/publicresource/80-99100-3/topics/index_Export-the-model.md) [Next Topic
Execute the QPC](https://docs.qualcomm.com/bundle/publicresource/80-99100-3/topics/index_model-execution.md)