QNN API Revision History

API Version

SDK Version

Description

2.22.0

2.29.0

  • Added tensor types QNN_TENSOR_TYPE_OPTIONAL_APP_WRITE, QNN_TENSOR_TYPE_OPTIONAL_APP_READ, and QNN_TENSOR_TYPE_OPTIONAL_APP_READ_WRITE. Support for these tensor types can be queried with QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_WRITE, QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_READ, and QNN_PROPERTY_TENSOR_SUPPORT_OPTIONAL_APP_READ_WRITE.

  • Added new tensor memory type QNN_TENSORMEMTYPE_RETRIEVE_RAW. Support can be queried through QNN_PROPERTY_TENSOR_SUPPORT_RETRIEVE_RAW.

  • Added QnnBackend_getProperty and QnnContext_getProperty. Support for custom properties can be queried with QNN_PROPERTY_BACKEND_SUPPORT_CUSTOM_PROPERTY and QNN_PROPERTY_CONTEXT_SUPPORT_CUSTOM_PROPERTY respectively.

2.21.0

2.28.0

  • Added Qnn_OpMapping_t type.

2.20.0

2.27.0

  • Added property QNN_PROPERTY_GRAPH_SUPPORT_ONLINE_PREPARE.

2.19.0

2.26.0

  • Added error code QNN_GRAPH_ERROR_INVALID_CONTEXT.

2.18.0

2.25.0

  • Added QnnContext_getBinarySectionSize, QnnContext_getBinarySection, and QnnContext_applyBinarySection APIs to provide support for producing and applying updates to context binaries after creation. Support can be queried through QNN_PROPERTY_CONTEXT_SUPPORT_BINARY_UPDATES.

2.17.0

2.24.0

  • Added QnnTensor_updateGraphTensors and QnnTensor_updateContextTensors APIs to modify tensors after graph finalization.

  • Added QNN_TENSOR_TYPE_UPDATEABLE_<> for STATIC, NATIVE, APP_READ, APP_WRITE and APP_READWRITE tensors and corresponding properties QNN_SUPPORT_UPDATEABLE_<>

  • Add GraphInfoV2_t to return updateable tensors in context binary metadata.

  • Add error code QNN_COMMON_ERROR_SYSTEM_COMMUNICATION_FATAL

  • Add QnnContext_createFromBinaryListAsync to asynchronously initialize multiple context binaries.

  • Add new quantization encoding schemes QNN_QUANTIZATION_ENCODING_BLOCK, QNN_QUANTIZATION_ENCODING_BLOCKWISE_EXPANSION, and QNN_QUANTIZATION_ENCODING_VECTOR. Support for these encoding schemes is determined through QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BLOCK, QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_BLOCKWISE_EXPANSION, and QNN_PROPERTY_TENSOR_SUPPORT_QUANTIZATION_ENCODING_VECTOR repsectively.

2.16.0

2.23.0

  • Added QNN_PROFILE_EVENTUNIT_NONE.

2.15.0

2.21.0

  • Introduced the QnnContext_createFromBinaryWithSignal API.

  • Added QNN_MEM_TYPE_DMA_BUF QnnMem type.

  • Clarified QnnProperty capability descriptions.

2.14.0

2.20.0

  • Introduced Qnn_TensorV2_t. Tensor V2 adds API support for sparse tensors, dynamically shaped tensors, and graph execution early termination. Please consult SDK documentation for further details. Support can be queried via QNN_PROPERTY_TENSOR_SUPPORT_SPARSITY, QNN_PROPERTY_TENSOR_SUPPORT_DYNAMIC_DIMENSIONS, and QNN_PROPERTY_GRAPH_SUPPORT_EARLY_TERMINATION.

2.13.0

2.19.0

  • Introduced the QnnContext_validateBinary API.

2.12.0

2.18.0

  • Introduced the QnnGraph_getProperty API.

  • Allow QnnGraph_finalize for deserialized graphs created via QnnContext_createFromBinary.

  • Introduced the QnnGraph_prepareExecutionEnvironment and QnnGraph_releaseExecutionEnvironment APIs.

  • Added QNN_CONTEXT_CONFIG_BINARY_COMPATIBILITY context config and QNN_CONTEXT_ERROR_BINARY_SUBOPTIMAL context error code.

2.11.0

2.17.0

  • Introduced the QnnError.h API.

  • Introduced QNN_GRAPH_CONFIG_OPTION_SET_PROFILING_STATE and QNN_GRAPH_CONFIG_OPTION_SET_PROFILING_NUM_EXECUTIONS graph configuration options.

  • Added QNN_PROPERTY_MEMORY_SUPPORT_MEM_TYPE_ION and QNN_PROPERTY_MEMORY_SUPPORT_MEM_TYPE_CUSTOM capabilities.

2.10.0

2.16.0

  • Added QNN_CONTEXT_CONFIG_ENABLE_GRAPHS context configuration option, QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_ENABLE_GRAPHS capability, and QNN_GRAPH_ERROR_DISABLED error code.

  • Added QNN_CONTEXT_CONFIG_MEMORY_LIMIT_HINT context configuration option and QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_MEMORY_LIMIT capability.

  • Added QNN_CONTEXT_CONFIG_PERSISTENT_BINARY context configuration option and QNN_PROPERTY_CONTEXT_SUPPORT_CONFIG_PERSISTENT_BINARY capability.

  • Added QNN_DATATYPE_SFIXED_POINT_4 and QNN_DATATYPE_UFIXED_POINT_4 data types.

2.9.0

2.15.0

  • Added QnnGraph_createSubgraph API and the QNN_PROPERTY_GRAPH_SUPPORT_SUBGRAPH capability.

  • Added QnnBackend_setConfig API.

  • Added QNN_PROFILE_CONFIG_OPTION_ENABLE_OPTRACE and QNN_PROFILE_EVENTTYPE_TRACE.

  • Added QNN_PROPERTY_BACKEND_SUPPORT_COMPOSITION and QNN_PROPERTY_TENSOR_SUPPORT_CONTEXT_TENSORS capability.

  • Added QNN_DATATYPE_FLOAT_64 data type.

  • Clarified QnnSignal behavior when used with QnnGraph_executeAsync.

  • Deprecated QNN_TENSOR_ERROR_ALREADY_EXISTS and QNN_TENSOR_ERROR_NAME_HASH_COLLISION error codes. QnnTensor_createContextTensor and QnnTensor_createGraphTensor will no longer generate them.

2.8.0

2.14.0

  • Introduced QnnProfile_ExtendedEventData_t and QnnProfile_getExtendedEventData to support binary large object data.

  • Added QnnProfile_setConfig and QNN_PROFILE_CONFIG_OPTION_CUSTOM and QNN_PROFILE_CONFIG_OPTION_MAX_EVENTS configuration options.

  • Added the QNN_DATATYPE_STRING data type for scalars.

2.7.2

2.13.0

  • Added QNN_GRAPH_ERROR_GENERAL error code.

  • Added QNN_PROPERTY_GRAPH_SUPPORT_PER_API_PROFILING capability.

  • Added QNN_SIGNAL_ERROR_INCOMPATIBLE_SIGNAL_TYPE error code.

  • Clarified unconfigured QnnSignal behavior.

2.7.1

2.12.0

  • Added QNN_COMMON_ERROR_RESOURCE_UNAVAILABLE common error code.

  • Added QNN_GRAPH_ERROR_TIMED_OUT error code and corrected QnnGraph_execute and QnnGraph_executeAsync API documentation to reference this error code.

2.7.0

2.11.0

  • Added QNN_COMMON_ERROR_LOADING_BINARIES common error code.

  • Added support for timeouts in QnnSignal

    • QNN_SIGNAL_CONFIG_OPTION_TIMEOUT

    • QNN_PROPERTY_SIGNAL_SUPPORT_TIMEOUT

  • Added QNN_CONTEXT_ERROR_MEM_ALLOC error code to QnnContext_getBinarySize and QnnContext_getBinary

  • Added QNN_DEVICE_ERROR_INVALID_HANDLE error code to QnnDevice_getPlatformInfo and QnnDevice_freePlatformInfo

  • Added QNN_DEVICE_ERROR_MEM_ALLOC error code to QnnDevice_getInfrastructure

  • Corrected occurrences of QNN_SIGNAL_ERROR_NOT_SUPPORTED to be QNN_SIGNAL_ERROR_UNSUPPORTED

2.6.0

2.10.40

  • Added QNN_BACKEND_CONFIG_OPTION_PLATFORM backend config option.

  • Added QNN_PROPERTY_BACKEND_SUPPORT_PLATFORM_OPTIONS property.

  • Added QNN_BACKEND_CONFIG_OPTION_PLATFORM backend error code.

  • Indicated that QNN_PRIORITY_NORMAL_HIGH and QNN_PRIORITY_HIGH can be silently treated as QNN_PRIORITY_NORMAL in some scenarios.

  • Cleaned up unused SOC models.

2.5.1

2.10.0

  • Added QNN_COMMON_ERROR_INCOMPATIBLE_BINARIES common error code.

2.5.0

2.9.0

  • Added QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE capability.

  • Added QNN_PROPERTY_GRAPH_SUPPORT_BATCH_MULTIPLE capability.

  • Clarify that a Qnn_ProfileHandle_t can only be bound to one graph at a time.

2.4.0

2.8.0

  • Introduced continuous QnnGraph profiling via the QNN_GRAPH_CONFIG_OPTION_PROFILE_HANDLE config option. Backend support is communicated via QNN_PROPERTY_GRAPH_SUPPORT_CONTINUOUS_PROFILING.

  • Added the following QnnProfile event types:

    • QNN_PROFILE_EVENTTYPE_EXECUTE_QUEUE_WAIT

    • QNN_PROFILE_EVENTTYPE_EXECUTE_PREPROCESS

    • QNN_PROFILE_EVENTTYPE_EXECUTE_DEVICE

    • QNN_PROFILE_EVENTTYPE_EXECUTE_POSTPROCESS

  • Introduced a new Qnn_Priority_t level: QNN_PRIORITY_NORMAL_HIGH.

2.3.2

2.7.0

  • Deprecate Qnn_SocModel_t.

2.3.1

2.5.0

  • Add note to QnnProperty_hasCapability that it can be called at any time.

2.3.0

2.4.0

  • Introduction of the QnnSignal API.

  • Added QNN_SOC_MODEL_SM8325.

  • Added new capabilities for support of QnnSignal in QnnGraph APIs:

    • QNN_PROPERTY_GRAPH_SUPPORT_FINALIZE_SIGNAL

    • QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE_SIGNAL

    • QNN_PROPERTY_GRAPH_SUPPORT_EXECUTE_ASYNC_SIGNAL

2.2.0

2.3.0

  • Moved QNN_API definition to QnnCommon.h from QnnTypes.h.

  • Updated QnnGraph_executeAsync() behavior to block until the execution is enqueued rather than returning early if the queue is full.

  • Clarified behavior with concurrent calls to QnnGraph_execute() and QnnGraph_executeAsync().

  • Introduced a queue depth context config to control the maximum depth of the async execution queue.

  • Added QNN_SOC_MODEL_SXR2230P and QNN_SOC_MODEL_SM7475.

2.1.0

2.1.0

  • Added QNN_SOC_MODEL_SXR1230P, QNN_SOC_MODEL_SSG2115P, and QNN_SOC_MODEL_SM6450.

2.0.0

2.0.0

  • The following list itemizes updates as compared to QNN API 1.x.

  • See 1.x to 2.0 migration guide in SDK docs for details.

  • QnnInterface:

    • QnnInterface_getProviders function signature update.

  • QnnTypes:

    • Qnn_Tensor_t data structure update:

      • Add versioning (i.e. Qnn_TensorV1_t).

      • Add name field. ID field is now backend generated.

      • Consolidate max and current dimensions into one field.

      • INT4 support (see Qnn_BwScaleOffset_t and Qnn_BwAxisScaleOffset_t).

    • Qnn_OpConfig_t data structure update:

      • Add versioning (i.e. Qnn_OpConfigV1_t).

    • Added Qnn_SocModel_t.

  • QnnTensor:

    • Qnn_Tensor_t is now an output argument to QnnTensor_createContextTensor and QnnTensor_createGraphTensor since the ID is now generated by the backend from the name.

    • Added QNN_TENSOR_ERROR_NAME_HASH_COLLISION error code.

  • QnnDevice introduction:

    • Adds multi-core support.

  • QnnBackend:

    • Introduce Qnn_BackendHandle_t.

    • These APIs now take a Qnn_BackendHandle_t as an argument:

      • QnnBackend_registerOpPackage

      • QnnBackend_validateOpConfig

      • QnnBackend_registerOpPackage

    • QnnBackend_initialize replaced by QnnBackend_create.

    • QnnBackend_terminate replaced by QnnBackend_free.

    • Added QnnBackend_getSupportedOperations and QnnBackend_OperationName_t.

    • Removed QnnBackend_getPerfInfrastructure (see QnnDevice_getInfrastructure).

    • Added and removed a variety of error codes.

  • QnnMem:

    • QnnMem_register now take a Qnn_ContextHandle_t as an argument.

    • Add backend specific memory registration extensions.

  • QnnContext:

    • Increased maximum context binary size to 64-bit.

    • Consolidate QnnContext_createFromBinary and QnnContext_createFromBinaryWithConfig.

    • QnnContext_create and QnnContext_createFromBinary function signature updates:

      • Qnn_BackendHandle_t association.

      • Qnn_DeviceHandle_t association.

  • QnnLog:

    • Introduce Qnn_LogHandle_t.

    • QnnLog_setLogLevel now takes a Qnn_LogHandle_t as an argument.

    • QnnLog_initialize replaced by QnnLog_create.

    • QnnLog_terminate replaced by QnnLog_free.

    • Qnn_LogHandle_t is associated to a Qnn_BackendHandle_t in QnnBackend_create.

    • Added and removed a variety of error codes.

  • QnnProperty:

    • Removed QnnProperty_get and QnnProperty_free.

    • Removed the following capability keys:

      • QNN_PROPERTY_BACKEND_SUPPORT_BUILD_ID

      • QNN_PROPERTY_BACKEND_SUPPORT_PERF_INFRASTRUCTURE

      • QNN_PROPERTY_BACKEND_SUPPORT_OP_VALIDATION

      • QNN_PROPERTY_CONTEXT_SUPPORT_GET_BINARY

      • QNN_PROPERTY_CONTEXT_SUPPORT_GET_BINARY_SIZE

      • QNN_PROPERTY_CONTEXT_SUPPORT_CREATE_BINARY

    • Added the following capability keys:

      • QNN_PROPERTY_CONTEXT_SUPPORT_CACHING

      • QNN_PROPERTY_GRAPH_SUPPORT_PRIORITY_CONTROL

      • QNN_PROPERTY_GROUP_DEVICE

      • QNN_PROPERTY_DEVICE_SUPPORT_INFRASTRUCTURE

      • QNN_PROPERTY_GRAPH_SUPPORT_PRIORITY_CONTROL

    • Added and removed a variety of error codes.

  • QnnGraph:

    • Add priority configuration.

    • Add QnnGraph_setConfig API.

    • Removed asynch execution configs.

  • QnnProfile:

    • QnnProfile_create associated with a Qnn_BackendHandle_t.

  • QnnOpPackage:

    • Introduce Qnn_OpPackageHandle_t.

    • Introduce 2.0 interface to the backend.

    • Removed the QNN_OP_PACKAGE_API_VERSION_* macros and replaced them with QNN_OP_PACKAGE_API_VERSION_1_4_0 and QNN_OP_PACKAGE_API_VERSION_2_0_0.

  • QnnSystem:

    • QnnSystemInterface_getProviders function signature update.

    • QnnSystemContext_getBinaryInfo function signature update for const output.

    • Added QnnSystemContext_BinaryInfoV2_t to support QnnDevice.

  • QnnOpDef:

    • Added op set version.

  • Other:

    • Prune header inclusions.

QNN System API Revision History

API Version

SDK Version

Description

1.2.0

2.28.0

  • Added QnnSystemContext_GraphInfoV3_t and QnnSystemContext_BinaryInfoV3_t.

1.1.0

2.13.0

  • Added QnnSystemContext_getMetadata.

  • Deprecated QnnSystemContext_getBinaryInfo.

1.0.0

2.0.0

  • Initial release.