Summary
New Features
- ArmNN to TOSA backend:
- Added TOSA Mappings backbone structure with support for Addition operator (Float32).
- Implemented simple TOSA Reference Backend skeleton.
- Implemented TosaRefBackend::OptimizeSubgraphView.
- Integrated TOSA Serialization Library into Arm NN.
- Integrated TOSA Reference Model into Armn NN.
- BATCH_MATMUL:
- Added adjoint and transpose parameters to BATCH_MATMUL layer and CpuRef workload.
- Added support for BATCH_MATMUL to Arm NN Support Library.
- Added support for BATCH_MATMUL FP32 to CpuAcc.
- Added BATCH_MATMUL end to end tests.
- Updated to Android NDK r25.
- Updated to TensorFlow 2.10 and Flatbuffers 2.0.6.
TfLite Parser
- Added BATCH_MATMUL to TFLite Parser.
- Fixed bug in TFLite Parser failing to prepare model due to unspecified size buffer data for SLICE operator.
- In TFLite Parser we observed that in BATCH_MATMUL layer, when adjoint parameter was true, the mathematical calculation was transpose. So we linked adjoint from TFLite to transpose in ArmNN.
- Added support for RESHAPE when output 'shape_signature' parameter contains a value of -1 in TFLite Parser.
ArmNN Serializer/Deserializer
- Added support for BATCH_MATMUL to Serializer/Deserializer.
Bug Fixes
- Fixed bug in SubgraphView::SubstituteSubgraph where IOutputSlots were incorrectly overridden.
- Fixed bug in ExecuteNetwork when iterations and input files are not matching.
- Updated SubgraphView Selector to give deterministic results.
- Fixed bug in ArmNNExecutor where errors from LoadNetwork were being ignored in.
- Fixed bug with debug mode not working correctly with Constant Tensors as Inputs.
- Fixed incorrect kernel measurement in profiling output.
- Fixed ExecuteNetwork for multiple outputs.
- Make the AllowExpandedDims option work.
- Fixed output format issue for int8 when using -w in ExecuteNetwork.
Other Changes
- Added runtime options to Doxygen.
- Added message deprecating the use of master branch. main branch is now used.
- Removed deprecated code due to be removed in 22.08 as we cold not do this in 22.08.
- Removed deprecated code due to be removed in 22.11.
- Delayed the removal of deprecated weights and bias by one release.
- Generalized get_compute_library.sh usage.
- Use ARMNN_VERSION for Support Library version String.
- Removed aarch32 build from build-tool.
- Forward declare ILocalPacketHandlerSharedPtr in IRuntime.hpp
- Use stricter file extension check in CreateParser.
Note: Following the upgrades to Tensorflow 2.10 and Flatbuffers 2.0.6 a compiler that supports C++17 is now required. This will prevent compilation on some older operating systems, e.g. Debian 9.
ABI/API Changes
The following front-end API changes have occurred during the implementation of 22.11 that users should be aware of before upgrading.
.
Feature | SHA | Gerrit Review | Resultant ABI/API changes | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Remove deprecated code 22.08 | 48f9d5d | https://review.mlplatform.org/c/ml/armnn/+/8167 | Removed Symbols: INetwork::AddConvolution2dLayer ( struct Convolution2dDescriptor const& convolution2dDescriptor, ConstTensor const& weights, Optionalconst& biases, char const* name ). INetwork::AddDepthwiseConvolution2dLayer ( struct DepthwiseConvolution2dDescriptor const& convolution2dDescriptor, ConstTensor const& weights, Optionalconst& biases, char const* name ) | ||||||||
Implement simple TOSA Reference Backend skeleton | ae8a6f5 | https://review.mlplatform.org/c/ml/armnn/+/8082 | In class MockWorkloadFactory the following has changed: Fix AllowExpandedDims option
| 16c76d5
| https://review.mlplatform.org/c/ml/armnn/+/8419
| Added Symbols: | Add functionality to print output tensors to file
| 7bbf565
| https://review.mlplatform.org/c/ml/armnn/+/8421
| struct OptimizerOptions: Field m_DebugToFile has been added at the middle position of this structural type. Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.
| |
The following back-end API changes have occurred during the implementation of 22.11 that users should be aware of before upgrading.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Implement simple TOSA Reference Backend skeleton | ae8a6f5 | https://review.mlplatform.org/c/ml/armnn/+/8082 | ILayerSupport.hpp Changed pure virtual function IsChannelShuffleSupported to virtual function.WorkloadFactory.hpp.The relative position of virtual function CreateInput(const InputQueueDescriptor& descriptor, const WorkloadInfo& info) const has been moved.The layout of v-table has been changed. Call of these virtual methods may result in crash or incorrect behavior of applications. |
Fix AllowExpandedDims option | 16c76d5 | https://review.mlplatform.org/c/ml/armnn/+/8419 | const has been added for the constructor OptimizationViews(const NetworkOptions& networkOptions = {}) : m_INetwork(INetwork::Create(networkOptions)) As a result the layout of v-table has been changed. Calls of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
Remove deprecated code 22.08 | d1628bf | https://review.mlplatform.org/c/ml/armnn/+/8167 | Removed in WorkloadData.hpp ResizeBilinearQueueDescriptor has been removed. |
TfLite Delegate
New features
- Added a no fallback mode to the TfLite Delegate. This should only be used for testing purposes.
Build Dependencies
Tools | Supported Version |
---|---|
Git | 2.17.1 or later |
SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
Cmake | 3.5.1 (Ubuntu) and 3.7.2 (Debian) |
Tensorflow | 2.10.0 |
Onnx | 1.6.0 |
Flatbuffer | 2.0.6 |
Protobuf | 3.12.0 |
Android NDK | r25 |
mapbox/variant | 1.2.0 |
cxxopts | SHA 12e496da3d486b87fa9df43edea65232ed852510 |
doctest | 2.4.6 |
fmt | 7.0.1 |
ghc | 1.3.2 |
half | 1.12.0 |
stb | 2.16 |
xxd | 1.10 |