Releases: ARM-software/armnn
Release list
Release 26.07
Arm NN SDK
Features & Improvements
- Add CpuAcc SME/SVE shape policy
- Update Compute Library pin/version to v53.2.0
Bug Fixes
- Adjust Android™ binary page size to 16 KB
ABI/API Changes:
There are no API/ABI changes.
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
| CMake | 3.22.1 |
| Tensorflow | 2.19.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 24.3.25 |
| Protobuf | 3.19.4 |
| Android NDK | r26b |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.30 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.3 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 26.01
Arm NN SDK
Features & Improvements
- Updated Compute Library pin/version to v52.7.0.
Bug Fixes
- Fixed error handling in build_android_ndk_guide.sh
- Fetch correct reference for Compute Library in script/get_compute_library.sh
ABI/API Changes:
There are no API/ABI changes.
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
| CMake | 3.22.1 |
| Tensorflow | 2.19.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 24.3.25 |
| Protobuf | 3.19.4 |
| Android NDK | r26b |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.30 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.3 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 25.11
Arm NN SDK
Features & Improvements:
- Updated ABI version for v25.11 release.
- Integrated ArmNN Parser with LiteRT FlatBuffer schema.
- Added validation of buffer pointers for safer memory operations in the parser.
- Added PRELU operator support and BOOL type for GREATER_EQUAL.
- Added bias support for TRANSPOSE_CONV operator in delegates.
- Updated TensorFlow dependencies and build scripts for TensorFlow 2.19 migration.
- Added profiling headers and tracepoint setup.
- Added QNX platform port.
- Improved compatibility for Bare Metal targets and NEReorderLayer backward compatibility.
- Added support for building against libtensorflow-lite.so.
- Updated protobuf dependency in build-tools.
- Added unit tests for Rescale, DepthwiseConv2d, Shift/Multiplier operators.
- Refactored reorder kernel and layer.
Bug Fixes:
- Fixed missing includes to resolve GCC 15 build errors.
- Fixed GCC compilation issues on armv7.
- Fixed heap buffer overflow in ArmNN TFLite parser (SpaceToBatchND input type validation).
- Fixed range validation in Shift operations (added Op_Minimum).
- Fixed over-eager operand reads in a64_hgemm_8x24.
- Fixed CpuGemmAssembly bf16 tests.
- Fixed SME softmax FP32 kernel for large inputs.
- Fixed INT8 Softmax reserved register issue in SME2 kernels.
- Fixed SUB, MUL and ADD operators output to be closer to TFLite reference output
Documentation:
- Updated documentation to reflect GitHub migration.
- Updated README to note legacy project status.
- Updated copyright years in contribution guidelines.
ABI/API Changes
The following front-end API changes have occurred during the implementation of 25.11, which users should be aware of before upgrading.
Due to these, changes we have bumped our ARMNN_VERSION to 36.0.0, following Semantic Versioning guidelines.
markdown
| Feature | SHA | Gerrit Review | Resultant ABI/API Changes |
|---|---|---|---|
| Subgraph in Opaque Delegate | ac9607f | https://review.mlplatform.org/c/ml/armnn/+/9389 | ArmnnSubgraph::VisitNode method has been updated. tfLiteRegistration argument updated from TfLiteRegistrationExternal* type to TfLiteOperator* |
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
| CMake | 3.22.1 |
| Tensorflow | 2.19.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 24.3.25 |
| Protobuf | 3.19.4 |
| Android NDK | r26b |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.30 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.3 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 25.02
Arm NN SDK
Bug Fixes:
- TosaRef mapping bug fixes for Operators LeakyRelu, Quantize, Stack, Dequantize
- TosaRef refactorisation and bug fixes for a range of different Operators.
- TosaRef Strided Slice Error.
- TfLite Turbo Model Detection Fix.
- Added a check to ensure activation is within the current subgraph before fusion in Neon and CL backends.
Removed Features:
- Removed Async API.
- Removed PyArmNN.
- Removed Shim and support library.
- Removed RangeTracker class.
ABI/API Changes:
The following front-end API changes have occurred during the implementation of 25.02, which users should be aware of before upgrading.
Due to these, changes we have bumped our ARMNN_VERSION to 35.0.0, following Semantic Versioning guidelines.
|
Feature |
SHA |
Gerrit Review |
Resultant ABI/API Changes |
|---|---|---|---|
| Remove Async API | 4483b24 | https://review.mlplatform.org/c/ml/armnn/+/12979 |
The IWorkingMemHandle class has been removed. The IAsyncExecutionCallback class has been removed. INetworkProperties structure has had the following fields removed:
4 functions have been removed from the IRuntime class:
The Threadpool class along with its functions have been removed:
|
Build Dependencies
Tools |
Supported Version |
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
| CMake |
3.22.1 |
| Tensorflow |
2.15.0 |
| Onnx |
1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf |
3.12.0 |
|
Android NDK |
r26b |
| cxxopts |
3.1.1 |
| doctest | 2.4.6 |
| fmt | 7.0.1 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.0 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 24.11
Arm NN SDK
New Features:
- Implemented "All or Nothing" logic in assign backends.
- Added Signed64 support for Constant and Tile workloads.
- Added Int8 and Uint8 support for LogSoftMax to run on CpuAcc and GpuAcc backends.
- Added automatic backend selection of GPU to ExecuteNetwork.
- Added TfLite Turbo Model recognition and enable Turbo Mode.
TosaCommon & TosaRef:
- Added "Convolution3d" support.
- Added support for activation functions "Sigmoid" and "TanH".
- Added support for activation function "HardSwish".
- Added "StridedSlice" support.
- Added "ElementwiseBinary:SqDiff" support.
- Added "Stack" support.
- Added "Dequantize" support.
- Added "DepthToSpace" support.
- Added "Gather" support.
Bug Fixes:
- Fixed the ReduceProdOp Int8 CpuAcc and GpuAcc backend failures in the delegate test suite.
- Fixed Mean operator in TosaCommon and TosaRef.
- Fixed ExecuteNetwork logic error when using -N parameter.
- Fixed convolution delegate test suite failures.
- Fixed UnpackOpTest Acc backend failures in the delegate test suite.
- Fixed layer name error on classic delegate DepthwiseConvolution2d.
- Fixed GatherNd Acc backend failures in the delegate test suite.
- Fixed FloorDiv Acc backend failures in the delegate test suite.
- StridedSliceOp Acc backend failures in the delegate test suite.
- Fixed Pad tests incorrectly reporting unsupported in the delegate test suite.
Removed Features:
- Removed the Arm NN Converter
- Removed the GpuFsa backend.
Other Changes:
- Updated ExecuteNetwork comparison options to return a result value.
- Added Debugging macros to LoadedNetwork.
ABI/API Changes:
The following front-end API changes have occurred during the implementation of 24.11, which users should be aware of before upgrading.
Due to these, changes we have bumped our ARMNN_VERSION to 34.0.0, following Semantic Versioning guidelines.
| Feature | SHA | Gerrit Review | Resultant ABI/API Changes |
|---|---|---|---|
| Make ExecuteNetwork handle automatic selection of GPU backends. | b670f11 | https://review.mlplatform.org/c/ml/armnn/+/12662 | The size of the BackendRegistry class has changed from 192 bytes to 216 bytes. Field m_MappedGpuBackends has been added. |
| FixFloorDiv Acc DTS Failures. | 88a149f | https://review.mlplatform.org/c/ml/armnn/+/12411 | BinaryOperatory enum has a new member FloorDiv. The member FloorDiv with a value of 8 has been added. |
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
| CMake | 3.22.1 |
| Tensorflow | 2.15.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf | 3.12.0 |
| Android NDK | r26b |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 7.0.1 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.0 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 24.08
Summary
New Features
- Softmax implemented in TosaCommon and TosaRef.
- MEAN implemented in TosaCommon and TosaRef.
- REDUCE_SUM implemented in TosaCommon and TosaRef.
- Activation:Gelu implemented in TosaRef.
- ElementwiseUnary:Log implemented in TosaRef.
- Pad implemented in TosaCommon and TosaRef.
- ElementwiseUnary:Exp implemented in TosaRef.
- BatchMatMul implemented in TosaCommon and TosaRef.
- FullyConnected implemented in TosaCommon and TosaRef.
- Activation:BoundedReLu implemented in TosaCommon and TosaRef.
- Activation:ReLu implemented in TosaCommon and TosaRef.
- DepthwiseConvolution2d Implemented in TosaCommon and TosaRef.
- Implemented quantized ElementwiseBinary Add, Max, Mul and Sub support in TosaCommon and TosaRef.
Bug Fixes
- Fix floating point exception in PerAxisIterator.
- Fix TFLite Parser & Opaque Delegate ExecuteNetwork incorrectly unloading runtime.
- Fix StridedSliceOp out of bounds errors.
- Fix not specified dimensionality errors in classic and opaque delegates.
- Fix warnings when building ArmNN Delegate with GCC-14.1.0.
- Fix ReshapeOp DTS Test Failures.
- Fix ConstFloat DTS Test Failures.
- Fix Broadcast DTS test failures.
- Fix BatchMatMul DTS test failures.
Other Changes
- Update to Arm NN documentation for 24.08 release.
- Review and update documentation for the 24.08 release.
- Android support for evaluate_network.sh.
- Added Gemmlowp for fixed point arithmetic on small values.
- Moved Arm NN repository to use CMake 3.22.
- Added Numpy Support to Execute Network.
ABI/API Changes
No ABI breaking change occurred in ArmNN Core (libarmnn.so) and so the Major version has not changed, only a bump in minor version (33.1.0 → 33.2.0).
No API breaking back-end changes have occurred during the implementation of 24.08.
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
| Cmake | 3.22.1 |
| Tensorflow | 2.15.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf | 3.12.0 |
| Android NDK | r26b |
| mapbox/variant | 1.2.0 |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 7.0.1 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.1.0 |
| stb | 2.16 |
| Gemmlowp | 16e8662c34917be0065110bfcd9cc27d30f52fdf |
Release 24.05
Summary
New Features
- ScatterNd Operator Implementation.
- Added support to delegate and opaque delegate.
- Added support to Serializer and Deserializer.
- Added support to TFLite parser.
- End to End tests added.
- Added support for CpuRef and GpuAcc.
- Adding options to serialize networks in ExecuteNetwork.
- Add a build option to enable the OpenMP scheduler in ACL and made it the default scheduler for ACL builds.
- Add Boolean data type to Debug layer support.
- Update TOSA Common and TosaRef to use TOSA v0.80.
- Update build-tool README to include macOS support.
Bug Fixes
- ExecuteNetwork fix for abort after inference.
- Fix for failing CTS Float16 tests.
- Enable serialize-to-armnn only when ARMNN_SERIALIZER is on.
- TosaCommon backend
- In TosaCommon, modify the way the unique names for the inputs are generated.
- CreateRescaleTosaOperator() modified.
- Move ComputeSplitAxis() to backendsCommon/WorkloadUtils.
- For LeakyRelu, add TosaRefEndToEndTests and enable FP16 in TOSA mapping.
- Fix quantized Conv2d TOSA mapping.
- Broadcast handling for Comparison layer is inconsistent.
- Remove limitations on zero scale value in quantization.
- Fix failing fsrcnn test.
- Fix broken link in the delegate README.
- Fix runtime memory handling in delegate and Arm NN executor.
- Remove use of std::clamp.
- Syntax change to allow building on older compilers.
- Assert audit and removal.
Other Changes
- Deprecation notices for items to be removed in 24.08 release.
- Review and update documentation for operators added in 24.05 release.
- Update to Arm NN documentation for 24.05 release.
- Update python pillow version.
- Remove reference to 22.08 release in docker README.
- Minor change to the printouts in ExecuteNetwork.
- Enable build of execute network in build tool.
- Arm NN build tool script update for delegate header and so files.
ABI/API Changes
No API breaking front-end changes have occurred during the implementation of 24.05.
No API breaking back-end changes have occurred during the implementation of 24.05.
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
| Cmake | 3.19.0 (Ubuntu) and 3.19.0 (Debian) |
| Tensorflow | 2.15.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf | 3.12.0 |
| Android NDK | r26b |
| mapbox/variant | 1.2.0 |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.3.0 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.2.0 |
| stb | 2.16 |
| xxd | 1.10 |
Release 24.02
Summary
New Features
- ArmNN to TOSA backend:
- LeakyRelu Activation support added
- Quantize support added
- Maximum support added
- Split support added
- Resize Nearest Neighbour support added
- GpuFsa Backend (Dynamic Fusion)
- RESIZE/SCALE support added
- CAST support added
- POOL2d support added
- SUB support added
- ADD support added
- DEPTHWISE CONVOLUTION 2D support added
- CONVOLUTION 2D support added
- Updated to Android NDK r26b.
- Updated to TensorFlow 2.15.
- Added optimization to remove reshape operators where possible to CL, Neon and Ref backends.
Bug Fixes
- Removed implicit sign conversion which could cause compile errors.
- Fixed memory leak which only happens during profiling and reference Resize workload's align corners is true.
- Fixed build failures on C++ 14 compilers.
- Fixed build tool errors when building for Android target.
Other Changes
- Delegate Unit Tests are now only built for the backends which are being built.
- Increased end to end testing for two layer and three layer MaxPool2d.
- In ExecuteNetwork added support to serialize to dot graph for the Arm NN Delegates.
ABI/API Changes
No API breaking front-end changes have occurred during the implementation of 24.02.
No API breaking back-end changes have occurred during the implementation of 24.02.
Note: The minimum API level supported by Arm NN AAR file is 27.
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
| Cmake | 3.19.0 (Ubuntu) and 3.19.0 (Debian) |
| Tensorflow | 2.15.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf | 3.12.0 |
| Android NDK | r26b |
| mapbox/variant | 1.2.0 |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.3.0 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.2.0 |
| stb | 2.16 |
| xxd | 1.10 |
Release 23.11
Summary
New Features
- Add support for BROADCAST_TO layer in CpuRef, and remove it when it is followed by ElementWise layer.
- Add an optimization that fuses Add+Mul+Add+(Optional Relu) layers in CpuAcc.
- Add support for GELU activation layer in CpuRef, CpuAcc, GpuAcc.
- Upgrade Arm NN to Tensorflow 2.14
- Add Signed64 support
- Add support for Signed64 data type in Cast layer
- Add a script that evaluates the performance of a network
- Add ReverseV2 CL and Neon Workloads
TfLite Parser
- Add support for BROADCAST_TO layer.
- Add support for GELU activation layer.
- Updating TfLite parser to ignore VALIDATION: subgraphs
Arm NN Serializer/Deserializer:
- Add support for GELU activation layer.
Bug Fixes
- Fix UnidirectionalSequenceLstm
- Fix weights checking when converting in Support Library
- Fix unsafe Usages of Memcpy in Armnn
- Fix for -Wno-sign-conversion in profiling test in gcc9
- Fix ElementwiseBinary missing from NeonBackend activation fusion optimization
- Fix Reshape and concat invalid results
- Remove unnecessary Prelu restriction in quantization
- Remove unnecessary Square Difference restriction in quantization
Other Changes
- Update the Arm NN Execute Network app --help
- Introduce clang-format scripts to ArmNN
- Remove profiling detail for ConstTensorAsInputs Layers
- Install missing profiling headers
- Remove ASSERTs from deserializer code
- Remove ASSERTs from armnnUtils code
- Remove ASSERTs from shim code
- Update documentation to correct C++ version: C++ 17
- Removing explicit block on non constant bias in NEON CONV2D, allowing Arm Compute Library to handle this.
ABI/API Changes
The following front-end API changes have occurred during the implementation of 23.11 that users should be aware of before upgrading. Due to these changes we have bumped our ARMNN_VERSION to 33.1.0 and our OPAQUE_DELEGATE_VERSION to 2.0.0, following Semantic Versioning guidelines.
| Feature | SHA | Gerrit Review | Resultant ABI/API changes |
|---|---|---|---|
| Add ArmNNSettings to Opaque Delegate | 3e4b608 | https://review.mlplatform.org/c/ml/armnn/+/10493 | 2 changes have occurred:
|
No API breaking back-end changes have occurred during the implementation of 23.11
TfLite Delegate
- Add support for BROADCAST_TO layer to Classic and opaque delegate.
- Add support for GELU activation layer to classic and opaque delegate.
- Add ArmNNSettings parser function for Opaque Delegate.
- Improve logging in the delegate
Bug Fixes
- Reduce Sum uint8 failing. The fix was to only treat Reduce Prod Uint8 as a special case, as opposite of treating all reduce operations in uint8 as special case (kTfLiteAffineQuantization → kTfLiteNoQuantization)
- Fix Issue with delegate supporting FP16 models
- Delegate Test Suite: Fix reshape floating point exception
- Delegate Test Suite: Fix default scale/offset issue
- Delegate Test Suite: Fix ElementWise isnan assert
- Delegate Test Suite: Fix Unspecified dimension while using ShapeInferenceMethod::ValidateOnly
- Delegate Test Suite: Fix QuantizePerChannel tests
- Delegate Test Suite: Fix Gather and GatherNd Tests in CpuRef
PyArmNN
- Update requests version in PyArm NN
- Bump Pillow version from 9.3.0 to 10.0.1
Build Dependencies
| Tools | Supported Version |
|---|---|
| Git | 2.17.1 or later |
| SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
| Cmake | 3.19.0 (Ubuntu) and 3.19.0 (Debian) |
| Tensorflow | 2.14.0 |
| Onnx | 1.6.0 |
| Flatbuffer | 23.5.26 |
| Protobuf | 3.12.0 |
| Android NDK | r25 |
| mapbox/variant | 1.2.0 |
| cxxopts | 3.1.1 |
| doctest | 2.4.6 |
| fmt | 8.3.0 |
| ghc | 1.3.2 |
| half | 1.12.0 |
| mapbox/variant | 1.2.0 |
| stb | 2.16 |
| xxd | 1.10 |
Release 23.08
Summary
New Features
- Added support for
tileoperator inCpuRef,CpuAcc,GpuAcc. - Added support for
reverse_v2operator inCpuRef. - Added
powandsquared_differenceasElementWiseBinarylayers inCpuRef,CpuAcc, andGpuAcc. - Added
squared_difference,powerandceiltoTypeUtils.hpp. - Enabled dynamic / non-constant bias for:
- Fully-Connected layers in
CpuAccandGpuAcc - 3-D Convolutional layers in
CpuAccandGpuAcc - Depthwise Convolutional layers in
GpuAcc
- Fully-Connected layers in
- Added
DataTypeto.dotfiles for constant layers. - Added BinaryElementwiseOperation to .dot files.
- Added a
FileComparisonExecutortoExecuteNetwork. - Added an optional
TensorInfotoInputSlot. - Added 3D tensors to
batch_to_spaceandspace_to_batchforCpuAccandGpuAcc. - Added check for half-precision floating-point infinity values and backend support (FP16).
- Added backend optimisations to remove
reshapelayers where possible. - Added data layout to tensors in
NeonStridedSliceWorkload. - Added names to workloads.
- Enabled
sliceend-to-end tests in all backends andSigned32inCpuRef. - Added
axistoViewsDescriptor. - Refactored ElementBinaryOps to use ElementBinaryLayer.
TfLite Parser
- Added
reverse_v2support to TFLite Parser. - Added
tileto TFLite Parser. - Added
squareasmulin the TFLite Parser. - Check for
options != nullbefore adding fused activation in TFLite Parser. - Fixed segfault with some models in the TFLite Parser.
Arm NN Serializer/Deserializer:
- Added
tileto Serialiser/Deserialiser. - Added
reverse_v2to Serialiser/Deserialiser.
Support library
- Added
reverse_v2to Support Library. - Added
tileto Support Library. - Added cache-size check to Support Library.
Bug Fixes
- Fixed incorrect validation of
unidirectional_sequence_lstmonCLandNeon. - Fixed issue with
ExecuteNetworkwhen running with TFLite Executor. - Replaced asserts with exceptions in
Gatherreference workload. - Introduced fix to explicitly state the correct header to be included (following prior deprecation warning).
- Fixed XML parsing error in Arm NN Doxygen.
- Fixed
-Werror=unused-resulterror. - Introduced fix for
ExecuteNetworkwhere--output-network-details-onlywas not working with-T delegateflag. - Introduced fix for duplicate definitions in cross-compilation build.
- Fixed incorrect
Concatpermutation parameters in Support Library. - Removed unnecessary warnings for certain models.
- Introduced fix to allow
SplitterLayerto use overriddenTensorInfoscorrectly. - Introduced fix for some cases where the use of sub-tensors was causing an error.
- Fixed read memory access caused by missing
printfarguments. - Introduced fix for failing dynamic backend build.
- Fixed issue where the dimension's specificity didn't match the number of dimensions.
- Fixed ambiguous method name in BackendHelper.
- Introduced fix for segmentation fault when an input was directly connected to an output.
- Fixed uninitialised variable error found during static analysis.
- Fixed fault in
ExecuteNetworkwhen a model file was passed without an extension. - Fixed GitHub issue where search bar was not working in Doxygen documentation.
Other Changes
- Replaced use of
std::filesystemwithghc::filesystem. - Refactored
ConnectedToSplitterWithMoreThan4Dimsfunction to a more generally usefulConnectedToLayerTypefunction. - Customised
Doxygenoutput. - Removal of deprecated code due to be removed in 23.08 or earlier:
- INetworkProperties
- SubgraphView
- ILayerSupport
- WorkloadFactory
- Updated documentation with new operators in 23.08.
- Audited the use of
armnn_assert.
Known Issues
- Intermittent issue on Dma Buf memory import on GPU. This is fix in Mali Driver r30p0.
- There might be performance regressions against v20.08 in Inception v3 using int8 data types on Arm Mali-G77 GPUs. Currently under investigation.
ABI/API Changes
The following front-end API changes have occurred during the implementation of 23.08 that users should be aware of before upgrading. Due to these changes we have bumped our ARMNN_VERSION to 33.0.0, following Semantic Versioning guidelines.
| Feature | SHA | Gerrit Review | Resultant ABI/API changes |
|---|---|---|---|
| Removal of Reshape | 4cc341c | https://review.mlplatform.org/c/ml/armnn/+/9885 | 4 additional virtual methods added to class IInputSlot: SetTensorInfo ( TensorInfo ), GetTensorInfo ( ) const, IsTensorInfoSet ( ) const, IsTensorInfoOverridden ( ) const |
| Front end and reference implementation for TILE | 79a06a5 | https://review.mlplatform.org/c/ml/armnn/+/9920 | LayerType enum has had the LastLayer member value changed from 72 to 74 The member Tile with value 74 has been added |
| Remove deprecated code | 09e4d05 | https://review.mlplatform.org/c/ml/armnn/+/9266 | 2 functions have been removed from the BatchMatMulDescriptor class:
|
| Remove deprecated code (INetworkProperties) | b179382 | https://review.mlplatform.org/c/ml/armnn/+/10001 | INetworkProperties structure has had the following fields removed: m_ExportEnabled m_ImportEnabled |
| Remove deprecated code (ILayerSupport) | 6627703 | https://review.mlplatform.org/c/ml/armnn/+/10005 | In ArmNN individual virtual IsXXXSupported() functions in the ILayerSupport class have been removed. This functionality has been replaced by a more ABI compliant model whereby an IsLayerSupported() function now accepts a LayerType argument. In ArmNNTestUtils, removal of 4 virtual methods from class MockLayerSupport:
|
| Remove deprecated code (WorkloadFactory) | 7894ef9 | https://review.mlplatform.org/c/ml/armnn/+/10006 | In ArmNNTestUtils the MockWorkloadFactory class has had the following virtual method removed: CreateInput ( InputQueueDescriptor const&, struct WorkloadInfo const& ) const |
| Added Axis to ViewsDescriptor | fca5916 | https://review.mlplatform.org/c/ml/armnn/+/10073 | The size of thte ViewsDescriptor structure has changed from 48 bytes to 56 bytes Field m_IsAxisSet has been added |
The following back-end API changes have occurred during the implementation of 23.08 that users should be aware of before upgrading.
| Feature | SHA | Gerrit Review | Resultant ABI/API changes |
|---|---|---|---|
| Add names to workloads | 7cbe781 | https://review.mlplatform.org/c/ml/armnn/+/9983 | Pure virtual method GetName ( ) const has been added to IWorkload class. Size of CopyMemGenericWorkload class has been changed from 152 bytes to 184 bytes. |
| Remove deprecated code (SubgraphView) | 0f3e9a0 | https://review.mlplatform.org/c/ml/armnn/+/10009 | Removed the following methods from SubgraphView: GetInputSlot, GetIputSlots, GetLayers, GetOutputSlot, GetOutputtSlots. Resulted in a change to return types for the following methods in SubgraphView as follows: begin() returns SubgraphView::IConnectableLayerIterator, begin() const returns SubgraphView::ConstIConnectableIterator, cbegin() const returns, SubgraphView::ConstIConnectableIterator, cend() const returns SubgraphView::ConstIConnectableIterator , end () returns SubgraphView::IConnectableLayerIterator, end() const returns SubgraphView::ConstIConnectableIterator |
| Remove deprecated code (ILayerSupport) | a504834 | https://review.mlplatform.org/c/ml/armnn/+/10071 | Made IWorkloadFactory::CreateWorkload a pure virtual function to force client to write its own implementation. |
| Fix coverity error on variable initialize | b9b9792 | https://review.mlplatform.org/c/ml/armnn/+/10075 | Adjusted sequence of variable initialization in struct WorkloadInfo: m_Name m_WeightsTensorInfo m_BiasTensorInfo m_ConvolutionMethod |
TfLite Delegate
- Extended support for 3D tensors (`bat...