# QNN HTP Op Support Revision History

| Introduced in QNN SDK Version | Runtime | Description |
| --- | --- | --- |
| 2.45.0 | Quant | <ul class="simple"><br><li><p>RotaryEmbedding added to supported ops (ROPE)</p></li><br><li><p>Gru (Activation type: INT16)</p><br><ul><br><li><p>Enabled a16w16 configuration; only forward direction is supported</p></li><br></ul><br></li><br><li><p>TransposeConv2d</p><br><ul><br><li><p>Added updateable quantization support</p></li><br></ul><br></li><br><li><p>ElementWiseExp, ReluMinMax (Activation type: FP16/FP32)</p><br><ul><br><li><p>Increased max supported rank to 5</p></li><br></ul><br></li><br><li><p>ElementWiseUnary, ElementWiseNeuron constraints updated</p></li><br></ul> |
| 2.44.0 | Quant | <ul class="simple"><br><li><p>ElementWiseBinary DIVIDE enabled on QNN_DATATYPE_SFIXED_POINT_8</p></li><br><li><p>Buffer enabled on QNN_DATATYPE_UFIXED_POINT_16, QNN_DATATYPE_UFIXED_POINT_8</p></li><br><li><p>Cast enabled on QNN_DATATYPE_SFIXED_POINT_16 to QNN_DATATYPE_INT_32</p></li><br><li><p>Lstm (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added support for a16w16 and a16w8 configurations</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type: INT16)</p><br><ul><br><li><p>Added support for 4-bit weights</p></li><br></ul><br></li><br><li><p>ElementWiseUnary Exp enabled on BF16</p></li><br><li><p>RmsNorm enabled on BF16</p></li><br></ul> |
| 2.43.0 | Quant | <ul class="simple"><br><li><p>Gelu (Activation type: All)</p><br><ul><br><li><p>Enabled 5D FP16/FP32 validation</p></li><br><li><p>Adjusted 4D rank constrain</p></li><br></ul><br></li><br><li><p>Conv2d</p><br><ul><br><li><p>Enabled updateable quantization support on FP16, INT16</p></li><br><li><p>Added custom symmetric 2-bit weights support on INT16</p></li><br></ul><br></li><br><li><p>L2Norm enabled on INT16</p></li><br><li><p>Prelu, Relu, Relu1, Relu6, ReluMinMax, Batchnorm, ElementWiseExp enabled on BF16</p></li><br></ul> |
| 2.42.0 | Quant | <ul class="simple"><br><li><p>Lstm (Activation type: INT8)</p><br><ul><br><li><p>Added LayerNorm unsupport constraints for 3D input and remove forward direction limit</p></li><br></ul><br></li><br><li><p>HadamardTransform enabled on INT16</p></li><br><li><p>ElementwiseDividem, ElementwiseMaximum enabled on INT16</p></li><br><li><p>Convert enabled on FP16 to SFIXED_POINT</p></li><br><li><p>ReduceMin added to supported ops</p></li><br></ul> |
| 2.41.0 | Quant | <ul class="simple"><br><li><p>Conv3d (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added Conv3d to Relu IMPL_GEN tensor support</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type: INT8, INT16)</p><br><ul><br><li><p>Removed group constraint with IMPL_GEN tensor</p></li><br><li><p>Added support for Conv2d to Relu on a16w16</p></li><br><li><p>Added QNN_QUANTIZATION_ENCODING_FLOAT_BLOCK encoding support for in[1]</p></li><br></ul><br></li><br><li><p>Convert (Activation type: INT16)</p><br><ul><br><li><p>Added support for QNN_DATATYPE_SFIXED_POINT_16 to QNN_DATATYPE_FLOAT_16</p></li><br></ul><br></li><br><li><p>Added ElementWiseMod on QNN_DATATYPE_INT_32</p></li><br></ul> |
| 2.40.0 | Quant | <ul class="simple"><br><li><p>Conv2d (Activation type: FP16)</p><br><ul><br><li><p>Added width and height constraints for in[1]</p></li><br></ul><br></li><br><li><p>GridSample enabled on QNN_DATATYPE_INT_32</p></li><br></ul> |
| 2.39.0 | Quant | <ul class="simple"><br><li><p>Logit enabled on all activation type.</p></li><br><li><p>ScatterElements (Activation type: INT8, INT16)</p><br><ul><br><li><p>Enabled updateable tensor support</p></li><br></ul><br></li><br><li><p>DepthWiseConv2d (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added QNN_DEFINITION_IMPL_GENERATED constraint</p></li><br></ul><br></li><br><li><p>ElementWiseSqrt enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>Convert (Activation type: INT16)</p><br><ul><br><li><p>Enabled QNN_DATATYPE_UFIXED_POINT_16, QNN_DATATYPE_UFIXED_POINT_8,<br>QNN_DATATYPE_SFIXED_POINT_8 for out[0]</p></li><br></ul><br></li><br><li><p>Dequantize enabled QNN_DATATYPE_FLOAT_16 for out[0]</p></li><br><li><p>Quantize (Activation type: INT16, INT8)</p><br><ul><br><li><p>Enabled on QNN_DATATYPE_FLOAT_16 to QNN_DATATYPE_UFIXED_POINT_16</p></li><br><li><p>Enabled on QNN_DATATYPE_FLOAT_16 to QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>Enabled on QNN_DATATYPE_FLOAT_16 to QNN_DATATYPE_UFIXED_POINT_8</p></li><br><li><p>Enabled on QNN_DATATYPE_FLOAT_16 to QNN_DATATYPE_SFIXED_POINT_8</p></li><br></ul><br></li><br><li><p>ElementWiseSelect, ElementWiseBinary, ReduceMin, MatMul (Activation type: INT16)</p><br><ul><br><li><p>Enabled updateable tensor support</p></li><br></ul><br></li><br><li><p>Stft enabled on QNN_DATATYPE_FLOAT_16, QNN_DATATYPE_FLOAT_32</p></li><br></ul> |
| 2.38.0 | Quant | <ul class="simple"><br><li><p>Adjust constraint message from support/not support to accept/reject.</p></li><br><li><p>UnPack enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>ElementWiseBinary (Activation type: INT8)</p><br><ul><br><li><p>Removed operation constraints in HTP</p></li><br></ul><br></li><br><li><p>GatherElements, Cast, Pad added rank 5d support on all activation type</p></li><br><li><p>Cast enabled on QNN_DATATYPE_SFIXED_POINT_16 to QNN_DATATYPE_UFIXED_POINT_16</p></li><br><li><p>Quantize, enabled on QNN_DATATYPE_FLOAT_32</p></li><br><li><p>ElementWiseAbs enabled on QNN_DATATYPE_INT_32</p></li><br><li><p>ElementWiseUnary enabled on QNN_DATATYPE_INT_32</p></li><br><li><p>ElementWiseMaximum enabled on QNN_DATATYPE_INT_32</p></li><br><li><p>ElementWiseMinimum enabled on QNN_DATATYPE_INT_32</p></li><br><li><p>RandomUniformLike enabled on QNN_DATATYPE_UINT_32 for in[0],<br>QNN_DATATYPE_FLOAT_32 for in[1]</p></li><br></ul> |
| 2.37.0 | Quant | <ul class="simple"><br><li><p>Gather (Activation type: INT8)</p><br><ul><br><li><p>Added math invariant tags for out[0]</p></li><br></ul><br></li><br><li><p>Tile (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added math invariant tags for out[0]</p></li><br></ul><br></li><br><li><p>Cast (Activation type: INT8)</p><br><ul><br><li><p>Added support from UINT8 to FP16</p></li><br></ul><br></li><br><li><p>ChannelShuffle (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added math invariant tags for out[0]</p></li><br></ul><br></li><br><li><p>StridedSlice enabled on QNN_DATATYPE_UINT_8</p></li><br><li><p>TopK (Activation type: INT8)</p><br><ul><br><li><p>Added math invariant tags for out[0]</p></li><br></ul><br></li><br><li><p>Nv12ToRgb enabled on QNN_DATATYPE_UFIXED_POINT_8</p></li><br><li><p>Split enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>IsNan enabled on FP16</p></li><br></ul> |
| 2.36.0 | Quant | <ul class="simple"><br><li><p>Pad (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>Gather (Activation type: FP16)</p><br><ul><br><li><p>Added updateable quantization support for in[1]</p></li><br></ul><br></li><br><li><p>Gather (Activation type: INT8)</p><br><ul><br><li><p>Added updateable quantization support for out[0]</p></li><br></ul><br></li><br><li><p>RmsNorm enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>Gru enabled on QNN_DATATYPE_FLOAT_16, QNN_DATATYPE_FLOAT_32</p></li><br><li><p>Buffer enabled on FP16</p></li><br></ul> |
| 2.35.0 | Quant | <ul class="simple"><br><li><p>Enable enabled on QNN_DATATYPE_UINT_8</p></li><br><li><p>Tile (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added quantization constraint for in[0], out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseAsin enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>Conv2d (Activation type: IN16)</p><br><ul><br><li><p>Changed constraint for in[1]</p></li><br></ul><br></li><br><li><p>LayerNorm (Activation type: FP16)</p><br><ul><br><li><p>Added rank constraint for in[1], in[2]</p></li><br></ul><br></li><br><li><p>IsInf enabled on QNN_DATATYPE_FLOAT_16, QNN_DATATYPE_FLOAT_32</p></li><br></ul> |
| 2.34.0 | Quant | <ul class="simple"><br><li><p>BatchToSpace, SpaceToBatch (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added math invariant constraint for out[0]</p></li><br></ul><br></li><br><li><p>LayerNorm (Activation type: INT8, INT16)</p><br><ul><br><li><p>Adjusted rank constraint for in[2]</p></li><br></ul><br></li><br><li><p>Tile (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added 5D support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type: INT16)</p><br><ul><br><li><p>Updated Quant constraint for in[1]</p></li><br></ul><br></li><br><li><p>ElementWiseNeuron (Activation type: FP16)</p><br><ul><br><li><p>Added 5D Sigmoid support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>Sigmoid (Activation type: FP16)</p><br><ul><br><li><p>Added 5D support for in[0], out[0]</p></li><br></ul><br></li><br></ul> |
| 2.33.0 | Quant | <ul class="simple"><br><li><p>ElementWiseRsqrt, ElementWiseUnary, ElementWiseNeuron, Gelu (Activation type: INT16)</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseGreater, ElementWiseGreaterEqual, ElementWiseLess, ElementWiseLessEqual,<br>ElementWiseNotEqual, ElementWiseBinary (Activation type: FP16)</p><br><ul><br><li><p>Added 5D support for in[0], in[1], out[0]</p></li><br></ul><br></li><br><li><p>Concat enabled on QNN_DATATYPE_BOOL_8</p></li><br></ul> |
| 2.32.0 | Quant | <ul class="simple"><br><li><p>Reshape (Activation type: INT8, INT16)</p><br><ul><br><li><p>Removed in[1] constraint</p></li><br><li><p>Added Dynamic_Shape type constraint for in[0], out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseSubtract enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>ReduceSum enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>ScatterElements (Activation type: INT8)</p><br><ul><br><li><p>Added support for max reduction</p></li><br></ul><br></li><br><li><p>Gather (Activation type: INT8)</p><br><ul><br><li><p>Added udateable quantization support for in[0], in[1]</p></li><br><li><p>Enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br></ul><br></li><br><li><p>Softmax enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>MatMul enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>StridedSlice enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>FullyConnected enabled on QNN_DATATYPE_SFIXED_POINT_16</p></li><br><li><p>Conv2d (Activation type: INT16)</p><br><ul><br><li><p>Added supplement constraints for in[1], in[2]</p></li><br></ul><br></li><br><li><p>Split enabled on QNN_DATATYPE_BOOL_8</p></li><br></ul> |
| 2.31.0 | Quant | <ul class="simple"><br><li><p>Tanh (Activation type: INT16)</p><br><ul><br><li><p>Removed 1/32768.0 scale and 0 offset constraint for out[0]</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type: INT16)</p><br><ul><br><li><p>Added 16-bit per-channel quantization for in[1]</p></li><br></ul><br></li><br><li><p>FullyConnected (Activation type: INT16)</p><br><ul><br><li><p>Added 16-bit per-channel quantization for in[1]</p></li><br></ul><br></li><br><li><p>MatMul (Activation type: INT16)</p><br><ul><br><li><p>Added 16-bit per-channel quantization for in[1]</p></li><br></ul><br></li><br></ul> |
| 2.30.0 | Quant | <ul class="simple"><br><li><p>Conv2d (Activation type: INT8)</p><br><ul><br><li><p>Added updateable tensor support for in[2]</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0], in[1], in[2], out[0]</p></li><br></ul><br></li><br><li><p>RmsNorm (Activation type: INT16)</p><br><ul><br><li><p>Added dynamic tensor support on width and channel for in[0], out[0]</p></li><br></ul><br></li><br><li><p>DepthWiseConv2d (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0], in[1]</p></li><br></ul><br></li><br></ul> |
| 2.29.0 | Quant | <ul class="simple"><br><li><p>Dynamic tensor ops have been enabled in OpValidator</p></li><br><li><p>TopK (Activation type: All)</p><br><ul><br><li><p>Added support to largest parameter that largest can be equal to 0</p></li><br></ul><br></li><br><li><p>ElementWiseNeuron (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added Softplus support with rank 4d</p></li><br></ul><br></li><br><li><p>BatchNorm, LayerNorm (Activation type: INT8)</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_8 support for BatchNorm and LayerNorm</p></li><br></ul><br></li><br><li><p>Convert (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0] and out[0] when in[0] and out[0]<br>both are QNN_DATATYPE_UFIXED_POINT_16 datatype</p></li><br></ul><br></li><br><li><p>RmsNorm (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0], in[1] and in[2] when<br>in[0] is QNN_DATATYPE_UFIXED_POINT_16, in[1] is QNN_DATATYPE_UFIXED_POINT_8 and<br>in[2] is QNN_DATATYPE_SFIXED_POINT_32</p></li><br></ul><br></li><br><li><p>ElementWiseBinary Equal (Activation type: FP16)</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1] and out[0] for ElementWiseBinary Equal</p></li><br></ul><br></li><br><li><p>ReduceSum (Activation type: FP16, FP32)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out [0]</p></li><br></ul><br></li><br></ul> |
| 2.28.0 | Quant | <ul class="simple"><br><li><p>Axes (Activation type: All)</p><br><ul><br><li><p>Added support to normalization on final dimension or last 3 diminsions of 4D inputs</p></li><br></ul><br></li><br><li><p>Prelu (Activation type: All)</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>NonZero (Activation type: INT16, FP16)</p><br><ul><br><li><p>Added NonZero op support</p></li><br></ul><br></li><br><li><p>Tile (Activation type: FP16, FP32)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out [0]</p></li><br></ul><br></li><br><li><p>RmsNorm (Activation type: INT16, INT8)</p><br><ul><br><li><p>Added updateable quantization support for in[0], in[2] and out[0]</p></li><br></ul><br></li><br><li><p>Conv2d (Activation type:INT8)</p><br><ul><br><li><p>Added updateable quantization support for in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>ElementwiseNeuron Relu (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ExtractGlimpse (Activation type: INT16)</p><br><ul><br><li><p>Added ExtractGlimpse op support</p></li><br></ul><br></li><br><li><p>Convert (Activation type: INT16)</p><br><ul><br><li><p>Added updateable quantization support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseBinary (Activation type: FP16)</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1] and out[0] for Add, Sub and Pow</p></li><br></ul><br></li><br><li><p>ElementWiseUnary Sqrt (Activation type: FP16)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out[0] for Sqrt</p></li><br></ul><br></li><br><li><p>ReduceMax, ReduceMin, ReduceMean (Activation type: FP16)</p><br><ul><br><li><p>Added rank 5d support for in[0]</p></li><br></ul><br></li><br><li><p>ElementWiseNeuron SoftPlus (Activation type: FP16)</p><br><ul><br><li><p>Added QNN_DATATYPE_FLOAT_16, QNN_DATATYPE_FLOAT_32 datatype support for in[0]<br>and out[0]</p></li><br></ul><br></li><br><li><p>ReduceMin (Activation type: INT32)</p><br><ul><br><li><p>Added ReduceMin op support with 5d rank and QNN_DATATYPE_INT_32 datatype for in [0]<br>and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.27.0 | Quant | <ul class="simple"><br><li><p>ElementWiseNeuron, Sigmoid (Activation type: All)</p><br><ul><br><li><p>Added constraint that dynamic dimensions is not supported currently</p></li><br></ul><br></li><br><li><p>Pack (Activation type: All)</p><br><ul><br><li><p>Added rank 4d support for in[0] and 5d support for out[0]</p></li><br></ul><br></li><br><li><p>CumulativeSum (Activation type: INT8)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out [0]</p></li><br></ul><br></li><br><li><p>HardSigmoid (Activation type: INT8, INT16)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out [0]</p></li><br></ul><br></li><br><li><p>Sigmoid, Softmax (Activation type: INT16)</p><br><ul><br><li><p>Added dynamic dimensions support on width and channel for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ReduceMean (Activation type: INT16)</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ReduceSum (Activation type: FP16, FP32)</p><br><ul><br><li><p>Added rank 5d support for in[0] and out [0]</p></li><br></ul><br></li><br></ul> |
| 2.26.0 | Quant | <ul class="simple"><br><li><p>RmsNorm</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_8 datatype support for in[0], in[1], in[2] and out[0]</p></li><br></ul><br></li><br><li><p>UnPack</p><br><ul><br><li><p>Added rank 5d support for in[0]</p></li><br></ul><br></li><br><li><p>Conv2d, TransposeConv2d, Convert</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>MaMul</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseSelect</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1], in[2] and out[0]</p></li><br></ul><br></li><br><li><p>Pad</p><br><ul><br><li><p>Enabled EDGE scheme (QNN_OP_PAD_SCHEME_EDGE) to scheme parameter for FP16 and FP32</p></li><br></ul><br></li><br><li><p>Transpose</p><br><ul><br><li><p>Added constraint that dynamic dimensions are not supported for in[0] and out[0]</p></li><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for in[0] to Transpose 5d</p></li><br></ul><br></li><br><li><p>Tile</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Softmax</p><br><ul><br><li><p>Added constraint that dynamic dimensions are not supported for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.25.0 | Quant | <ul class="simple"><br><li><p>Gather</p><br><ul><br><li><p>Added constraint that input/output quant info must match for quantized models</p></li><br></ul><br></li><br><li><p>GatherElements</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 datatype support for in[1]</p></li><br></ul><br></li><br><li><p>ElementWiseMultiply, ElementWiseAdd, ElementWiseSub, ElementWisePow</p><br><ul><br><li><p>Added rank 5d support for in[0], in[1] and out[0]</p></li><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for ElementWiseAdd,<br>ElementWiseMultiply</p></li><br></ul><br></li><br><li><p>ElementwiseRsqrt</p><br><ul><br><li><p>Added rank 5d support for in[0] and out[0] to both float and quant Rsqrt</p></li><br></ul><br></li><br><li><p>TopK</p><br><ul><br><li><p>Added “largest” parameter and only support default value (true) currently</p></li><br></ul><br></li><br><li><p>Relu</p><br><ul><br><li><p>Added support to updateable quantization for in[0]</p></li><br></ul><br></li><br><li><p>Conv2d, Matmul, FullyConnected</p><br><ul><br><li><p>Added support to block quant weight tensors on V79 devices with the constraint that<br>the block axis should be the second last axis of the weights</p></li><br></ul><br></li><br><li><p>Prelu</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>ResizeBilinear</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>PoolMax2d</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ExtractPatches</p><br><ul><br><li><p>Added QNN_DATATYPE_FLOAT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.24.0 | Quant | <ul class="simple"><br><li><p>HTP Backend Op Definition Supplement has been updated to enhance clarity on each<br>supported datatype combination. Please refer<br>to <span class="xref std std-ref">OpDef/HtpOpDefSupplement:HTP Backend Op Definition Supplement</span> for details.</p></li><br><li><p>Reshape</p><br><ul><br><li><p>Added constraint that HTP currently does not support dynamic input/output</p></li><br></ul><br></li><br></ul> |
| 2.23.0 | Quant | <ul class="simple"><br><li><p>Cast</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_64 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Transpose</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for in[0]</p></li><br></ul><br></li><br><li><p>Relu</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Gelu</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_8 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ElementwiseUnary</p><br><ul><br><li><p>Added rank 5d support to Abs op for in[0] and out[0]</p></li><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_8 datatype support to Abs op for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.22.0 | Quant | <ul class="simple"><br><li><p>ElementwiseUnary</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0] and out[0] in RSQRT op</p></li><br></ul><br></li><br><li><p>Conv3d, TransposeConv3d</p><br><ul><br><li><p>Added QNN_QUANTIZATION_ENCODING_AXIS_SCALE_OFFSET support with only<br>channel axis and the weights are expected to be signed and symmetrically quantized</p></li><br></ul><br></li><br><li><p>Reshape</p><br><ul><br><li><p>Added constraint that 0D tensors are not supported for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseAdd, ElementWiseAnd, ElementWiseDivide, ElementWiseNotEqual,<br>ElementWiseMaximum, ElementWiseMinimum, ElementWiseMultiply, ElementWisePower,<br>ElementWiseSquaredDifference, ElementWiseSubtract, ElementWiseEqual, ElementWiseGreater,<br>ElementWiseGreaterEqual, ElementWiseLess, ElementWiseLessEqual, ElementWiseBinary,<br>ElementWiseFloorDiv</p><br><ul><br><li><p>Added constraint that 0D tensors are not supported for inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseAbs</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_8 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>TopK</p><br><ul><br><li><p>Removed the constraint that for UFIXED_POINT_16 inputs, only k less than or equal to 64<br>is supported</p></li><br></ul><br></li><br><li><p>Transpose</p><br><ul><br><li><p>Added constraint for in[0] of Tranpose 4D: QNN_DATATYPE_UFIXED_POINT_8,<br>QNN_DATATYPE_SFIXED_POINT_8, QNN_DATATYPE_UFIXED_POINT_16,<br>QNN_DATATYPE_SFIXED_POINT_16, QNN_DATATYPE_INT_32, QNN_DATATYPE_UINT_32 are supported</p></li><br><li><p>Added constraint for in[0] of Transpose 5D: QNN_DATATYPE_UFIXED_POINT_8,<br>QNN_DATATYPE_SFIXED_POINT_8, QNN_DATATYPE_UFIXED_POINT_16, QNN_DATATYPE_FLOAT_16,<br>QNN_DATATYPE_FLOAT_32 are supported</p></li><br></ul><br></li><br></ul> |
| 2.21.0 | Quant | <ul class="simple"><br><li><p>Dequantize</p><br><ul><br><li><p>Added QNN_DATATYPE_FLOAT_16 datatype support for out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseBinary</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 support for all ElementWiseBinary:comparison ops for in[0]</p></li><br><li><p>Added QNN_DATATYPE_BOOL_8 support for all ElementWiseBinary:comparison ops for out[0]</p></li><br></ul><br></li><br></ul> |
| 2.20.0 | Quant | <ul class="simple"><br><li><p>ElementWiseXor, CreateSparse, GetSparseIndices, GetSparseValues, SparseToDense,<br>ElementWiseNeuron</p><br><ul><br><li><p>Added support</p></li><br></ul><br></li><br><li><p>ElementWiseSin, ElementWiseCos</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>Conv3d</p><br><ul><br><li><p>Added default handling to ignore reuse_sparse_indicies parameter<br>as HTP doesn’t support sparsity</p></li><br></ul><br></li><br><li><p>Resize</p><br><ul><br><li><p>Fixed constraint on nearest_mode parameter to match the behaviour in HTP core</p></li><br></ul><br></li><br><li><p>Convert</p><br><ul><br><li><p>Added QNN_DATATYPE_UINT_8 datatype support for in[0]</p></li><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for out[0]</p></li><br></ul><br></li><br></ul> |
| 2.19.0 | Quant | <ul class="simple"><br><li><p>Gather</p><br><ul><br><li><p>Added constraint to comunicate that HTP does not support negative indices</p></li><br></ul><br></li><br><li><p>GatherElements</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 support for in[0], out[0]</p></li><br></ul><br></li><br><li><p>BatchNorm, LayerNorm</p><br><ul><br><li><p>Added constraint to support 16 bit data types for v73 or beyond architecture only</p></li><br></ul><br></li><br><li><p>Convert</p><br><ul><br><li><p>Added max supported rank to 5d for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.18.0 | Quant | <ul class="simple"><br><li><p>Conv2d, DepthWiseConv2d, TransposeConv2d, FullyConnected, MatMul</p><br><ul><br><li><p>Added constraint to support 16 bit data types for v73 or beyond architecture only</p></li><br></ul><br></li><br><li><p>GridSample</p><br><ul><br><li><p>Added max supported rank to 5d for in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>Lstm</p><br><ul><br><li><p>Added rest input for in[24]</p></li><br><li><p>Added input rank constraint of 2 for in[0]</p></li><br><li><p>Added description of 2d input not applicable for time_major parameter</p></li><br></ul><br></li><br></ul> |
| 2.17.0 | Quant | <ul class="simple"><br><li><p>Quantize, Dequantize</p><br><ul><br><li><p>Added max supported rank to 5d for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>EltwiseMul</p><br><ul><br><li><p>Added overflow detect for input scales</p></li><br></ul><br></li><br></ul> |
| 2.16.0 | Quant | <ul class="simple"><br><li><p>Matmul</p><br><ul><br><li><p>Corrected supported rank constraints back to 4D</p></li><br></ul><br></li><br><li><p>Resize</p><br><ul><br><li><p>Added constraint to match nearest_mode only supporting default value</p></li><br></ul><br></li><br><li><p>ElementwiseOr support added</p></li><br><li><p>ElementWiseBinary</p><br><ul><br><li><p>Enabled OR</p></li><br><li><p>Added QNN_DATATYPE_BOOL_8 support for in[0], in[1], out[0]</p></li><br></ul><br></li><br></ul> |
| 2.15.0 | Quant | <ul class="simple"><br><li><p>Split, ReduceMax, ReduceMean, ReduceMin, Convert, ElementWiseAbs</p><br><ul><br><li><p>Added 5D constraints for inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseBinary support added</p></li><br><li><p>Convert</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 support for out[0]</p></li><br></ul><br></li><br><li><p>Tile</p><br><ul><br><li><p>Added QNN_DATATYPE_FLOAT_32, QNN_DATATYPE_INT_32 support for input and output</p></li><br></ul><br></li><br><li><p>Batchnorm</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 support for in[0] and in[1]</p></li><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 support for in[1]</p></li><br></ul><br></li><br><li><p>Conv2d, DepthWiseConv2d, TransposeConv2</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 support for in[1]</p></li><br></ul><br></li><br><li><p>ScatterNd</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 support for in[0], in[2] and out[2]</p></li><br></ul><br></li><br></ul> |
| 2.14.0 | Quant | <ul class="simple"><br><li><p>SpaceToDepth</p><br><ul><br><li><p>Added operations, enabled QNN_DATATYPE_UINT_32 mode</p></li><br></ul><br></li><br><li><p>ReduceSum</p><br><ul><br><li><p>Added 5D constraints for inputs and outputs</p></li><br></ul><br></li><br><li><p>LayerNorm</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 support for in[1] and in[2]</p></li><br></ul><br></li><br><li><p>ElementWiseSquaredDifference</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16, QNN_DATATYPE_SFIXED_POINT_16 support for<br>in[0], in[1] and out[0]</p></li><br></ul><br></li><br><li><p>FullyConnected, MatMul</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 support for in[1]</p></li><br></ul><br></li><br><li><p>ElementWiseRsqrt</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 support for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.13.0 | Quant | <ul class="simple"><br><li><p>Convert</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 support for inputs</p></li><br></ul><br></li><br><li><p>GroupNorm support added</p></li><br><li><p>ElementWiseRsqrt</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.12.0 | Quant | <ul class="simple"><br><li><p>ElementwiseUnary support added</p></li><br><li><p>Conv2d, DepthWiseConv2d, FullyConnected, MatMul, TransposeConv2d</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[0]</p></li><br><li><p>Constraint added for in[1]: QNN_DATATYPE_SFIXED_POINT_16 Weight must have<br>QNN_DATATYPE_UFIXED_POINT_16 Activation and must be symmetric quantized</p></li><br></ul><br></li><br><li><p>RoiAlign</p><br><ul><br><li><p>Added default support for new params: aligned and allow_invalid_roi</p></li><br></ul><br></li><br></ul> |
| 2.11.0 | Quant | <ul class="simple"><br><li><p>ElementWiseAsin, ExtractPatches, RoiAlign</p><br><ul><br><li><p>Added operations</p></li><br></ul><br></li><br><li><p>Resize</p><br><ul><br><li><p>Removed transformation_mode parameter constraint to support Asymmetric Resize Mode</p></li><br></ul><br></li><br><li><p>NonMaxSuppression</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0] and in[1]</p></li><br></ul><br></li><br><li><p>DetectionOutput, MultiClassNms</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for all inputs and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.10.0 | Quant | <ul class="simple"><br><li><p>ElementWiseSin, ElementWiseCos, NonMaxSuppression</p><br><ul><br><li><p>Added operations</p></li><br></ul><br></li><br><li><p>Conv2d, DepthWiseConv2d, FullyConnected, MatMul, TransposeConv2d</p><br><ul><br><li><p>Added QNN_DATATYPE_SFIXED_POINT_16 datatype support for in[1]</p></li><br></ul><br></li><br><li><p>TopK</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Transpose</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Fully-connected, MatMul</p><br><ul><br><li><p>Fixed Axis quantization validation</p></li><br></ul><br></li><br><li><p>Conv2d, DepthWiseConv2d, FullyConnected, MatMul, TransposeConv2d</p><br><ul><br><li><p>Removed static tensor check on INT8 axis quantized weights for in[1]</p></li><br></ul><br></li><br><li><p>Conv2d, DepthWiseConv2d, TransposeConv2d</p><br><ul><br><li><p>Allowed Non-Zero Bias Encoding with Per-Channel quantization parameters for in[2]</p></li><br></ul><br></li><br></ul> |
| 2.9.0 | Quant | <ul class="simple"><br><li><p>L2Norm, LogSoftmax</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseEqual, ElementWiseGreater, ElementWiseGreaterEqual, ElementWiseLess<br>ElementWiseLessEqual, ElementWiseNotEqual</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 and QNN_DATATYPE_SFIXED_POINT_16 datatype support<br>for in[0] and in[1]</p></li><br></ul><br></li><br><li><p>Conv2d, DepthWiseConv2d, FullyConnected, MatMul, TransposeConv2d</p><br><ul><br><li><p>Added static tensor constraint for in[1]</p></li><br></ul><br></li><br><li><p>MatMul</p><br><ul><br><li><p>Added channel axis constraint for quantization parameters for in[1]</p></li><br></ul><br></li><br><li><p>ElementWiseAdd, ElementWiseDivide, ElementWiseMaximum, ElementWiseMinimum,<br>ElementWiseMultiply, ElementWiseSquaredDifference, ElementWiseSubtract, ElementWiseEqual,<br>ElementWiseGreater, ElementWiseGreaterEqual, ElementWiseLess, ElementWiseLessEqual,<br>ElementWiseNotEqual, ElementWiseSelect, Gather, GatherNd, MatMul, ScatterNd</p><br><ul><br><li><p>Fixed rank constraint on incorrect input for in[1]</p></li><br></ul><br></li><br><li><p>ElementWiseSelect, ScatterNd</p><br><ul><br><li><p>Fixed rank constraint on incorrect input for in[2]</p></li><br></ul><br></li><br><li><p>ElementWisePower, ExpandDims</p><br><ul><br><li><p>Added 5D rank constraint for in[1]</p></li><br></ul><br></li><br><li><p>OneHot</p><br><ul><br><li><p>Added max rank constraint of 2 for in[0] and 3 for out[0]</p></li><br></ul><br></li><br><li><p>ReluMinMax</p><br><ul><br><li><p>Added max rank constraint of 5 for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.8.0 | Quant | <ul class="simple"><br><li><p>Cast, ElementWiseLog</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseGreaterEqual, ElementWiseLessEqual, ElementWiseNotEqual</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 datatype support for inputs</p></li><br></ul><br></li><br><li><p>ReduceSum, TopK</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 datatype support for inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseGreater, ElementWiseGreaterEqual, ElementWiseLess, ElementWiseLessEqual,<br>ElementWiseNotEqual, ElementWisePower, ElementWiseSelect, GatherNd, Softmax</p><br><ul><br><li><p>Added 5D constraints for inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseSelect</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_8, QNN_DATATYPE_SFIXED_POINT_8,<br>QNN_DATATYPE_SFIXED_POINT_16, QNN_DATATYPE_UFIXED_POINT_16, QNN_DATATYPE_INT_32<br>datatype support for in[1]</p></li><br></ul><br></li><br></ul> |
| 2.7.0 | Quant | <ul class="simple"><br><li><p>Argmax</p><br><ul><br><li><p>Added QNN_DATATYPE_UINT_32 datatype support for out[0]</p></li><br></ul><br></li><br><li><p>Transpose</p><br><ul><br><li><p>Added QNN_DATATYPE_UINT_32 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>DepthWiseConv2d</p><br><ul><br><li><p>Added support for dilation parameter with additional stride and kernel size</p></li><br></ul><br></li><br><li><p>ElementWiseAdd, ElementWiseDivide, ElementWiseExp, ElementWiseMaximum,<br>ElementWiseMinimum, ElementWiseMultiply, ElementWiseSquaredDifference,<br>ElementWiseSubtract, MatMul, Pad, Relu, Sigmoid, Transpose</p><br><ul><br><li><p>Fixed 5D constraints for out[0]</p></li><br></ul><br></li><br><li><p>ElementWiseExp, ElementWiseFloor, ReduceMax, ReduceMin, ScatterNd, LayerNorm</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 datatype support for all inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseEqual, ElementWiseLess, ElementWiseSelect</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 datatype support for all inputs and outputs</p></li><br></ul><br></li><br><li><p>ElementWiseGreater</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 datatype support for in[0] and in[1]</p></li><br></ul><br></li><br><li><p>Reshape</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>ScatterNd</p><br><ul><br><li><p>Added 5D constraints for in[0], in[2] and out[0], and 6D constraint for in[1]</p></li><br></ul><br></li><br><li><p>Softmax</p><br><ul><br><li><p>Added QNN_DATATYPE_FLOAT_32 datatype support for out[0]</p></li><br></ul><br></li><br><li><p>InstanceNorm</p><br><ul><br><li><p>Added constraint to support in[0] with rank of less than 4D</p></li><br></ul><br></li><br><li><p>Gather, GatherNd</p><br><ul><br><li><p>Added support for in[1]</p></li><br></ul><br></li><br><li><p>GatherNd</p><br><ul><br><li><p>Added constraint for out[0] for input and output quantization check</p></li><br></ul><br></li><br><li><p>FullyConnected, MatMul</p><br><ul><br><li><p>Added constraints to support per-channel tensors</p></li><br></ul><br></li><br></ul> |
| 2.6.0 | Quant | <ul class="simple"><br><li><p>Cast</p><br><ul><br><li><p>Added QNN_DATATYPE_BOOL_8 datatype support for out[0]</p></li><br></ul><br></li><br></ul> |
| 2.4.0 | Quant | <ul class="simple"><br><li><p>Resize support added</p></li><br><li><p>Gather</p><br><ul><br><li><p>Constraint added for in[0] and out[0]: “Max Supported rank is 5”</p></li><br></ul><br></li><br></ul> |
| 2.3.0 | Quant | <ul class="simple"><br><li><p>Cast, ExpandDims, Squeeze</p><br><ul><br><li><p>Added QNN_DATATYPE_UINT_8 support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>GatherNd</p><br><ul><br><li><p>Added QNN_DATATYPE_INT_32 support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>MatMul</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_8 and QNN_DATATYPE_SFIXED_POINT_32 support for in[2]</p></li><br></ul><br></li><br><li><p>Pad, Relu</p><br><ul><br><li><p>constraint added for in[0] and out[0]: “Max Supported rank is 5”</p></li><br></ul><br></li><br></ul> |
| 2.2.0 | Quant | <ul class="simple"><br><li><p>Gelu</p><br><ul><br><li><p>Added QNN_DATATYPE_UFIXED_POINT_16 support for in[0] and out[0]</p></li><br></ul><br></li><br><li><p>Reshape</p><br><ul><br><li><p>Added QNN_DATATYPE_UINT_8 support for in[0] and out[0]</p></li><br></ul><br></li><br></ul> |
| 2.1.0 | Quant | <ul class="simple"><br><li><p>Concat, ElementWiseAdd, ElementWiseDivide, ElementWiseMaximum, ElementWiseMinimum,<br>ElementWiseMultiply, ElementWiseSubtract, ElementWiseSquaredDifference, MatMul,<br>Sigmoid, StridedSlice</p><br><ul><br><li><p>support for rank 5 added</p></li><br></ul><br></li><br><li><p>Gather</p><br><ul><br><li><p>constraint added for out[0]: “Input quantization must be equal to output quantization”</p></li><br></ul><br></li><br></ul> |

Last Published: May 06, 2026

Previous Topic
 
QNN HTA Op Definition Revision History Next Topic

QNN LPAI Op Definition Revision History