# QNN API Revision History

| API Version | SDK Version | Description |
| --- | --- | --- |
| 2.36.0 | 2.47.0 | > <br>> <br>> <ul class="simple"><br>> <li><p>Adds QAIRT API</p></li><br>> <li><p>Adds GPU Device interface specialization</p></li><br>> <li><p>Adds new DLC context binary handling functions to System.</p></li><br>> <li><p>Adds new UBWC data formats to QnnMem and properties to discover support.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Add ability to alias tensors in GPU custom ops.</p></li><br>> <li><p>Add hinting capability to QnnSystemDlc.</p></li><br>> <li><p>Added new DX12 MemType and a property to discover support for it on a backend.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Rectify accidental ABI breakage in QnnSystemInterface.h.</p></li><br>> <li><p>Add ability to add new records and save them in QnnSystemDlc.</p></li><br>> <li><p>Add support for ArrayOf encoding type.</p></li><br>> <li><p>API 2.34 is backwards compatible with previous releases.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.32.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.33 except QnnSystemInterface.h rectifying a<br>> problem introduced in SDK 2.44.0.</p></li><br>> </ul> |
| 2.35.0 | 2.46.0 | > <br>> <br>> <ul class="simple"><br>> <li><p>Adds QAIRT API</p></li><br>> <li><p>Adds GPU Device interface specialization</p></li><br>> <li><p>Adds new DLC context binary handling functions to System.</p></li><br>> <li><p>Adds new UBWC data formats to QnnMem and properties to discover support.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Add ability to alias tensors in GPU custom ops.</p></li><br>> <li><p>Add hinting capability to QnnSystemDlc.</p></li><br>> <li><p>Added new DX12 MemType and a property to discover support for it on a backend.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Rectify accidental ABI breakage in QnnSystemInterface.h.</p></li><br>> <li><p>Add ability to add new records and save them in QnnSystemDlc.</p></li><br>> <li><p>Add support for ArrayOf encoding type.</p></li><br>> <li><p>API 2.34 is backwards compatible with previous releases.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.32.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.33 except QnnSystemInterface.h rectifying a<br>> problem introduced in SDK 2.44.0.</p></li><br>> </ul> |
| 2.34.0 | 2.45.0 | > <br>> <br>> <ul class="simple"><br>> <li><p>Adds QAIRT API</p></li><br>> <li><p>Adds GPU Device interface specialization</p></li><br>> <li><p>Adds new DLC context binary handling functions to System.</p></li><br>> <li><p>Adds new UBWC data formats to QnnMem and properties to discover support.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Add ability to alias tensors in GPU custom ops.</p></li><br>> <li><p>Add hinting capability to QnnSystemDlc.</p></li><br>> <li><p>Added new DX12 MemType and a property to discover support for it on a backend.</p></li><br>> </ul><br><br><br><br>—————————————————————————————+<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>Rectify accidental ABI breakage in QnnSystemInterface.h.</p></li><br>> <li><p>Add ability to add new records and save them in QnnSystemDlc.</p></li><br>> <li><p>Add support for ArrayOf encoding type.</p></li><br>> <li><p>API 2.34 is backwards compatible with previous releases.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.32.</p></li><br>> <li><p>API 2.34 is ABI compatible with API 2.33 except QnnSystemInterface.h rectifying a<br>> problem introduced in SDK 2.44.0.</p></li><br>> </ul> |
| 2.33.0 | 2.44.0 | <ul class="simple"><br><li><p>Add support for datatypes: QNN_DATATYPE_UINT_2, QNN_SFIXED_POINT_2,<br>QNN_DATATYPE_UFIXED_POINT_2, QNN_DATATYPE_UINT_4, QNN_DATATYPE_FLOAT_4, and<br>QNN_DATATYPE_FLOAT_8. Support can be queried through backend supported<br>operations and op defintion supplements.</p></li><br><li><p>Add Qnn_MicroscalingEncoding_t to support microscaling floating point encodings.<br>Support through QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_MICROSCALING.</p></li><br><li><p>Add new priority levels: QNN_PRIORITY_HIGH_PLUS, QNN_PRIORITY_CRITICAL,<br>QNN_PRIORITY_CRITICAL_PLUS, and QNN_PRIORITY_HIGHEST.</p></li><br><li><p>API 2.33 is backwards compatible with previous releases.</p></li><br><li><p>API 2.33 is ABI compatible with API 2.32.</p></li><br></ul> |
| 2.32.0 | 2.42.0 | <ul class="simple"><br><li><p>Add support for BFloat16 datatypes. Operator support of BFloat16 can be queried<br>through backend supported operations and op definition supplements.</p></li><br><li><p>Add support for mapped quantization types: Qnn_BwAxisScaleOffsetMapped_t,<br>Qnn_BwBlockMapped_t, Qnn_BwBlockwiseExpansionMapped_t, and Qnn_BwFloatBlockEncoding_t<br>Support can be queried through<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BW_AXIS_SCALE_OFFSET_MAPPED,<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BW_BLOCK_SCALE_OFFSET_MAPPED,<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BW_BLOCKWISE_EXPANSION_MAPPED,<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BW_FLOAT_BLOCK.</p></li><br><li><p>API 2.32 is backwards compatible with previous releases.</p></li><br><li><p>API 2.32 is ABI compatible with API 2.31.</p></li><br></ul> |
| 2.31.0 | 2.41.0 | <ul class="simple"><br><li><p>Support updates of context binary sections. Can be used to prepare new LoRA updates<br>for an existing binary section. Updates are retrieved through<br>QnnContext_getBinarySectionUpdate and freed<br>through QnnContext_freeBinarySectionUpdate.</p></li><br><li><p>API 2.31 is backwards compatible with previous releases.</p></li><br><li><p>API 2.31 is ABI compatible with API 2.30.</p></li><br></ul> |
| 2.30.0 | 2.40.0 | <ul class="simple"><br><li><p>Support block encodings with float offsets for compatibility with GGUF model formats.<br>New encoding is added in Qnn_FloatBlockEncoding_t and backend support is queried<br>through QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_FLOAT_BLOCK.</p></li><br><li><p>Support tensor data formats QNN_TENSOR_DATA_FORMAT_UBWC_NV124R,<br>QNN_TENSOR_DATA_FORMAT_UBWC_NV124R_Y, and QNN_TENSOR_DATA_FORMAT_UBWC_NV124R_UV<br>to minimize data transformations in procesing pipelines utilizing UBWC. Support is<br>queried through QNN_PROPERTY_TENSOR_SUPPORT_UBWC_NV124R,<br>QNN_PROPERTY_TENSOR_SUPPORT_UBWC_NV124R_Y, and<br>QNN_PROPERTY_TENSOR_SUPPORT_UBWC_NV124R_UV.</p></li><br><li><p>API 2.30 is backwards compatible with previous releases.</p></li><br><li><p>API 2.30 is ABI compatible with API 2.29.</p></li><br></ul> |
| 2.29.0 | 2.39.0 | <ul class="simple"><br><li><p>Add Context configuration QNN_CONTEXT_CONFIG_GRAPH_RETENTION_ORDER to specify order<br>in which graphs should be retained in memory as multiple graphs are switched.<br>Support is queried through QNN_PROPERTY_CONTEXT_SUPPORT_GRAPH_RETENTION_ORDER</p></li><br><li><p>API 2.29 is backwards compatible with previous releases.</p></li><br><li><p>API 2.29 is ABI compatible with API 2.28/2.28.1.</p></li><br></ul> |
| 2.28.1 | 2.38.0 | <ul class="simple"><br><li><p>Clarified behavior when using NORMAL priority, which may be restricted by<br>the platform or backend.</p></li><br></ul> |
| 2.28.0 | 2.37.0 | <ul class="simple"><br><li><p>Added QnnContext_createFromBinaryWithCallback to create contexts from a user<br>provided callback. Enables users to provide custom or platform specific<br>mechanisms for incremental context binary loading at runtime. Depending on<br>implementation, users may see memory or performance benefits when compared to<br>QnnContext_createFromBinary().</p></li><br><li><p>API 2.28 is backwards compatible with previous releases.</p></li><br><li><p>API 2.28 is ABI compatible with API 2.27. Applications built with API 2.27<br>(QAIRT 2.36) may be used with API 2.28 (QAIRT 2.37) without recompilation.</p></li><br></ul> |
| 2.27.0 | 2.36.0 | <ul class="simple"><br><li><p>Added binary section type QNN_CONTEXT_SECTION_UPDATABLE_WEIGHTS and<br>QNN_CONTEXT_SECTION_UPDATABLE_QUANT_PARAM. Support for these binary section types<br>can be queried through QNN_PROPERTY_CONTEXT_SUPPORT_BINARY_WEIGHT_ONLY_UPDATES and<br>QNN_PROPERTY_CONTEXT_SUPPORT_BINARY_QUANT_ONLY_UPDATES.</p></li><br><li><p>Add QnnGlobalConfig component.</p></li><br><li><p>Extended Qnn_SocModel_t with more SoC Types.</p></li><br></ul> |
| 2.26.0 | 2.35.0 | <ul class="simple"><br><li><p>Added QnnContext_finalize to finish initialization of contexts created with<br>QNN_CONTEXT_CONFIG_OPTION_DEFER_GRAPH_INIT.</p></li><br></ul> |
| 2.25.0 | 2.33.0 | <ul class="simple"><br><li><p>Added tensor data formats QNN_TENSOR_DATA_FORMAT_HMX_WEIGHT.</p></li><br><li><p>Added QnnContext_getIncrementalBinary and QnnContext_releaseIncrementalBinary.<br>Support is queried through QNN_PROPERTY_CONTEXT_SUPPORT_INCREMENTAL_BINARY.</p></li><br></ul> |
| 2.24.0 | 2.31.0 | <ul class="simple"><br><li><p>Added tensor data formats QNN_TENSOR_DATA_FORMAT_UBWC_RGBA8888,<br>QNN_TENSOR_DATA_FORMAT_UBWC_NV12, QNN_TENSOR_DATA_FORMAT_UBWC_NV12_Y, and<br>QNN_TENSOR_DATA_FORMAT_UBWC_NV12_UV.</p></li><br></ul> |
| 2.23.0 | 2.30.0 | <ul class="simple"><br><li><p>Added tensor data format QNN_TENSOR_DATA_FORMAT_MX.</p></li><br></ul> |
| 2.22.0 | 2.29.0 | <ul class="simple"><br><li><p>Added tensor types QNN_TENSOR_TYPE_OPTIONAL_APP_WRITE,<br>QNN_TENSOR_TYPE_OPTIONAL_APP_READ, and QNN_TENSOR_TYPE_OPTIONAL_APP_READ_WRITE.<br>Support for these tensor types can be queried with<br>QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_WRITE,<br>QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_READ, and<br>QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_READ_WRITE.</p></li><br><li><p>Added new tensor memory type QNN_TENSORMEMTYPE_RETRIEVE_RAW. Support can be queried<br>through QNN_PROPERTY_TENSOR_SUPPORT_RETRIEVE_RAW.</p></li><br><li><p>Added QnnBackend_getProperty and QnnContext_getProperty. Support for custom<br>properties can be queried with QNN_PROPERTY_BACKEND_SUPPORT_CUSTOM_PROPERTY and<br>QNN_PROPERTY_CONTEXT_SUPPORT_CUSTOM_PROPERTY respectively.</p></li><br></ul> |
| 2.21.0 | 2.28.0 | <ul class="simple"><br><li><p>Added Qnn_OpMapping_t type.</p></li><br></ul> |
| 2.20.0 | 2.27.0 | <ul class="simple"><br><li><p>Added property QNN_PROPERTY_GRAPH_SUPPORT_ONLINE_PREPARE.</p></li><br></ul> |
| 2.19.0 | 2.26.0 | <ul class="simple"><br><li><p>Added error code QNN_GRAPH_ERROR_INVALID_CONTEXT.</p></li><br></ul> |
| 2.18.0 | 2.25.0 | <ul class="simple"><br><li><p>Added QnnContext_getBinarySectionSize, QnnContext_getBinarySection, and<br>QnnContext_applyBinarySection APIs to provide support for producing and applying<br>updates to context binaries after creation. Support can be queried through<br>QNN_PROPERTY_CONTEXT_SUPPORT_BINARY_UPDATES.</p></li><br></ul> |
| 2.17.0 | 2.24.0 | <ul class="simple"><br><li><p>Added QnnTensor_updateGraphTensors and QnnTensor_updateContextTensors APIs to<br>modify tensors after graph finalization.</p></li><br><li><p>Added QNN_TENSOR_TYPE_UPDATEABLE_&lt;&gt; for STATIC, NATIVE, APP_READ, APP_WRITE<br>and APP_READWRITE tensors and corresponding  properties QNN_SUPPORT_UPDATEABLE_&lt;&gt;</p></li><br><li><p>Add GraphInfoV2_t to return updateable tensors in context binary metadata.</p></li><br><li><p>Add error code QNN_COMMON_ERROR_SYSTEM_COMMUNICATION_FATAL</p></li><br><li><p>Add QnnContext_createFromBinaryListAsync to asynchronously initialize multiple<br>context binaries.</p></li><br><li><p>Add new quantization encoding schemes QNN_QUANTIZATION_ENCODING_BLOCK,<br>QNN_QUANTIZATION_ENCODING_BLOCKWISE_EXPANSION, and QNN_QUANTIZATION_ENCODING_VECTOR.<br>Support for these encoding schemes is determined through<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BLOCK,<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BLOCKWISE_EXPANSION, and<br>QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_VECTOR repsectively.</p></li><br></ul> |
| 2.16.0 | 2.23.0 | <ul class="simple"><br><li><p>Added QNN_PROFILE_EVENTUNIT_NONE.</p></li><br></ul> |
| 2.15.0 | 2.21.0 | <ul class="simple"><br><li><p>Introduced the QnnContext_createFromBinaryWithSignal API.</p></li><br><li><p>Added QNN_MEM_TYPE_DMA_BUF QnnMem type.</p></li><br><li><p>Clarified QnnProperty capability descriptions.</p></li><br></ul> |
| 2.14.0 | 2.20.0 | <ul class="simple"><br><li><p>Introduced Qnn_TensorV2_t. Tensor V2 adds API support for sparse tensors,<br>dynamically shaped tensors, and graph execution early termination. Please consult<br>SDK documentation for further details. Support can be queried via<br>QNN_PROPERTY_TENSOR_SUPPORT_SPARSITY, QNN_PROPERTY_TENSOR_SUPPORT_DYNAMIC_DIMENSIONS,<br>and QNN_PROPERTY_GRAPH_SUPPORT_EARLY_TERMINATION.</p></li><br></ul> |
| 2.13.0 | 2.19.0 | <ul class="simple"><br><li><p>Introduced the QnnContext_validateBinary API.</p></li><br></ul> |
| 2.12.0 | 2.18.0 | <ul class="simple"><br><li><p>Introduced the QnnGraph_getProperty API.</p></li><br><li><p>Allow QnnGraph_finalize for deserialized graphs created via<br>QnnContext_createFromBinary.</p></li><br><li><p>Introduced the QnnGraph_prepareExecutionEnvironment and<br>QnnGraph_releaseExecutionEnvironment APIs.</p></li><br><li><p>Added QNN_CONTEXT_CONFIG_BINARY_COMPATIBILITY context config and<br>QNN_CONTEXT_ERROR_BINARY_SUBOPTIMAL context error code.</p></li><br></ul> |
| 2.11.0 | 2.17.0 | <ul class="simple"><br><li><p>Introduced the QnnError.h API.</p></li><br><li><p>Introduced QNN_GRAPH_CONFIG_OPTION_SET_PROFILING_STATE and<br>QNN_GRAPH_CONFIG_OPTION_SET_PROFILING_NUM_EXECUTIONS graph configuration options.</p></li><br><li><p>Added QNN_PROPERTY_MEMORY_SUPPORT_MEM_TYPE_ION and<br>QNN_PROPERTY_MEMORY_SUPPORT_MEM_TYPE_CUSTOM capabilities.</p></li><br></ul> |
| 2.10.0 | 2.16.0 | <ul class="simple"><br><li><p>Added QNN_CONTEXT_CONFIG_ENABLE_GRAPHS context configuration option,<br>QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_ENABLE_GRAPHS capability, and<br>QNN_GRAPH_ERROR_DISABLED error code.</p></li><br><li><p>Added QNN_CONTEXT_CONFIG_MEMORY_LIMIT_HINT context configuration option and<br>QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_MEMORY_LIMIT capability.</p></li><br><li><p>Added QNN_CONTEXT_CONFIG_PERSISTENT_BINARY context configuration option and<br>QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_PERSISTENT_BINARY capability.</p></li><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_4 and QNN_DATATYPE_UFIXED_POINT_4 data types.</p></li><br></ul> |
| 2.9.0 | 2.15.0 | <ul class="simple"><br><li><p>Added QnnGraph_createSubgraph API and the QNN_PROPERTY_GRAPH_SUPPORT_SUBGRAPH<br>capability.</p></li><br><li><p>Added QnnBackend_setConfig API.</p></li><br><li><p>Added QNN_PROFILE_CONFIG_OPTION_ENABLE_OPTRACE and QNN_PROFILE_EVENTTYPE_TRACE.</p></li><br><li><p>Added QNN_PROPERTY_BACKEND_SUPPORT_COMPOSITION and<br>QNN_PROPERTY_TENSOR_SUPPORT_CONTEXT_TENSORS capability.</p></li><br><li><p>Added QNN_DATATYPE_FLOAT_64 data type.</p></li><br><li><p>Clarified QnnSignal behavior when used with QnnGraph_executeAsync.</p></li><br><li><p>Deprecated QNN_TENSOR_ERROR_ALREADY_EXISTS and QNN_TENSOR_ERROR_NAME_HASH_COLLISION<br>error codes. QnnTensor_createContextTensor and QnnTensor_createGraphTensor will no<br>longer generate them.</p></li><br></ul> |
| 2.8.0 | 2.14.0 | <ul class="simple"><br><li><p>Introduced QnnProfile_ExtendedEventData_t and QnnProfile_getExtendedEventData to<br>support binary large object data.</p></li><br><li><p>Added QnnProfile_setConfig and QNN_PROFILE_CONFIG_OPTION_CUSTOM and<br>QNN_PROFILE_CONFIG_OPTION_MAX_EVENTS configuration options.</p></li><br><li><p>Added the QNN_DATATYPE_STRING data type for scalars.</p></li><br></ul> |
| 2.7.2 | 2.13.0 | <ul class="simple"><br><li><p>Added QNN_GRAPH_ERROR_GENERAL error code.</p></li><br><li><p>Added QNN_PROPERTY_GRAPH_SUPPORT_PER_API_PROFILING capability.</p></li><br><li><p>Added QNN_SIGNAL_ERROR_INCOMPATIBLE_SIGNAL_TYPE error code.</p></li><br><li><p>Clarified unconfigured QnnSignal behavior.</p></li><br></ul> |
| 2.7.1 | 2.12.0 | <ul class="simple"><br><li><p>Added QNN_COMMON_ERROR_RESOURCE_UNAVAILABLE common error code.</p></li><br><li><p>Added QNN_GRAPH_ERROR_TIMED_OUT error code and corrected QnnGraph_execute and<br>QnnGraph_executeAsync API documentation to reference this error code.</p></li><br></ul> |
| 2.7.0 | 2.11.0 | <ul><br><li><p>Added QNN_COMMON_ERROR_LOADING_BINARIES common error code.</p></li><br><li><p>Added support for timeouts in QnnSignal</p><br><blockquote><br><div><ul class="simple"><br><li><p>QNN_SIGNAL_CONFIG_OPTION_TIMEOUT</p></li><br><li><p>QNN_PROPERTY_SIGNAL_SUPPORT_TIMEOUT</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Added QNN_CONTEXT_ERROR_MEM_ALLOC error code to QnnContext_getBinarySize and<br>QnnContext_getBinary</p></li><br><li><p>Added QNN_DEVICE_ERROR_INVALID_HANDLE error code to QnnDevice_getPlatformInfo and<br>QnnDevice_freePlatformInfo</p></li><br><li><p>Added QNN_DEVICE_ERROR_MEM_ALLOC error code to QnnDevice_getInfrastructure</p></li><br><li><p>Corrected occurrences of QNN_SIGNAL_ERROR_NOT_SUPPORTED to be<br>QNN_SIGNAL_ERROR_UNSUPPORTED</p></li><br></ul> |
| 2.6.0 | 2.10.40 | <ul class="simple"><br><li><p>Added QNN_BACKEND_CONFIG_OPTION_PLATFORM backend config option.</p></li><br><li><p>Added QNN_PROPERTY_BACKEND_SUPPORT_PLATFORM_OPTIONS property.</p></li><br><li><p>Added QNN_BACKEND_CONFIG_OPTION_PLATFORM backend error code.</p></li><br><li><p>Indicated that QNN_PRIORITY_NORMAL_HIGH and QNN_PRIORITY_HIGH can be silently<br>treated as QNN_PRIORITY_NORMAL in some scenarios.</p></li><br><li><p>Cleaned up unused SOC models.</p></li><br></ul> |
| 2.5.1 | 2.10.0 | <ul class="simple"><br><li><p>Added QNN_COMMON_ERROR_INCOMPATIBLE_BINARIES common error code.</p></li><br></ul> |
| 2.5.0 | 2.9.0 | <ul class="simple"><br><li><p>Added QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE capability.</p></li><br><li><p>Added QNN_PROPERTY_GRAPH_SUPPORT_BATCH_MULTIPLE capability.</p></li><br><li><p>Clarify that a Qnn_ProfileHandle_t can only be bound to one graph at a time.</p></li><br></ul> |
| 2.4.0 | 2.8.0 | <ul><br><li><p>Introduced continuous QnnGraph profiling via the<br>QNN_GRAPH_CONFIG_OPTION_PROFILE_HANDLE config option. Backend support is<br>communicated via QNN_PROPERTY_GRAPH_SUPPORT_CONTINUOUS_PROFILING.</p></li><br><li><p>Added the following QnnProfile event types:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QNN_PROFILE_EVENTTYPE_EXECUTE_QUEUE_WAIT</p></li><br><li><p>QNN_PROFILE_EVENTTYPE_EXECUTE_PREPROCESS</p></li><br><li><p>QNN_PROFILE_EVENTTYPE_EXECUTE_DEVICE</p></li><br><li><p>QNN_PROFILE_EVENTTYPE_EXECUTE_POSTPROCESS</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Introduced a new Qnn_Priority_t level:  QNN_PRIORITY_NORMAL_HIGH.</p></li><br></ul> |
| 2.3.2 | 2.7.0 | <ul class="simple"><br><li><p>Deprecate Qnn_SocModel_t.</p></li><br></ul> |
| 2.3.1 | 2.5.0 | <ul class="simple"><br><li><p>Add note to QnnProperty_hasCapability that it can be called at any time.</p></li><br></ul> |
| 2.3.0 | 2.4.0 | <ul><br><li><p>Introduction of the QnnSignal API.</p></li><br><li><p>Added QNN_SOC_MODEL_SM8325.</p></li><br><li><p>Added new capabilities for support of QnnSignal in QnnGraph APIs:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QNN_PROPERTY_GRAPH_SUPPORT_FINALIZE_SIGNAL</p></li><br><li><p>QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE_SIGNAL</p></li><br><li><p>QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE_ASYNC_SIGNAL</p></li><br></ul><br></div></blockquote><br></li><br></ul> |
| 2.2.0 | 2.3.0 | <ul class="simple"><br><li><p>Moved QNN_API definition to QnnCommon.h from QnnTypes.h.</p></li><br><li><p>Updated QnnGraph_executeAsync() behavior to block until the execution is enqueued<br>rather than returning early if the queue is full.</p></li><br><li><p>Clarified behavior with concurrent calls to QnnGraph_execute() and<br>QnnGraph_executeAsync().</p></li><br><li><p>Introduced a queue depth context config to control the maximum depth of the async<br>execution queue.</p></li><br><li><p>Added QNN_SOC_MODEL_SXR2230P and QNN_SOC_MODEL_SM7475.</p></li><br></ul> |
| 2.1.0 | 2.1.0 | <ul class="simple"><br><li><p>Added QNN_SOC_MODEL_SXR1230P, QNN_SOC_MODEL_SSG2115P, and QNN_SOC_MODEL_SM6450.</p></li><br></ul> |
| 2.0.0 | 2.0.0 | <ul><br><li><p>The following list itemizes updates as compared to QNN API 1.x.</p></li><br><li><p>See 1.x to 2.0 migration guide in SDK docs for details.</p></li><br><li><p>QnnInterface:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QnnInterface_getProviders function signature update.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnTypes:</p><br><blockquote><br><div><ul><br><li><p>Qnn_Tensor_t data structure update:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Add versioning (i.e. Qnn_TensorV1_t).</p></li><br><li><p>Add name field. ID field is now backend generated.</p></li><br><li><p>Consolidate max and current dimensions into one field.</p></li><br><li><p>INT4 support (see Qnn_BwScaleOffset_t and Qnn_BwAxisScaleOffset_t).</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Qnn_OpConfig_t data structure update:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Add versioning (i.e. Qnn_OpConfigV1_t).</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Added Qnn_SocModel_t.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnTensor:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Qnn_Tensor_t is now an output argument to QnnTensor_createContextTensor and<br>QnnTensor_createGraphTensor since the ID is now generated by the backend from<br>the name.</p></li><br><li><p>Added QNN_TENSOR_ERROR_NAME_HASH_COLLISION error code.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnDevice introduction:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Adds multi-core support.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnBackend:</p><br><blockquote><br><div><ul><br><li><p>Introduce Qnn_BackendHandle_t.</p></li><br><li><p>These APIs now take a Qnn_BackendHandle_t as an argument:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QnnBackend_registerOpPackage</p></li><br><li><p>QnnBackend_validateOpConfig</p></li><br><li><p>QnnBackend_registerOpPackage</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnBackend_initialize replaced by QnnBackend_create.</p></li><br><li><p>QnnBackend_terminate replaced by QnnBackend_free.</p></li><br><li><p>Added QnnBackend_getSupportedOperations and QnnBackend_OperationName_t.</p></li><br><li><p>Removed QnnBackend_getPerfInfrastructure (see QnnDevice_getInfrastructure).</p></li><br><li><p>Added and removed a variety of error codes.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnMem:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QnnMem_register now take a Qnn_ContextHandle_t as an argument.</p></li><br><li><p>Add backend specific memory registration extensions.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnContext:</p><br><blockquote><br><div><ul><br><li><p>Increased maximum context binary size to 64-bit.</p></li><br><li><p>Consolidate QnnContext_createFromBinary and<br>QnnContext_createFromBinaryWithConfig.</p></li><br><li><p>QnnContext_create and QnnContext_createFromBinary function signature updates:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Qnn_BackendHandle_t association.</p></li><br><li><p>Qnn_DeviceHandle_t association.</p></li><br></ul><br></div></blockquote><br></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnLog:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Introduce Qnn_LogHandle_t.</p></li><br><li><p>QnnLog_setLogLevel now takes a Qnn_LogHandle_t as an argument.</p></li><br><li><p>QnnLog_initialize replaced by QnnLog_create.</p></li><br><li><p>QnnLog_terminate replaced by QnnLog_free.</p></li><br><li><p>Qnn_LogHandle_t is associated to a Qnn_BackendHandle_t in QnnBackend_create.</p></li><br><li><p>Added and removed a variety of error codes.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnProperty:</p><br><blockquote><br><div><ul><br><li><p>Removed QnnProperty_get and QnnProperty_free.</p></li><br><li><p>Removed the following capability keys:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QNN_PROPERTY_BACKEND_SUPPORT_BUILD_ID</p></li><br><li><p>QNN_PROPERTY_BACKEND_SUPPORT_PERF_INFRASTRUCTURE</p></li><br><li><p>QNN_PROPERTY_BACKEND_SUPPORT_OP_VALIDATION</p></li><br><li><p>QNN_PROPERTY_CONTEXT_SUPPORT_GET_BINARY</p></li><br><li><p>QNN_PROPERTY_CONTEXT_SUPPORT_GET_BINARY_SIZE</p></li><br><li><p>QNN_PROPERTY_CONTEXT_SUPPORT_CREATE_BINARY</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Added the following capability keys:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QNN_PROPERTY_CONTEXT_SUPPORT_CACHING</p></li><br><li><p>QNN_PROPERTY_GRAPH_SUPPORT_PRIORITY_CONTROL</p></li><br><li><p>QNN_PROPERTY_GROUP_DEVICE</p></li><br><li><p>QNN_PROPERTY_DEVICE_SUPPORT_INFRASTRUCTURE</p></li><br><li><p>QNN_PROPERTY_GRAPH_SUPPORT_PRIORITY_CONTROL</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Added and removed a variety of error codes.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnGraph:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Add priority configuration.</p></li><br><li><p>Add QnnGraph_setConfig API.</p></li><br><li><p>Removed asynch execution configs.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnProfile:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QnnProfile_create associated with a Qnn_BackendHandle_t.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnOpPackage:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Introduce Qnn_OpPackageHandle_t.</p></li><br><li><p>Introduce 2.0 interface to the backend.</p></li><br><li><p>Removed the QNN_OP_PACKAGE_API_VERSION_* macros and replaced them with<br>QNN_OP_PACKAGE_API_VERSION_1_4_0 and QNN_OP_PACKAGE_API_VERSION_2_0_0.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnSystem:</p><br><blockquote><br><div><ul class="simple"><br><li><p>QnnSystemInterface_getProviders function signature update.</p></li><br><li><p>QnnSystemContext_getBinaryInfo function signature update for const output.</p></li><br><li><p>Added QnnSystemContext_BinaryInfoV2_t to support QnnDevice.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>QnnOpDef:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Added op set version.</p></li><br></ul><br></div></blockquote><br></li><br><li><p>Other:</p><br><blockquote><br><div><ul class="simple"><br><li><p>Prune header inclusions.</p></li><br></ul><br></div></blockquote><br></li><br></ul> |
|  |  |  |
|  |  |  |

# Backend Specific Revision History

- [CPU Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/cpu_api_version_history.html)
- [DSP Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/dsp_api_version_history.html)
- [GPU Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/gpu_api_version_history.html)
- [HTA Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/hta_api_version_history.html)
- [HTP Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/htp_api_version_history.html)
- [LPAI Version History](https://docs.qualcomm.com/doc/80-63442-10/topic/lpai_api_version_history.html)

# QNN System API Revision History

| API Version | SDK Version | Description |
| --- | --- | --- |
| 1.8.0 | 2.44.0 | <ul class="simple"><br><li><p>Add APIs to retrieve records from DLCs: QnnSystemDlc_getRecordByName(),<br>QnnSystemDlc_getRecordsByType(), QnnSystemDlc_getRecordDataSize(),<br>QnnSystemDlc_readRecordDataMemoryMapped(), and QnnSystemDlc_freeRecord().</p></li><br><li><p>Add profile event type<br>QNN_SYSTEM_PROFILE_METHOD_TYPE_BACKEND_UPDATE_BINARY_SECTION to profile<br>application of binary sections to context binaries.</p></li><br></ul> |
| 1.7.0 | 2.42.0 | <ul class="simple"><br><li><p>Add profile event type<br>QNN_SYSTEM_PROFILE_METHOD_TYPE_BACKEND_FINALIZE_TENSOR_UPDATES to profile<br>finalization of tensor updates.</p></li><br></ul> |
| 1.6.0 | 2.40.0 | <ul class="simple"><br><li><p>Add profile event types QNN_SYSTEM_PROFILE_METHOD_TYPE_CONTEXT_GET_BINARY_SIZE,<br>QNN_SYSTEM_PROFILE_METHOD_TYPE_CONTEXT_GET_BINARY, and<br>QNN_SYSTEM_PROFILE_METHOD_TYPE_CONTEXT_GET_BINARY_SECTION_SIZE for application<br>profiling of context binary and binary section creation.</p></li><br></ul> |
| 1.5.0 | 2.38.0 | <ul class="simple"><br><li><p>Introduce QnnSystemProfile component to enable backend agnostic manipulation of<br>QNN profiling events. Add QnnSystemProfile_createSerializationTarget,<br>QnnSystemProfile_serializeEventData and QnnSystemProfile_freeSerializationTarget,<br>to support serialization of QNN profile events to profile logs. Profile logs produced<br>from these APIs can be used with qnn-profile-event-viewer.</p></li><br><li><p>Improve error code naming across several components. All existing error codes retain<br>values.</p></li><br></ul> |
| 1.4.0 | 2.33.0 | <ul class="simple"><br><li><p>Introduce QnnSystemLog component. Add QnnSystemLog_create, QnnSystemLog_setLogLevel,<br>and QnnSystemLog_free.</p></li><br><li><p>Introduce QnnSystemDlc component. Add QnnSystemDlc_createFromFile,<br>QnnSystemDlc_createFromBuffer, QnnSystemDlc_composeGraphs,<br>QnnSystemDlc_getOpMappings and QnnSystemDlc_free.</p></li><br></ul> |
| 1.3.0 | 2.31.0 | <ul class="simple"><br><li><p>Introduce QnnSystemTensor component. Add QnnSystemTensor_getMemoryFootprint.</p></li><br></ul> |
| 1.2.0 | 2.28.0 | <ul class="simple"><br><li><p>Added QnnSystemContext_GraphInfoV3_t and QnnSystemContext_BinaryInfoV3_t.</p></li><br></ul> |
| 1.1.0 | 2.13.0 | <ul class="simple"><br><li><p>Added QnnSystemContext_getMetadata.</p></li><br><li><p>Deprecated QnnSystemContext_getBinaryInfo.</p></li><br></ul> |
| 1.0.0 | 2.0.0 | <ul class="simple"><br><li><p>Initial release.</p></li><br></ul> |

Last Published: Jun 04, 2026

[Previous Topic
Usage Guidelines](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/api_usage_guidelines.md) [Next Topic
CPU Version History](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpu_api_version_history.md)

Source: [https://docs.qualcomm.com/doc/80-63442-10/topic/general_api_version_history.html](https://docs.qualcomm.com/doc/80-63442-10/topic/general_api_version_history.html)