# Op Definition Revision History

| Op Set Version | SDK Version | Description |
| --- | --- | --- |
| 2.7.0 | 2.39.0 | <ul class="simple"><br><li><p>Added HadamardTransform Op. Not initially supported.</p></li><br></ul> |
| 2.6.0 | 2.38.0 | <ul class="simple"><br><li><p>Added RandomUniformLike Op to support ONNX RandomUniformLike. Initially supported<br>on CPU and HTP backend.</p></li><br><li><p>Added STFT Op to support ONNX STFT. Initially supported<br>on CPU and HTP backend.</p></li><br></ul> |
| 2.5.0 | 2.37.0 | <ul class="simple"><br><li><p>Added IsNan Op to support ONNX IsNan. Initially supported on CPU and HTP backend.</p></li><br><li><p>Added Logit Op to support ONNX Logit. Initially supported on CPU and HTP backend.</p></li><br></ul> |
| 2.4.0 | 2.36.0 | <ul class="simple"><br><li><p>Added new reuse_sparse_indicies param to Conv2d to support tensor sparsity.</p></li><br></ul> |
| 2.3.0 | 2.35.0 | <ul class="simple"><br><li><p>Added IsInf Op.</p></li><br></ul> |
| 2.2.0 | 2.34.0 | <ul class="simple"><br><li><p>Added buffer_padding parameter to Buffer Op.</p></li><br><li><p>Add dynamic shape support for FullyConnected.</p></li><br></ul> |
| 2.1.0 | 2.30.0 | <ul class="simple"><br><li><p>Added dynamic shape support for ExpandDims, ReduceMean, Squeeze, and StridedSlice.</p></li><br></ul> |
| 2.0.0 | 2.29.0 | <ul class="simple"><br><li><p>Modify NonMaxSuppression to produce indices per batch. Note this is backwards<br>incompatible change.</p></li><br></ul> |
| 1.38.0 | 2.28.0 | <ul class="simple"><br><li><p>Added dynamic shape support for Cast, Concat, Conv2d, Convert, ElementWiseAdd,<br>ElementWiseBinary, ElementWiseDivide, ElementWiseMultiply, ElementWisePower,<br>ElementWiseSquareRoot, ElementWiseSubtract, ElementWiseUnary, Gather,<br>ReduceMean, RmsNorm, and StridedSlice.</p></li><br></ul> |
| 1.37.0 | 2.27.0 | <ul class="simple"><br><li><p>Added dynamic shape support for ElementWiseNeuron, Sigmoid, Softmax,<br>and Transpose.</p></li><br></ul> |
| 1.36.0 | 2.26.0 | <ul class="simple"><br><li><p>Added antialias param for ResizeBilinear.</p></li><br></ul> |
| 1.35.0 | 2.25.0 | <ul class="simple"><br><li><p>Added op definition for RmsNorm.</p></li><br><li><p>Added largest parameter to Topk.</p></li><br></ul> |
| 1.34.0 | 2.24.0 | <ul class="simple"><br><li><p>Added op definition for Im2Col and Col2Im.</p></li><br><li><p>Added dynamic tensor support for MatMul and Reshape ops.</p></li><br></ul> |
| 1.33.0 | 2.23.0 | <ul class="simple"><br><li><p>Added op definition for CombinedNMS.</p></li><br><li><p>Updated Buffer Op definition for multi-frame support.</p></li><br></ul> |
| 1.32.0 | 2.22.0 | <ul class="simple"><br><li><p>Added op definition for ReduceSumSquare.</p></li><br><li><p>Added 0-D support for ElementWiseBinary and Reshape ops.</p></li><br></ul> |
| 1.31.0 | 2.21.0 | <ul class="simple"><br><li><p>Added op definition for Buffer.</p></li><br><li><p>Added optional reset input to GRU op.</p></li><br><li><p>Updated mask tensor input description for the MaskedSoftmax op.</p></li><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_4 and QNN_DATATYPE_UFIXED_POINT_4 support for<br>Quantize and Dequantize ops.</p></li><br></ul> |
| 1.30.0 | 2.20.0 | <ul class="simple"><br><li><p>Added new ops to support tensor sparsity: CreateSparse, GetSparseIndices,<br>GetSparseValues, SparseToDense</p></li><br><li><p>Allow sparse tensors usage in Conv3d, BatchNorm, ElementWiseAdd, and Relu.</p></li><br><li><p>Added new reuse_sparse_indicies param to Conv3d to support tensor sparsity.</p></li><br><li><p>Added support for single batch input and output in DistributeFPNProposals op.</p></li><br></ul> |
| 1.29.0 | 2.19.0 | <ul class="simple"><br><li><p>Fix issue where constraint for split_index parameter for Split op allowed<br>creation of empty output tensors.</p></li><br></ul> |
| 1.28.0 | 2.18.0 | <ul class="simple"><br><li><p>Added op definition for MaskedSoftmax.</p></li><br><li><p>Added support for optional param time_major and support for multi time-step input<br>and output in LSTM op.</p></li><br><li><p>Added support for optional param time_major in GRU op.</p></li><br><li><p>Added support for negative index values in the Gather op.</p></li><br></ul> |
| 1.27.0 | 2.16.0 | <ul class="simple"><br><li><p>Fixed QNN_OP_GRID_SAMPLE_PADDING_MODE_REFLECTION example in GridSample Op.</p></li><br><li><p>Fixed index value constraint range for in[1] in Gather Op.</p></li><br></ul> |
| 1.26.0 | 2.15.0 | <ul class="simple"><br><li><p>Added If op definition.</p></li><br><li><p>Clarified behavior with regards to how the parameters normalize and centered<br>affect glimpse window in ExtractGlimpse.</p></li><br><li><p>Added support for cubic as an interpolation mode in Resize Op.</p></li><br></ul> |
| 1.25.0 | 2.14.0 | <ul class="simple"><br><li><p>Added optional parameter mode to SpaceToDepth.</p></li><br><li><p>Updated BatchPermutation Op to use shape of in[1] to determine batch dimension of<br>out[0]. Relaxed constraint on index values of in[1].</p></li><br><li><p>Updated constraint of out[0] index values to be based on FPN levels for<br>DistributeFpnProposals.</p></li><br></ul> |
| 1.24.0 | 2.13.0 | <ul class="simple"><br><li><p>Added Conv1d, DepthWiseConv1d, and TransposeConv1d op definitions.</p></li><br><li><p>Added ElementWiseXor op definition and added XOR option to ElementWiseBinary.</p></li><br></ul> |
| 1.23.0 | 2.12.0 | <ul class="simple"><br><li><p>Added ElementWiseBinary op definition.</p></li><br><li><p>Added GroupNorm op definition.</p></li><br><li><p>Added optional parameter weights and optional output batch splits to<br>AxisAlignedBboxTransform.</p></li><br><li><p>Added optional input batch splits and optional outputs batch splits, keeps,<br>and keeps size to BoxWithNmsLimit.</p></li><br><li><p>DistributeFpnProposals rois_idx_restore (out[0]) will output -1 for invalid ROIs.</p></li><br><li><p>Added optional parameter bbox_xform_clip to GenerateProposals.</p></li><br><li><p>Added optional parameters aligned and allow_invalid_roi to RoiAlign.</p></li><br></ul> |
| 1.22.0 | 2.11.0 | <ul class="simple"><br><li><p>Added ElementWiseNeuron op definition.</p></li><br></ul> |
| 1.21.0 | 2.10.0 | <ul class="simple"><br><li><p>Added ElementWiseAsin, ElementWiseFmod and ElementWiseMod op definitions.</p></li><br></ul> |
| 1.20.0 | 2.9.0 | <ul class="simple"><br><li><p>Constrained all ND inputs to have a rank greater than 0.</p></li><br><li><p>Added constraint for dilation &gt; 0 in Convolution Ops.</p></li><br><li><p>Added ElementWiseUnary op definition.</p></li><br></ul> |
| 1.19.1 | 2.8.2 | <ul class="simple"><br><li><p>Added NonMaxSuppression op definition.</p></li><br></ul> |
| 1.19.0 | 2.8.0 | <ul class="simple"><br><li><p>Added ElementWiseSign op definition.</p></li><br><li><p>Added QNN_DATATYPE_UINT_32 support for Gather in[1].</p></li><br></ul> |
| 1.18.0 | 2.7.0 | <ul class="simple"><br><li><p>Added ExtractPatches op definition.</p></li><br><li><p>Added QNN_DATATYPE_INT_32 support for GatherNd in[1].</p></li><br></ul> |
| 1.17.0 | 2.6.0 | <ul class="simple"><br><li><p>Added NonZero, CollectRpnProposals, and DistributeFpnProposals op definitions.</p></li><br><li><p>Added QNN_DATATYPE_INT_32 support for CropAndResize in[2] and ScatterNd in[1].</p></li><br><li><p>Added support for broadcasting in ElementWiseLess Op.</p></li><br></ul> |
| 1.16.0 | 2.5.0 | <ul class="simple"><br><li><p>Added BatchPermutation op definition.</p></li><br><li><p>Added QNN_DATATYPE_INT_32 support for ArgMax out[0], ArgMin out[0], and<br>GatherElements in[1].</p></li><br></ul> |
| 1.15.0 | 2.4.0 | <ul class="simple"><br><li><p>Added ScatterElements op definition.</p></li><br><li><p>Remove incorrect shape constraints for Tile out[0] and multiples param.</p></li><br><li><p>Added support for broadcasting in ElementwiseSelect Op.</p></li><br></ul> |
| 1.14.0 | 2.2.0 | <ul class="simple"><br><li><p>Added ConstantOfShape op definition.</p></li><br><li><p>Added GridSample op definition.</p></li><br><li><p>Added PoolMax3d op definition.</p></li><br><li><p>Added Shape op definition.</p></li><br><li><p>Add 32-bit data types for Quantize and Dequantize.</p></li><br><li><p>Extend OneHot to support N-dimensional inputs.</p></li><br><li><p>Add optional bias input tensor for MatMul.</p></li><br><li><p>Remove Prelu in[1] data type constraint.</p></li><br></ul> |
| 1.13.0 | 2.1.0 | <ul class="simple"><br><li><p>Added GRU op definition.</p></li><br><li><p>Added constraint that Conv2d and TransposeConv2d strides must be positive.</p></li><br></ul> |
| 1.12.0 | 2.0.0 | <ul class="simple"><br><li><p>Initial independent version of op definition set to match prior API version.</p></li><br></ul> |

# Backend Specific Revision History

- [QNN CPU Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/cpu_opdef_version_history.html)
- [QNN DSP Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/dsp_opdef_version_history.html)
- [QNN GPU Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/gpu_opdef_version_history.html)
- [QNN HTA Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/hta_opdef_version_history.html)
- [QNN HTP Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/htp_opdef_version_history.html)
- [QNN LPAI Op Definition Revision History](https://docs.qualcomm.com/doc/80-63442-50/topic/lpai_opdef_version_history.html)

Last Published: Oct 10, 2025

[Previous Topic
Supported Operations](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/SupportedOps.md) [Next Topic
QNN CPU Op Definition Revision History](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/cpu_opdef_version_history.md)