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 |