# Revision History - Archived | Version | Date | Description | | --- | --- | --- | | 2.33.0 | March 2025 |
Tool: Added support for defer loading in case of quantization override. {127344}
Tool:Converter:ONNX: Added multi-graph deduplication to reduce context binary size and improve memory efficiency for LLMs. {116193}
Tool:Converter:ONNX: Added support for moving tensors from constant nodes to initializers to improve memory efficiency for LLMs
{112211}
Tool:Converter:ONNX: Improved handling of external data loading for ONNX model initializers, including support for 0-D tensors.
{126087}
SNPE Core: Modified extract_record_from_path python function to only extract the QNN context binary part of a SNPE cache. {124728}
SNPE DSP/AIP: Fixed SNPE API Snpe_SNPEBuilder_SetInitCacheMode()/SNPEBuilder::setInitCacheMode() breakage for non HTP backends.
This is exercised via snpe-net-run option –enable_init_cache {129545}
SNPE DSP: Fixed a bug that prevented the correct execution of signed PDs (placeholder data) in the DSP runtime {109078}
SNPE DSP: Fixed an issue that prevented devices with DSP architecture v68 from entering sleep mode after running a model. {119271}
SNPE DSP:Fixed SNPE HTP stress test failures caused by VTCM timeout. {125724}
Core: Added performance profiling capabilities to the C and CPP sample applications {124508}
Core: Fixed bug in running signed PDs in DSP runtime {119032}
Core: Resolved inference time regressions observed in the HTP runtime when using qnn-net-run. {114832}
Op:HTP: Fixed accuracy failures with HTP FP16 custom MobileNet_v2 mixed precision models due to rounding issues
Observed in half-float to signed 16-bit conversion. {121932}
Tool: Ensured ChannelShuffle output transposed to NCHW when –preserve_io layout is enabled. {123922}
Tool:Converter: Added support for specifying batch size during model conversion when using the TensorFlow converter. {94854}
Tool:Converter: Corrected the handling of Bias tensor encodings in FC and MatMul Ops. {120720}
Tool:Converter: Corrected the layout override logic for the Select Op. {110665}
Tool:Converter: Fixed a bug in Op sequence matching for the GroupNorm Op {124757}
Tool:Converter: Fixed an issue in the Converter that ensures disable BN squash when conv node’s weight/bias overrides are present.
{124293}
Tool:Converter: Fixed an issue that conv2d bias gets incorrect scale when input[0] is overridden to float {116164}
Tool:Converter: Fixed an issue where folding transposes would cause graph output names to be lost. {125412}
Tool:Converter: Fixed argument parsing errors in QNN converter that caused failures for pytorch models on cloud
Observed when used with QNN-AIC tool. {126985}
Tool:Converter: Fixed the logic of “add_op_to_backend” in QnnCastTranslation {117228}
Tool:Converter: Resolved an issue where model input encoding was not correctly derived from Quantize/Dequantize Ops
after quantization nodes were removed. {124268}
Tool:Converter:ONNX: Added support for three new einsum equations, expanding the range of supported ONNX models. {113767}
Tool:Converter:ONNX: Fixed a bug in axes format population for the Pool Op {118828}
Tool:Converter:ONNX: Fixed an issue where GroupNorm Op was not getting correct gamma and beta tensor values,
which may have led to accuracy issues in optimized graphs. {119523}
Tool:Converter:ONNX: Fixed an issue with the ElementwiseSelect Operator that resulted in incorrect input dimensions. {127541}
Tool:Converter:ONNX: Fixed graph name inconsistency in qairt lora converter workflow. {104805}
Tool:Converter:ONNX: Fixed propagation of user encodings in IdentityOp {126845}
Tool:Quantizer: Fixed an overflow issue in profiling data casting {123812}
CPU: Added support for trilinear interpolation in the Resize 5D Op. {122218}
CPU: Resolved an accuracy issue with MobileBert models on certain chipsets when using the xnnpack matmul implementation. {121590}
GPU: Fixed an issue where multiple models failed on SM4250-IOT with a Graph Execution failure when using the GPU backend. {121569}
GPU: Resolved out of memory issues for specific models when running on the GPU backend. {108838}
HTA: Resolved an issue that caused models with reshape layers to fail on the AIP runtime. {124581}
HTP: Fixed a timeout issue in SNPE util. {120943}
Op:CPU: Added support for 5D tensors in Elementwise Comparison Ops. {125481}
SNPE Core: Resolved an issue that caused network resizing to fail in SNPE versions 2.27 and later. {123315}
SNPE HTA: Resolved a memory leak issue encountered while running SNPE stress tests on the AIP runtime. {123604}
SNPE: Fixed a bug where model version option during conversion is not being properly saved into generated DLC. {124903}
SNPE:CPU: Resolved a memory leak in the DepthwiseConv2d Op. {123629}
SNPE:GPU: Resolved an issue where SNPE-QNN coexistence stress tests were getting stuck with the GPU backend. {121582}
Tool:Converter: Added axis tracking for ExpandOp {118618}
Tool:Converter: Added new sequence for FC/matmul + squash batchnorm in case of optional bias in FC and matmul {119429}
Tool:Converter: Added support for constant input in BatchNorm Op. {117961}
Tool:Converter: Added support for constant scalar input in the PyIrConstant tensor. {117953}
Tool:Converter: Added support for Device NMS (QDetect) in the QNN converter for AIC. {68665}
Tool:Converter: Added support for partial IO for Preserve IO Datatype. The –preserve_io_datatype flag now accepts specific
inputs/outputs for datatype preservation. {117580}
Tool:Converter: Added support for QAIRT command-line arguments to specify desired input layout and output shape. {106635}
Tool:Converter: Added validation in match_base_layernorm for layernorm pattern matching {119491}
Tool:Converter: Enable Constant folding for OneHot Op {116983}
Tool:Converter: Enabled QnnIR backend for all toolchains having QNNHTP support. {111592}
Tool:Converter: Fixed an issue where bias was not correctly handled in the GEMM Op during model conversion. {120022}
Tool:Converter: Fixed an issue where per-channel quantization for Conv2D bias was not being performed when using the
–use_per_channel_quantization flag. {118497}
Tool:Converter: Fixed the broadcasting failure in the squash_eltwise_into_conv method in optimization {119746}
Tool:Converter: Removed dependency on the Python rich library. {124683}
Tool:Converter: Updated the Onnx Runtime Version from Onnx-1.17.1 to Onnx-1.18.0 {125506}
Tool:Converter:ONNX: Added LayoutInferer support for CustomOp, enabling layout transformations for custom operations based
on user-defined XML op definitions. {104942}
Tool:Converter:ONNX: Added support for the ONNX IsNaN Op. {115649}
Tool:Converter:ONNX: Addressed an issue where input preprocessing encodings were being ignored, leading to unquantized nodes
in the converted model. {124609}
Tool:Converter:ONNX: Fixed an issue in constant folding for the Where Op. {122514}
Tool:Converter:ONNX: Fixed an issue in static alpha conversion for the PReLU Op. {124487}
Tool:Converter:ONNX: Fixed an issue in the QNN converter related to batchnorm operator. {115134}
Tool:Converter:ONNX: Fixed an issue where the converter would fail with an UnboundLocalError when processing subgraphs of the
BERT Large model with quantization overrides. {110453}
Tool:Converter:ONNX: Fixed constant folding logic in ReduceOp translation {125098}
Tool:Converter:ONNX: Resolved an issue where the converter was adding unnecessary int16 to int8 conversions for reshape ops in
float-fallback mode. {126844}
Tool:Converter:ONNX: Resolved issues in Slice and Concat Op translation. {123355}
Tool:Converter:ONNX: Support Onnx LSTM with pre-quantized weights and biases {114557}
Tool:Converter:Relay: Corrected an error in TFLite CustomOp conversion and Conv2D dequantization. {120231}
Tool:qnn-onnx-converter: Fixed an issue in the ONNX converter that caused errors when handling specific axis layouts in the
Buffer Op. {125932}
Tool: Converter: Updated command-line argument names for QAIRT Converter and Quantizer to ensure consistency.
Tool: Added support to display average latency per inference in snpe-throughput-net-run.
Tool: Converter: Fixed an issue that caused inconsistent input tensor order when using the custom_io option due to the use of
std::set.
Tool: Converter: Fixed an issue that prevented RMSNorm from being folded when the epsilon tensor had more than one element.
Tool: Converter: Fixed an issue with the ‘axis’ value when merging a reshape_transpose_reshape pattern into a channelshuffle Op.
Tool: Converter: Added support for unsigned symmetric quantization of activations using the ‘–act_quantizer_schema
unsignedsymmetric’ option.
Tool: Converter: Fixed an issue where Batchnorm weights had an incorrect datatype when using asymmetric overridden encoding.
Tool: Converter: Fixed an issue where ReLU symmetric external encoding was not being applied correctly.
Tool: Converter: Corrected GRU Op optimization to properly apply encoding information.
Tool: Converter: Improved handling of empty inputs for GRU and LSTM Ops.
Tool: Converter: Updated ONNX framework version information in QNN documentation.
Tool: Converter: ONNX: Fixed an issue to handle static first input to Gemm Op.
Tool: Converter: TFLite: Added support for int64 bias in TFLite Conv2D Op.
Tool: Converter: TFLite: Added a pattern to dequantize constant expressions.
Tool: qnn-tflite-converter: Fixed an issue where the dequantize node had the wrong datatype in quantized TFLite models.
Tool: Converter: Added framework tracing validation to check if all ops and tensors from framework model are traced.
Tool: Converter: Converter now correctly preserves input tensor datatypes based on the ‘preserve_io datatype’ command-line option.
Tool: Converter: TensorFlow: Resolved an issue in GenericBatchNorm node fusion.
Tool: Converter: Resolved a converter issue that caused a failure when using FP16 mix precision due to static shared tensors
having inconsistent types.
Tool: Converter: qnn-onnx-converter: Resolved an issue in framework tracing that caused some tensors to be missed.
CPU: Corrected the output index for the MultiClass NMS Op.
SNPE:DSP: Resolved an issue where running an FP16 model with ‘linting’ or ‘detailed’ profiling levels resulted
in a ‘QNN_GRAPH_ERROR_SET_PROFILE’ error.
Added 16KB alignment support for Android libraries in QAIRT SDK to enhance memory management.
DSP: Fixed TF/TFLite model preparation failures on QCS6490.
HTP: Resolved a race condition during thread group creation, preventing thread exhaustion under heavy system load.
Tool: Converter: Fixed bug in quantization of Elementwise Binary Ops when the output is non-quantizable and one of the inputs has
quantized data type while other input is float32.
Tool: Converter: Fixed the ONNX converter’s incorrect quantization setting for the third input of the ScatterElements Op
Tool: Converter: Updated the axis tracking logic for the RoiAlign Op.
Tool: Converter: Fixed an issue in the Converter that ensures correct assignment of the graph.preserve_io_datatype_passed and
graph.preserve_io_datatype parameters.
Tool: Converter: Mapping int64 inputs to int32 inputs without inserting extra cast.
Tool: Converter: Fixed the bug in ElementwiseProduct Optimization.
Tool: qnn-accuracy-debugger: Fixed bug in qnn-accuracy-debugger when sanitize tensor name following converter’s node naming
conventions.
SNPE: Fixed high DSP core clock retention when using multiple models with different performance profiles.
SNPE: Fixed initialization with buffer via DLC API & builder API behavior on a DLC with valid cache; also addresses
init time regression.
SNPE Core: Added the Snpe_SNPE_SetExecutionPriorityHint() / SNPE::setExecutionPriorityHint() API to allow changing the priority of
inferences after network initialization. The snpe-throughput-net-run –priority_hint option now accepts a list of priorities.
SNPE Core: Added a warning in the logs to indicate missing output tensors when output is not explicitly set via the builder API.
API: Fixed SNPE execution failure when loading models from a buffer using Snpe_DlContainer_OpenBuffer().
Tool: Quantizer: Added support for Int32 Quantization Override.
Tool: Converter: Fixed a shape mismatch error for the Concat Op that occurred under specific conditions involving continuous
Concat Ops and Nontrivial layouts.
Tool: Converter: Fixed RMSNorm fusion for models where the topological order of nodes differs from their sequential order.
Tool: Converter: Relay: Added support for Quantized BatchMatmul Op in TFLite Converter.
Tool: Converter: Onnx: Fixed model conversion failures for models with Concat and GridSample operations with varying input layouts.
Tool: Converter: Fixed incorrect layout setting for Transpose Op’s output tensors. Note: The output tensor’s layout should not
be set to Nontrivial in the axis tracking optimization function if the function does not change anything.
Tool: Converter: Fixed an encoding override issue.
Tool: Converter: qnn-onnx-converter: Fixed converter failure for Gather Op.
HTP: Fixed power config ID leak when using SNPE and QNN together that was causing stability issues.
HTP: Added generic event WER (Windows Error Reporting) for critical SDK errors. WER generation is automatic and always enabled, but
submission is controlled by Windows OS privacy settings. Visit “Windows Error Reporting” page in SDK documentation for more details.
DSP: Fixed crashes that occurred intermittently while running stress tests with interceptors enabled in different performance
profiles.
SDK: Doc: Updated SDK documentation to include information about using SSH/SCP commands for OE Linux based targets.
SDK: License: Separated the license restrictions section into two parts: one for general restrictions and another
for a prohibited items list.
SDK: Added support for dynamic tensor shapes in the DLC format.
Tool: onnx-simplifier: Added the following HTP-specific post-quantization adaptations:
* Output transposed keycache: Avoids repetitive transpose of key state tensors.
* Output new key value only: Reduces memory traffic.
Tool: Converter: Added support for 6D ReshapeOp, ElementwiseUnaryOp, ElementwiseOp, ReduceOp, and GatherOp.
Tool: Converter: Added converter support for the QLinearConv Op.
Tool: Converter: Added converter support for the QLinearMatMul Op.
Tool: Converter: Fixed an issue where the conv+bn fusion was not being disabled when the conv node was the graph output.
Tool: Converter: Fixed an issue where L2Norm had the wrong axis after sequence matching.
Tool: Converter: Fixed an issue where the Topk Op’s K value was invalid.
Tool: Converter: Fixed a bug where quantization overrides for LSTM/GRU Ops were not propagated correctly during Op expansion.
Tool: Converter: ONNX: Added translation for if Op.
Tool: Converter: ONNX: Added support for pattern matching matmul with bias in MHA to SHA conversion.
Tool: Converter: Fixed GELU fusion for models where the topological order of nodes differs from their sequential order.
Tool: Converter: Fixed a GroupNorm optimization issue when the gamma/beta shape was modified.
Tool: Converter: Fixed bug in GroupNorm fusion for the VAE Encoder model.
Tool: API: Added optional arguments to the simplify API.
Tool: Quantizer: Fixed a bug in per-channel bias with float_fallback.
HTP: Added online prepare support for OE Linux targets based on gcc9.3 toolchain.
HTP: Fixed Inference time regressions on vgg16 and other models.
HTP: Fixed a performance issue in Depthwise Convolution when it is the first layer of the model and quantized to int8.
Core: Added –platform_options=”deviceId:1” support for multi NSP devices in HTP runtime for snpe-net-run and
snpe-throughput-net-run.
SNPE Core: Optimized memory footprint for networks when input/output user buffers match the tensor data type.
For mismatched data types, the first inference will be slower due to memory allocation for conversion.
Tool: Converter: Onnx: Added Conversion support for “largest” attribute in TopK Op.
DSP: Upgraded Hexnnv2 to DSPCore1.53.0.
Tool: Converter: Added support for antialias attribute of ONNX Resize operator with linear interpolation mode.
This is only supported with 4D inputs currently.
Tool: Converter: ONNX: Added functionality to output only the last logit.
Tool: Converter: ONNX: Enhanced model conversion efficiency by eliminating superfluous Transpose nodes around Elementwise Op.
Tool: Converter: ONNX: Enabled support for additional Einsum equations.
Op: CPU: Added 6d elementwise Ops.
SNPE Core: Fixed a bug in user buffer data type conversion from ufxp_8 to uint_8/16/64 and int_8/16/64.
Op: CPU: Added int8 support for RMS Op.
Core: Updated zlib version to 1.3.1 to fix CVE-2023-6992 and CVE-2022-37434.
Core: Added support to read output tensor names from the input list in snpe-parallel-run.
Tool: Converter: Mapped the cast op to constant op in case of static input to the cast op.
Tool: Quantizer: Fixed an accuracy issue caused by squashing Relu when using a symmetric quantization profile.
Core: Improved memory-mapped user buffer registration API to handle duplicate address/offset gracefully,
particularly in recurrent networks.
Core: SNPE: Corrected CSV data display issue in snpe_bench.py script, ensuring accurate result depiction since version 2.22.0.
Tool: Converter: Fixed a bug in applying quantization overrides when a RMSNorm pattern is folded into RMSNorm QNN Operator.
Tool: Converter: Added support for string datatype in customOp.
Tool: Converter: ONNX: Added folding support for new RMSNorm patterns.
Tool: Converter: Qnnx: Fixed conversion failure due to axis tracking for specific models with qairt-converter.
Tool: Converter: TFLite: Fixed multiple Converter and Quantizer issues for the FullyConnected Op in QNN TFLite Converter.
Tool: Quantizer: Qairt: Fixed a bug in applying quantization overrides for static input tensors of data invariant operators.
Tool: Quantizer: Fixed a bug in converting tensor data from FP32 -> FP16 for FP16 overrides.
Tool: Converter: Relay: Added new Op Support for BatchToSpace and SpaceToBatch Ops to the TFLite Converter.
Tool: Converter: Optimized the implementation of expand LSTM Op structure in the converter.
Tool: Quantizer: Fixed accuracy drop at output of Cast Op (INT32 -> uFxp8) by inserting Quantize (FP32 -> uFxp8) Op after Cast
(INT -> FP32).
Tool: Converter: Fixed issue where some models with LSTM and NTF format input failed to convert.
Tool: Converter: Fixed broadcasting error for constant input to Quantize/Dequantize Linear ONNX Ops, ensuring correct input
handling.
Tool: Converter: ONNX: Mapped RMSNorm pattern in ONNX networks to a QNN RMSNorm Op.
Tool: Converter: Fixed an issue in the calculation of padding for deconv.
Core: Fixed performance regressions in memory mapped use case with snpe-throughput-net-run.
Core: Fixed CSV format data display issue in snpe_bench.py, which was broken since version 2.22.0.
Core: Fixed snpe-net-run to not automatically round float32 userbuffers before conversion to int32/uint32 tensor data types.
Op: HTP: Improved memory footprint and performance for Conv3D Op.
Tool: Added Python APIs for converter, optimizer, and quantizer.
Tool: Converter: Added op support for RMS Normalization.
Tool: QAIRT: Added a feature to preserve the input/output layout and datatype as in the source framework model.
Added a new commandline argument to invoke the feature.
Tool: snpe-dlc-info: Enabled dumping of framework trace info from DLC file.
Added an argument to enable or disable this functionality.
Tool: Converter: Added fix to remove identity patterns emerging from a sequence of Reshape and Transpose ops.
CPU: Fixed memory leak for XNNPACK operator.
Tool: Converter: Added fix to remove additional transpose operations around RMSNorm operation.
Tool: Converter: Fixed axes order mismatch in LayerNorm Op and conversion issue in TransposeConv1d Op.
HTA: Improved Validator for elementwise Op.
Added onnx-simplifier and onnx-runtime versions to sdk.yaml.
Tools: Quantizer: Updated SDK documentation for failing conditions of QAT encodings.
Core : Added more logs for custom and preset perf profiles.
Tool: Added infrastructure to support –backend and –soc_model options in qairt-converter & qairt-quantizer tools,
enabling the generation of graphs suitable for the chosen backend and SOC
Core: Add HMX voting support to SNPE.
Tools: Converters: Fixed an issue in Converter to allow for the Graph input datatype to be correctly updated to FP16 from FP32.
Tool: SNPE Quantizer: Added fix for Segmentation Fault issue when using algorithms cle flag.
SDK: Add version information to libraries and executable files.
Tool:Converters: Fixed performance regressions due to redundant transpose ops introduced during graph optimizations.
Core: Fixed memory leak in CPU and GPU runtimes while creating and deleting network in a loop.
Tool: Converter: Fixed Op Config Validation issue when translating grouped ConvTranspose / Deconvolution Op.
Tool:Converter: Update clear help message for argument “–enable_framework_trace”.
Tool:Converter: Disable framework trace for other converters than onnx converter.
Core: Added support for traceinfo in dlc.
Tool:Converter: Added implementation for framework op tracking for graph quantization optimization stage.
Core: Added perf API support to snpe-throughput-net-run.
Op:HTP: support TCM for ConvLayer.opt.grpconv_weights.
Tool: Converters: Relay: Fixed a tflite conversion failure by adding dequantize reduce pattern pass.
Core: Fixed memory leaks in Android APK with DSP runtime in every classification (inference) request.
Tools: Fixed a bug in snpe-dlc-graph-prepare where passing –set_output_layers would add the last op of the network even if
not passed explicitly.
Tools: Converter: Adding reduction attribute as none in case of attribute is not available in original graph.
Tools: Converter: Div op support is added in Tensorflow converter.
Tool:snpe-accuracy-debugger: Enable windows x86 Native support for integrated Quant Checker for SNPE SDK.
Tools: Converters: Cleanup of old references for Binary Coarse op.
Core: Support 5D tensors for transpose fp16 op in HTP.
DSP: Introducing low level performance APIs for DSP thus enabling custom performance profile settings for init, inference,
de-init and from inference to inference. Also enabling the ability to overwrite partially a preset profile.
Tool:quantizer: Fixed issue observed when bias of conv op need to be per-channel quantized in mix-precision mode.
Tools: Converter: Fixed the small bug in onnx softmax translation.
Core: snpe-dlc-graph-prepare - Fixed a bug with multiple SoC prepare for certain networks.
API: Added new APIs to quantize and dequantize buffers - Snpe_Util_Convert_Float32ToTfN / IUserBufferFactory::Float32ToTfN,
Snpe_Util_Convert_TfNToFloat32 / TfNToFloat32. Please read the API docs for details on usage.
SDK: Updated Android NDK version to android-ndk-r26c for compiling SNPE/QNN SDK for Android based targets.
Tool: Converter: Onnx: Fix axis tracking issue for TransposeConv2d.
Core: Fixed multiple timestamps in logs in android logcat.
Tools: Pytorch & TFlite Converter: Fix incorrect rounding behavior.
Tools: Converters: PyTorch: Added support for TransposeConv3d.
HTP: Fixed accuracy issue for the pattern: Batchnorm -> Relu -> Concat.
SNPE library migrated to use static libc++ for Android platform.
Tool: Quantizer: Added a new standalone qairt-quantizer tool equivalent to snpe-dlc-quant. This new tool takes a float DLC and
produce a Quantized or Mixed Precision DLC.
Tool:Converters: Added support for sparse tensors.
Core: Renamed DSP_v68 folder at <SNPE_SDK>/examples/SNPE/NativeCpp/UdoExample/<OpName>/src to HTP.
Tools: Converter: enable 16bits QuantizeLinear/DequantizerLinear in Onnx converter.
Tools: Converters: ONNX: Added support for ThresholdedRelu ONNX op.
Tools: Converter: Downcast to_type for Cast op from int64 to int32.
Tool: Converter: Added PyTorch ChannelShuffle support.
Tool: Converter: Added TFLite LOCAL_RESPONSE_NORMALIZATION support.
Tool: Converter: Onnx: Support FP16 model conversion.
Tools: Converter: TFLite: Fixed an encoding mismatch issue at input and output layers when converting a pre-quantized tflite network.
Tool:snpe-dlc-quantize: Fix the bug causing snpe-dlc-quantize to fail with multi-dot dlc filenames.
Core: Fixed Snpe_Util_SetSNPEStorageLocation/ SNPEFactory::setSNPEStorageLocation to not create duplicate kernel
repo file (GpuKernelRepo.pb) for GPU and delegate it to the backend (gpukernelcache.qti.aisw)
Core: Fixed resource release in burst and sustained_high_performance mode.
Tool: Converter: Onnx: Bug fixed to support different layout of axis in TopK.
Tool: Pytorch Converter: Fixed scalar indices issue for gather op.
Addressed SSR (SubSystem Restart) occurring during SNPE_Execute().
Tools: Converter: Added qairt-converter tool. This converter tool takes a Pytorch/Onnx/Tensorflow/TFLite network and
converts it to a DLC file representing the QNN graph format that can enable inference on Qualcomm AI IP/HW.
Please refer Documentation or AppNote for more details.
Tools: Converters: Added Converter support for MaskedSoftmax Operator.
Core: Added new option –userbuffer_memorymapped_shared to snpe-parallel-run to enable sharing memory mapped user buffers.
allowing different tensors to register using the same address/file descriptor and a unique byte offset.
Tools:qnn-pytorch-converter: Enabled preserve_io feature.
Tools: Converters: support hardsigmoid in onnx converter.
Tools: snpe-dlc-info updated to display output tensors and unconsumed internal tensors in separate tables.
Tools: Added support for snpe-diagview tool for OE Linux GCC11.2 toolchain based targets.
Core : Added CPU INT8 support to Softmax UDO example.
Tools: qnn-pytorch-converter: add support of aten::upsample_linear1d for pytorch converter.
Tools: Converter: PyTorch: added PixelShuffle support for pytorch converter.
Core: Fixed snpe-diagview –chrometrace stats computations related to averaging when multiple input sets are involved.
Core: Updated the sample app MemoryMappedUserBuffer to reflect proper usage of memory mapped userbuffer.
registration/de-registration, once in SNPE’s lifecycle and not once per execute.
Core: Added support for sharing regular userbuffers (non memory-mapped) via single buffer and offsets.
SDK: Added supported SOC table to SDK documentation.
Core: Added new option –validate_cache to snpe-net-run and snpe-throughput-net-run to validate
HTP cache before network initialization.
Tools: Converters: Added the support for assigning input dtype in PyTorch converter.
Tool: Converter: Pytorch: Fixed the issue of duplicate buffer names for two identical transpose ops.
Tools: Fixed bug to correctly convert shared static tensor to FP16.
Tools: Converter: Supported optional initial_h and initial_c in Onnx bidirectional LSTM.
Tools: Converter: TFlite: Fixed data type mismatch issue for TFLite pre-quantized model.
Tools: Converters: Updated squashing logic to avoid removing model outputs.
Core: Added new SNPE builder API s Snpe_SNPEBuilder_SetCacheCompatibilityMode() / SNPEBuilder::setCacheCompatibilityMode()
to set HTP cache compatibility mode for cache selection.
Tools: Converter: PyTorch: Raise an error for custom op support in SNPE product.
Core : Added Relu UDO example to SNPE sdk.
Tools: snpe-dlc-graph-prepare - Added a new option –num_hvx_threads for reserving no of HVX threads for a graph running on HTP.
Tools: Converters: support group_norm in pytorch converter.
Core: ArgMax example added to UDO examples in SNPE SDK.
Core: Updated CAPI Sample App for Memory Mapped User Buffer to demonstrate usage of dmabuf (libdmabufheap.so).
Tools: Converters: Add Gather and Take support in pytorch converter.
Tools: Converters: PyTorch: Added support for AvgPool1d/MaxPool1d/AvgPool3d/MaxPool3d/AdaptiveAvgPool1d/
AdaptiveMaxPool1d/GlobalAvgPool1d/GlobalMaxPool1d.
Tools: Converter: Onnx: Enforce h/c input buffers of LSTM to be NONTRIVIAL.
Tools: Converter: Support BROADCAST_TO in tvm tflite frontend.
Core: Added –userbuffer_memorymapped_shared option in snpe-net-run and snpe-throughput-net-run to exercise shared memory
mapped buffers.
Added product and OS info to SDK.yaml file.
Core: Added new APIs Snpe_UserMemoryMap_AddFdOffset / UserMemoryMap::add() and
Snpe_Util_CreateUserBufferShared() / IUserBufferFactory::createUserBufferShared() to enable sharing memory mapped user buffers
allowing different tensors to register using the same address/file descriptor and an unique byte offset.
Tools: Converters: Updated algorithm to fix Tensor Layout from Constant operator when it is located ahead of Concat Operator.
HTP: updated backend extensions config - changed graph object to graph array to allow different graphs have different set of
properties.
Tools: Converter: Fixed param name parsing issue in pytorch converter.
Tools: Pytorch converter: Added support for OneHot op.
SNPE Core: Added support for targetSdkVersion 32 in SNPE apk.
Core: Update MemoryMappedUserBuffer sample app to demonstrate shared buffer usage. Added support for named input parsing
in all the sample apps.
Core: Enhanced error messages for API failures in userlogs as well as Snpe_ErrorCode_GetLastErrorString() /
DlSystem::getLastErrorString()
Tools:ONNX Converter: Fixed WhereOp axis format issue.
Tools: Converter: fix tensorflow strided_slice conversion for out of range start/end.
DSP Runtime: Added DSP reset / Subsystem Reset (SSR) error handling for logging API: Snpe_Util_SetLogLevel() /
SNPEFactory::setLogLevel().
Core: Fixed registration of memorymapped user buffer with multiple addresses against the same tensor name.
SDK: Add support for Mobile SoC: SM8650
Core: Added new APIs Snpe_UserMemoryMap_AddFdOffset / UserMemoryMap::add() to enable sharing memory mapped user buffers allowing
different tensors to register using the same address/file descriptor and an unique byte offset.
Core: Added pre-emption count captured as yield count in logs in SNPE.
Core: Fixed redundant rpc memory allocations during graph initialization for memory-mapped (zero copy) buffer usage by providing
hints during graph prepare. snpe-dlc-graph-prepare option –memorymapped_buffer_hint introduced.
SDK: Added sdk.yaml in SDK to capture build and other version info.
Tool: Common: Quantizer: Added a Quantizer pass to make static inputs of Elementwise Op float if the output is overridden to float.
Core: Performance improvements done in network initialization time - up to 1.5x speed up for certain networks with HTP offline cache.
Tools: Converters: Added broadcast support for layernorm op weights and bias.
Tools: Converters: Added rectangular SpaceToDepth op support to handle SpaceToDepth pattern in Pytorch model.
DSP Runtime: Added HTP DLBC(Deep Learning Bandwidth Compression) option for graph preparation.
Tools: Converters: Added batch_norm ND support in tflite/pytorch converter.
Tools: PyTorch Converter: Add support for custom op in QNN product.
Tools: enable LSTM operator in SNPE.
Tools: Converters: Onnx: Fixed conversion failure for gather op with scalar indices.
Tools: Quantizer: Fixed an issue by not converting Cast to Convert if next op is float.
Core: Fixed Snpe_SNPEBuilder_SetInputDimensions() / SNPEBuilder::setInputDimensions() /snpe-net-run option –input_name xxx
–input_dimensions yyy to evaluate new dims when a compatible dsp cache record is present. If new dims are accepted offline cache
will be rejected in favor of online preparation.
Tools: PyTorch Converter: Fixed parameter quantization override.
Tools: Converters: Fixed a conversion failure when folding Concat Ops.
Tools: Converters: Pytorch: Fixed an issue with applying overrides.
Tools: Converters: Onnx: Fixed a conversion failure when Onnx inferShape API returns an empty graph.
Tools: Converters: Onnx: Fixed a quantization failure for networks having Float16 activations.
Core: Implemented coexistence of DSP/HTP cache records prepared with different input dimensions. Added option to specify input
dimensions in snpe-dlc-graph-prepare. Cache selection logic updated to match dimensions passed during graph initialization.
Tools: Converters: Onnx: Add support for Gather Op with negative indices.
Tools: Converters: Updated the validation to see if the weights of FC and BN are eligible for optimization of BN into FC.
Core: Logging from backends is made conditional based on SNPE logging API invocation.
Docs: Updated inceptionv3 documentation to include LU / LE toolchains.
SNPE HTA: Added support of Pooling 16bit for large dimensions.
HTP: fixed graph prepare issue due to edge mod pad.
Tools: snpe-dlc-info tensor columns rearranged and HTP cache info section updated to display UDO information,
Optimization level etc.
Core: snpe-dlc-graph-prepare updated to overwrite existing cache with similar signature but from older cache version by default
SNPE GPU: Extreme power saver performance profile fixed to map to the lowest profile on the SoC instead of highest.
SNPE AIP: Extreme power saver performance profile now maps to lowest profile available on the SoC.
SDK: Fixed broken links in PSNPE C API documentation.
SNPE DSP: Extreme power saver performance profile for DSP v66 devices now maps to lowest performance profile available on the SoC.
Core: Memory Mapped Userbuffer Sample App - added error handling for incompatible data types.
Core: Fixed –debug not emitting intermediate tensors for offline cache based execution.
Core: HTP offline cache records prepared for DSP architecture v68, v69 (sm8350/sm8450) will be rejected on SoCs
with DSP architecture v73 and above (sm8550).
Tools: Converter: Onnx: Added default attribute perm for Transpose Op.
Tools: Converter: Tensor with no consumers and not an actual graph output will be set to NATIVE for QNN Onnx Converter.
Tools: Converter: Allow only output tensors in the source model to be marked as QNN_TENSOR_TYPE_APP_READ. All other tensors with
zero consumers will change from being APP_READ to NATIVE.
Tools: Converters: Onnx: Added negative max_output_boxes_per_class parameter support for NonMaxSuppression.
Tools: Converter: update tvm version to support pytorch 1.13 version.
SDK: Update documentation contents for standalone SDK.
Tools: Converters: Added a Graph pass that matches Space2Depth Op (CRD & DCR) from Reshape - Transpose - Reshape pattern.
Tools: quantizer: Avoid act’s bw changing according the weight/bias’s bw.
Op:HTP: added uint8 support for maxpool w77s44p00.
Core: SNPE de-initialization moved to a separate thread for all profiling levels to better affine to faster CPU core(s)
thus improving de-init time for most graphs.
Tools: Converters: Resolved OpValidation error related to LayerNorm Op caused due to the unsqueezed Gamma/Beta
tensor being > 1D rank.
SDK: Updated Revision history formatting in SNPE docs.
Tools: Converter: GRU weights are shared across time unrolling step.
Documents: Update latest PyTorch Op support.
Tools: Converter: Allow only output tensors in the source model to be marked as QNN_TENSOR_TYPE_APP_READ.
All other tensors with zero consumers will change from being APP_READ to NATIVE.
SNPE DSP: added support for uint8 window7x7 stride3x3 maxpool ops on HTP.
Tools: snpe-dlc-graph-prepare - introducing new option –optimization_level. Higher optimization levels incur longer
prepare time but yields more optimal graph and hence faster execution time for most graphs.
Tools: Converter: Changed the logic for converting 1dOp into 2DOp by expanding along H dimension instead of W dimension.
Op:DSP: added support for logSoftmax.
Tools: Converter: Changed the translation of FloorDiv operator to ElementWiseDivide if the datatype of input is Int32.
Tools: Introducing –userbuffer_memory_mapped option in snpe-net-run, snpe-throughput-net-run and snpe-parallel-run for general
memory mapped userbuffer use cases(like ionbuffers in Android).
Tool: TF Converter: added support for conv2d_transpose layer with asymmetric strides.
Tools: TF Converter: Support optimized Gelu pattern that contains Mul instead of Realdiv.
API: Generic APIs added for memory-mapped userbuffers in lieu of existing ion buffer registration/de-registration APIs.
Core: Added CAPI based Sample Apps for userbuffer and memory-mapped buffers (like ion buffer).
HTP: Fixed bug in ReduceMean optimization during prepare.
Tools: snpe-diagview - fixed “Snpe Accelerator Time” and “Accelerator Time” data being larger than “Total Inference Time”.
SDK : libCalculator_Skel.so added to lib/hexagon-v68/unsigned and lib/hexagon-v69/unsigned folders of SNPE SDK.
Tools: Converters: Added a new transformation to change MatMul into FullyConnected even without Bias.
Tools: Converter: TFlite: Added a fix to account for the difference in the offset sign and usage when quantizing tensors.
SNPE DSP: Introduced new extreme power saver performance profile to enable ultra low power inferencing usecases on HTP runtime.
SNPE Core: All binaries are now built with libc++, not libstdc++ for X86/Linux.
SNPE Core: All binaries are now built with clang9 instead of clang7.
Tools: Converters: Modified the output names generated by Pytorch Converter and TFlite Converters.
Also changed the axis tracking behavior to match the TF & Onnx Converters.
This may change the name and layout for the output layer of the model.
API: Fixed Snpe_SNPEBuilder_SetTimeOut/SNPEBuilder::setTimeOut() to failure when Snpe_SNPE_ExecuteUserBuffers()/SNPE::execute()
fails to return within the timeout duration.
Tools: Quantizer: Fixed an issue that prevented weights & bias inputs of Batchnorm from being set as FP16.
Tools: Quantizer: Fixed an error related to locking the WeakPtr associated with the Bias tensor to Convolution Op.
SDK: dependencies.sh changed to check-linux-dependency.sh and check_python_depends.sh changed to check-python-dependency.sh.
Also envcheck.sh added.
Core: SNPE C++ APIs are deprecated. To maintain backwards compatibility C++ header-only wrapper APIs are included in the SDK
that invokes SNPE C APIs internally.
Op: ONNX converter: added support for Mod.
CPU: INT8 support enabled for LA targets.
Core: Caffe source framework models are no longer supported in SNPE.
Core: arm-32 platform is no longer supported in SNPE.
SDK directory structure is updated.
Documentation refreshed with a new look and feel and contents are enhanced.
Core: New C API s added to match the deprecated C++ API capabilities.
Core: Init time improvements for most models with HTP offline cache record.
(Note that the offline cache needs to be regenerated to take advantage of this improvement)
Core :Native Cpp example for Platform Validator with C APIs is now functional.
Tools: snpe-net-run now allows –debug when input list has output op names (# )or output tensor names (% ) specified
in the first line.
GPU Runtime: Support Pack operation with 1 input.
Core: Updated C API documentation for ITensor/Userbuffer creation indicating data size.
Core: setLogLevel() API hooked up to the runtimes for updating logging level after creating logger handle.
Tools: snpe-throughput-net-run now supports –userbuffer_auto option (similar to snpe-net-run) for automatic IO tensor
data type detection.
Tools: Converters: Added a new optimization sequence to squash BatchNorm into FullyConnected.
HTP: Fixed issue with ElementwiseSin.
Tools: Fix the converter issue for GRU op.
SNPE AIP: Fixed perf profile setting for multithread scenario.
Core: Added new C API Snpe_SNPE_GetInputDimensionsOfFirstTensor() to facilitate retrieving Input dimension without Input tensor name.
Tools: ONNX converter: Added support for NonMaxSuppression op.
Tools: snpe-dlc-graph-prepare fix benign error message during offline prepare for v68 based SoC s (–htp_socs sm8350, sm7350 etc)
Tools: Converters: Onnx: Added support for Sign.
HTP: solve vtcm overflow issue happened when change data layout: from uint8 flat to uint8 crouton in tcm.
Tool:ONNX Converter: Fixed TransposeOp input axis format NT issue.
Tools: Converters: Fixed a bug in the optimization that merges Matmul + Reshape + Add to FC Op that would incorrectly insert the
FC Op before the Constant Bias Op.
Tools: onnx converter: support conv’s input data is Initializer.
DSP: Improve execute time of dynamic depthwise convolution with uint8 weights.
Core: Added error handling based on buffer data size in execute().
Tools: Added new options for snpe-net-run and snpe-parallel-run –use_native_input_files and –use_native_output_files to support
inputs in their native format as opposed to default float32 format.
Tools: Added new flag –userbuffer_auto in snpe-parallel-run to automatically detect and use the right buffer type based on tensor
data type in the model.
Documentation: SNPE1 to SNPE2 migration guide is added.
Tools: snpe-throughput-net-run - capturing the status of lost thread in the result summary.
Tools: snpe-dlc-quant: Fixed abnormal DLC size increase when axis quantization is used.
Tools: Tensorflow Converter: Fixed issues with per-channel quantization of weights: set is_symmetric = true by default, added param
“axis” and “is_symmetric” into weight encodings info.
HTP: solve vtcm overflow for transposeconv2d layer whose groups > 1, in depth= out depth, padding =0 and groups != in depth.
Tools: New tools - snpe-architecture-checker & snpe-quantization-checker are added.
snpe-net-run: Added new flag –userbuffer_auto to automatically detect and use the right buffer type based on tensor data type in the
model
SNPE Core: Enabled logging in Op validation.
SDK: Added missing documentation files for snpe-quantization-checker.
GPU Runtime: Improved network initialization time in subsequent runs on GPU when using setInitCacheMode.
Tools: ONNX Converter: fixed issue related to missing Cast operation.
Tools: Missing files for snpe-quantization-checker have been added to the SDK.
Tools: Fixed functional failure for snpe-architecture-checker.
Tools: Quantizer: Improve Error handling to remove ‘uncaught exception’ errors.
Tools: Fixed bug in snpe-dlc-quantize with option –axis_quant and –enable_htp when multiple socs are passed using –htp_socs.
GPU Runtime: Fixed validation errors for Concat op with large dimensions.
GPU Runtime: Improved accuracy in models having Concat op with large dimensions.
DSP Runtime: Bug fix in running HTP FP16 networks on non fp16 supported SoCs (like sm8350, sm7350)
GPU Runtime: Fixed verifier issue in Softmax2UdoPackage.
GPU Runtime: Improved network initialization time in subsequent runs on GPU when using netrun –storage_dir option.
Tools: Converters: Onnx: Added 5D tensor support for PoolMax3d.
Tools: GoogleNAS: Added support for utilizing the GoogleNAS service with SNPE hardware in the loop (HIL).
Tools: Quantizer: Added fix to use default activation bitwidth for static tensors instead of default parameter, except for static
tensor that are known to be parameters like convolution weights and bias
SNPE Core: Fix online dequantization of int4 axis quant dlc when ran on CPU/GPU.
SNPE Core: Fixed stability with concurrency use cases.
GPU Runtime: Fixed accuracy issues related to tensor memory optimization.
Tools: Quantizer: Fixed issue observed with int4 weight override support.
Core: Added userlogs ( –userlogs=warn) for Op validation failures for both offline and online prepare thereby making it easier to
track fallback.
Core: HTP Offline Cache Blob backward compatibility - Snpe Version check relaxed from SNPE-2.2.1 onwards.
Tool: Converters: Added DepthToSpace DCR/CRD pattern that matched reshape, transpose, reshape nodes.
Core: Fixed dlc-info to display per axis encoding information for axis_quant dlcs.
Tools: Quantizer: Added support for CLE quantization algorithm.
Core: snpe-dlc-graph-prepare bug fixes-bound –vtcm_override to the maximum VTCM for each SOC chipset requested instead of
a hardcoded
8MB. Limit to 1 cache record per SoC in the dlc
Core: Fix runtime de-quantization of weights and biases for axis quantized dlcs when executing in floating point backends (CPU/GPU).
Tool: Onnx Converter: Added axis tracking edge case fixes for Concat and MatMul operations.
Core: Added protection for loading malicious dlc file.
Converter: change the output dims as the node output axis format order.
Core: SNPE::Execute() API updated to validate input/output buffer map size before proceeding.|
Core: snape-dlc-quantize - fixed error in handling % in input list.
Tools: snpe-dlc-quantize miscellaneous bug fixes with –output_dlc option.
Tools: Converter: Resolved bug that caused failure to override weight encodings for Conv Ops.
Tools: Quantizer: Fixed issues related to axis quantization when the model contains TransposeConv2D.
Tools: Converter: Fixed bug in elementwise min and max sequence optimization.
Core: Re-Enable LSTM support for CPU, GPU (HTP will follow).
DSP Runtime: Implemented rules for coexistence and selection of multiple cache records for HTP based on VTCM size, DSP Architecture,
and SoC
Tools: Converter: Added optimization to fold scalar min + max to ReluMinMax.
Tools: Quantizer: Re-enabled support for overriding activation quantization (overriding weight quantization will follow).
Tools: Quantizer: Fixed missing skip_quantization command line argument in the new snpe-dlc-quantize shell script.
Tools: Quantizer: Fixed axis quantization failure.
Tools: Quantizer: Fixed issues with quantizing inputs to the gather op.
Tools: Converter & Quantizer: Update converter and quantizer to persist the command used in the DLC that can be displayed in
snpe-dlc-info.
Tools: DLC Viewer: Fixed to support the new DLC Format.
C API: Added new Snpe_DlContainer_OpenBuffer() to support loading a model from a buffer.
Docs: Fixed C API documentation related to creating a User Buffer.
Core: Change default option for SNPEFactory::isRuntimeAvailable() to UNSIGNEDPD_CHECK from NORMAL_CHECK. Note that this also affects
the C API.
Core: Re-enable NV21 input processing support.
Added support for SM8550.
Added new C API. This API is in addition to the C++ API. Note that the APIs cannot be mixed, all code should use one or the other.
Updated the DLC internal format to use ‘ops’ rather than ‘layers’ to more closely align the graph definition with QNN.