Arm NN ML Software. The code here is a read-only mirror of https://review.mlplatform.org/admin/repos/ml/armnn
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.
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 |
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 | 3e4b60897bde2ad7ab5b730c7c5d727e41cc0eef | 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
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 |
tile
operator in CpuRef
, CpuAcc
, GpuAcc
.reverse_v2
operator in CpuRef
.pow
and squared_difference
as ElementWiseBinary
layers in CpuRef
, CpuAcc
, and GpuAcc
.squared_difference
, power
and ceil
to TypeUtils.hpp
.CpuAcc
and GpuAcc
CpuAcc
and GpuAcc
GpuAcc
DataType
to .dot
files for constant layers.FileComparisonExecutor
to ExecuteNetwork
.TensorInfo
to InputSlot
.batch_to_space
and space_to_batch
for CpuAcc
and GpuAcc
.reshape
layers where possible.NeonStridedSliceWorkload
.slice
end-to-end tests in all backends and Signed32
in CpuRef
.axis
to ViewsDescriptor
.reverse_v2
support to TFLite Parser.tile
to TFLite Parser.square
as mul
in the TFLite Parser.options != null
before adding fused activation in TFLite Parser.tile
to Serialiser/Deserialiser.reverse_v2
to Serialiser/Deserialiser.reverse_v2
to Support Library.tile
to Support Library.unidirectional_sequence_lstm
on CL
and Neon
.ExecuteNetwork
when running with TFLite Executor.Gather
reference workload.-Werror=unused-result
error.ExecuteNetwork
where --output-network-details-only
was not working with -T delegate
flag.Concat
permutation parameters in Support Library.SplitterLayer
to use overridden TensorInfos
correctly.printf
arguments.ExecuteNetwork
when a model file was passed without an extension.std::filesystem
with ghc::filesystem
.ConnectedToSplitterWithMoreThan4Dims
function to a more generally useful ConnectedToLayerType
function.Doxygen
output.armnn_assert
.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 | 4cc341cf8b5a6e6bb0543504cbbfde6fa11a2cdb | 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 | 79a06a59bafadf736ca53c4240e87f9bbb657260 | 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 | 09e4d05b85cc5ed419d282cdfc0b153f83c3fa39 | https://review.mlplatform.org/c/ml/armnn/+/9266 | 2 functions have been removed from the BatchMatMulDescriptor class:
|
Remove deprecated code (INetworkProperties) | b179382bcb4944d0137aa9799c3c56a2102ecda2 | https://review.mlplatform.org/c/ml/armnn/+/10001 | INetworkProperties structure has had the following fields removed: m_ExportEnabled m_ImportEnabled |
Remove deprecated code (ILayerSupport) | 66277031d8fb9588b5a9f3436b6a5f06173668a8 | 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) | 7894ef93ad568250afda12e1b67bc5bfa4c0b41c | 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 | fca5916e4e6a44cf11b47328659d4d7ee95ec231 | 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 | 7cbe78140a274cec783049051df7c7298b974f13 | 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) | 0f3e9a09a90664fc7c6479f1d7b312a4671d9659 | 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) | a5048344b5dc95cf305d7ffdc7390ef6df109f4c | 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 | b9b97922723772014236abb5d0d21c2f07adc578 | https://review.mlplatform.org/c/ml/armnn/+/10075 | Adjusted sequence of variable initialization in struct WorkloadInfo: m_Name m_WeightsTensorInfo m_BiasTensorInfo m_ConvolutionMethod |
batch_to_space
and space_to_batch
) in CpuRef
.layerNames
to classic and opaque delegate.reverse_v2
to classic and opaque delegates.tile
to delegate and opaque delegate.leaky_relu
to delegate.unidirectional_sequence_lstm
operator.ExpandDims
would not work where batch != 1
.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.12.0 |
Onnx | 1.6.0 |
Flatbuffer | 2.0.6 |
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 |
The following front-end API changes have occurred during the implementation of 23.05 that users should be aware of before upgrading. Note: No ABI breaking change occured in ArmNN Core (libarmnn.so) and so the Major version has not changed, only a bump in minor version (32.0.0 → 32.1.0).
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Implement Pimpl Idiom for Delegate Options | 1bae865fecf99f25cd2d58390e0cf08467a22b4f | https://review.mlplatform.org/c/ml/armnn/+/9358 | Size of class DelegateOptions has been changed from 488 bytes to 8 bytes. Layout of parameter's stack of several functions has been changed and therefore parameters at higher positions in the stack may be incorrectly initialized by applications. Size of class Delegate has been changed from 552 bytes to 72 bytes. Size of field m_Options has been changed from 488 bytes to 8 bytes. The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
Implement Pimpl Idiom for OptimizerOptions | c5ee0d7460f1e0ec7e2b0639e3e8962934c4df09 | https://review.mlplatform.org/c/ml/armnn/+/9369 | The following functions have been changed to now accept OptimizerOptionsOpaque argument instead of the unstable OptimizerOptions. Note: OptimizerOptionsOpaque will accept an OptimizerOptions to it's constructor so this is not an API break, only an ABI break. DelegateOptions::DelegateOptions [C1] ( enum armnn::Compute computeDevice, struct armnn::OptimizerOptions const& optimizerOptions,armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int,armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C2] ( enum armnn::Compute computeDevice, struct armnn::OptimizerOptions const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C1] ( std::vectorarmnn::BackendIdconst& backends, struct armnn::OptimizerOptions const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C2] ( std::vectorarmnn::BackendIdconst& backends, struct armnn::OptimizerOptions const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::SetOptimizerOptions ( struct armnn::OptimizerOptions const& optimizerOptions) Replacement functions: DelegateOptions::DelegateOptions [C1] ( enum armnn::Compute computeDevice, armnn::OptimizerOptionsOpaque const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel,armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C2] ( enum armnn::Compute computeDevice, armnn::OptimizerOptionsOpaque const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C1] ( std::vectorarmnn::BackendIdconst& backends, armnn::OptimizerOptionsOpaque const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::DelegateOptions [C2] ( std::vectorarmnn::BackendIdconst& backends, armnn::OptimizerOptionsOpaque const& optimizerOptions, armnn::Optionalarmnn::LogSeverityconst& logSeverityLevel, armnn::Optional<std::function<void(arm::pipe::ProfilingGuid, unsigned int, armnn::ITensorHandle*)> >const& func) DelegateOptions::SetOptimizerOptions ( armnn::OptimizerOptionsOpaque const& optimizerOptions ) |
Add constant version of IConnectableLayer::GetConstantTensorsByRef | aeec3ce5c8f936fb1220a9de8c84cceef88d4080 | https://review.mlplatform.org/c/ml/armnn/+/9196 | For class IConnectableLayer a pure virtual method GetConstantTensorsByRef ( ) const has been added. Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. Note: The pure virtual function was added at the end so will not result in an ABI break. However you should usually not add new virtual functions for any reason, even to leaf classes, if the class is intended to remain binary compatible on Windows. Doing so may reorder existing virtual functions and break binary compatibility. As we do not target support for Windows we are not going to consider this an ABI break for ArmNN Core. |
The following back-end API changes have occurred during the implementation of 23.05 that users should be aware of before upgrading.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Remove GetGraph and include of Graph.hpp header from public header | c1c5f2a519458f498934fa3f2074acc86f9f2f42 | https://review.mlplatform.org/c/ml/armnn/+/9351 | Size of class OptimizationViews has been changed from 360 bytes to 88 bytes. Field m_Graph has been removed from this type. The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
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.12.0 (SHA 6f692f73cb2043b4a0b0446539cd8c15b3dd9220) |
Onnx | 1.6.0 |
Flatbuffer | 2.0.6 |
Protobuf | 3.12.0 |
Android NDK | r25 |
mapbox/variant | 1.2.0 |
cxxopts | 3.1.1 (SHA eb787304d67ec22f7c3a184ee8b4c481d04357fd) |
doctest | 2.4.6 |
fmt | 7.0.1 |
ghc | 1.3.2 |
half | 1.12.0 |
mapbox/variant | 1.2.0 |
stb | 2.16 |
xxd | 1.10 |
The following front-end API changes have occurred during the implementation of 23.02 that users should be aware of before upgrading. .
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Optimize the calling of IsLayerSupported(). | 5383767a7a759c867235ab66bd71f88281e3bd06 | https://review.mlplatform.org/c/ml/armnn/+/8742 | In class IConnectableLayer: Pure virtual method SetBackendId (BackendId const&) has been added to this class. Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
When creating multiple Executors only the last one works fine | 5446a4d6d02002515fc58fafe33d74ae6dca5787 | https://review.mlplatform.org/c/ml/armnn/+/8997 | In class Delegate: Size of this type has been changed from 688 bytes to 680 bytes. The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. Type of field m_Runtime has been changed from armnn::IRuntimePtr (16 bytes) to armnn::IRuntime* (8 bytes). Size of the inclusive type has been changed |
Fix incorrect last layer in Types.hpp | 6701daf754efbadcf95c969eee1ba57320763d84 | https://review.mlplatform.org/c/ml/armnn/+/8944 | In enum LayerType: Value of member LastLayer has been changed from 66 to 71. Applications may execute a wrong branch of code in the library and therefore change the behavior. |
Change to MemorySource to keep it usable as a bit mask | 1cebf4978bf7723aaf0501de5fb80a6ef77066bf | https://review.mlplatform.org/c/ml/armnn/+/9053 | In enum MemorySource: Value of member Gralloc has been changed from 5 to 8. Applications may execute a wrong branch of code in the library and therefore change the behavior. |
The following back-end API changes have occurred during the implementation of 23.02 that users should be aware of before upgrading.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Remove deprecated code due to be removed in 23.02 | ec67a0f08e0f96a5aebf3cac65331c67f6649f5e | https://review.mlplatform.org/c/ml/armnn/+/8319 | In struct Convolution2dQueueDescriptor, DepthwiseConvolution2dQueueDescriptor and FullyConnectedQueueDescriptor: Field m_Bias has been removed from this type. Field m_Weight has been removed from this type. 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed. 3) The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. In class BaseWorkload<Convolution2dQueueDescriptor> , BaseWorkload<DepthwiseConvolution2dQueueDescriptor> and BaseWorkload<FullyConnectedQueueDescriptor>: 1) Size of the inclusive type has been changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. 3) The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
Return INetwork* not INetworkPtr& from OptimizationViews::GetINetwork() | 5b2145c92dabb68a0ec7ff65948f52d3fdcecf4a | https://review.mlplatform.org/c/ml/armnn/+/8828 | In OptimizationViews::GetNetwork(): Base type of return value has been changed from std::unique_ptr<INetwork, void()(INetwork)> to INetwork. Recompilation of a client program may be broken. |
Allow working copy SubgraphView to get Original Slots | 01f72693d39ed966ad06adadc8aac141bc395659 | https://review.mlplatform.org/c/ml/armnn/+/8918 | In class SubgraphView: Base class std::enable_shared_from_this<SubgraphView> has been added. 1) Size of the class has been changed from 160 bytes to 176 bytes. 2) The memory layout in this class has been shifted by 16 bytes. 3) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 4) The memory layout and size of subclasses will be changed. |
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 |
This is a patch release to fix an issue in the Arm Support Library encountered on Android phones where the OpenCL libraries could not be detected.
In this case the 22.11 release was detecting the issue and throwing an exception but the Tensorflow Lite runtime was expecting an error code so fallback to the runtime was failing.
In this release an error code is being returned when a misconfigured/missing OpenCL installation is encountered and the Tensorflow Lite runtime is taking over execution of the graph as expected.
This 22.11.01 release contains all the features of Arm NN 22.11 release. Please find release note for 22.11 here https://github.com/ARM-software/armnn/releases/tag/v22.11.
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.
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 | 48f9d5db00a245d08317130b10171337df0c1142 | https://review.mlplatform.org/c/ml/armnn/+/8167 | Removed Symbols: INetwork::AddConvolution2dLayer ( struct Convolution2dDescriptor const& convolution2dDescriptor, ConstTensor const& weights, Optional<ConstTensor>const& biases, char const* name ). INetwork::AddDepthwiseConvolution2dLayer ( struct DepthwiseConvolution2dDescriptor const& convolution2dDescriptor, ConstTensor const& weights, Optional<ConstTensor>const& biases, char const* name ) |
Implement simple TOSA Reference Backend skeleton | ae8a6f528151a9e88236a92877be1e99aea69658 | https://review.mlplatform.org/c/ml/armnn/+/8082 | In class MockWorkloadFactory the following has changed: |
Fix AllowExpandedDims option | 16c76d5db629d3ef7e4cb143bfa7e1d717e1d492 | https://review.mlplatform.org/c/ml/armnn/+/8419 | Added Symbols: |
Add functionality to print output tensors to file | 7bbf56598010041ea46c3fa9d32604db777ee26e | 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 | ae8a6f528151a9e88236a92877be1e99aea69658 | 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 | 16c76d5db629d3ef7e4cb143bfa7e1d717e1d492 | 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 | d1628bffe27db398ff5c67c2e20f89e729f8bc31 | https://review.mlplatform.org/c/ml/armnn/+/8167 | Removed in WorkloadData.hpp ResizeBilinearQueueDescriptor has been removed. |
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 |
The following front-end API changes have occurred during the implementation of 22.08 that users should be aware of before upgrading.
.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Import inputs but don't export outputs fails | 626bd90378670eb5fd76f94526395430b752ad9e | https://review.mlplatform.org/c/ml/armnn/+/7661 | Field m_ExportEnabled has been added to type OptimizerOptions. This field will not be initialized by old clients that have not been recompiled. |
Get non-const IConnectableLayer from I/O slots | 09fa24d2f4b0177d55800bd01ec52c337701ef0a | https://review.mlplatform.org/c/ml/armnn/+/7835 | Pure virtual method GetOwningIConnectableLayer ( ) has been added to classes IOutputSlot and IInputSlot. |
Remove deprecated code 22.05 | 4d2eec0436f75d526c2ec25623ad73c8d1ee9ac3 | https://review.mlplatform.org/c/ml/armnn/+/7712 | Removed Symbols: |
Modified SubgraphView returned by GetWorkingCopy() | cea3d49619a87ffb81422c7e9383368baa93a408 | https://review.mlplatform.org/c/ml/armnn/+/7852 | Pure virtual method GetSlotIndex ( ) const has been added to class IInputSlot. |
Update the async api to use ExecutionData | 21a6a1a5b72907573eade6d232bfaf45a4c14c52 | https://review.mlplatform.org/c/ml/armnn/+/7878 | experimental::IWorkingMemHandle Pure virtual method GetExecutionDataAt ( unsigned int ) has been added to this class. |
The following back-end API changes have occurred during the implementation of 22.08 that users should be aware of before upgrading.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Update the async api to use ExecutionData | 21a6a1a5b72907573eade6d232bfaf45a4c14c52 | https://review.mlplatform.org/c/ml/armnn/+/8051/2 | The following virtual functions have been added to class IBackendInternal: |
Add GetMemoryRequirements to IWorkload | 5e09080c3848fce5c39424dfac735d3281300aa4 | https://review.mlplatform.org/c/ml/armnn/+/7886 | The following virtual function has been added to class IWorkload: |
Modified SubgraphView returned by GetWorkingCopy() | cea3d49619a87ffb81422c7e9383368baa93a408 | https://review.mlplatform.org/c/ml/armnn/+/7852 | The signature of SubgraphView::GetWorkingCopy() has changed, it has now been marked as const to reflect the fact that the graph represented by the working copy does not get altered. |
Tools | Supported Version |
---|---|
Git | 2.17.1 or later |
SCons | 2.4.1 (Ubuntu) 2.5.1 (Debian) |
Cmake | 3.19.0 |
Tensorflow | 2.5.0 |
Onnx | 1.6.0 |
Flatbuffer | 1.12.0 |
Protobuf | 3.12.0 |
Android NDK | r20b |
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 |
The following front-end API changes have occurred during the implementation of 22.05 that users should be aware of before upgrading.
.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Change the namespace from armnn::profiling to arm::pipe | 5aa9fd7ac6bf8dad576fa4a0a32aa3dae98d11ab | https://review.mlplatform.org/c/ml/armnn/+/7222 | IRuntime::RegisterDebugCallback |
Replace ProfilingService includes with IProfilingService. | af947729dc2aa7cdb6d4a716e2edf307710a8155 | https://review.mlplatform.org/c/ml/armnn/+/7240 | The following function has had a change in signature meaning it will not be recognized by old applications. BackendRegistry::SetProfilingService |
Remove dependency on armnn::Exception classes from the Profiling code | f9db3efe5ce2b989b59c47056e1b84b32d2f1100 | https://review.mlplatform.org/c/ml/armnn/+/7280 | Class armnn::BackendProfilingException has been moved to namespace arm::pipe; this will result in older applications not being able to find it. |
Replace armnn:Optional with arm::pipe::Optional in profiling code | decd08b89565b18067d229c8c25b6f3a3333c653 | https://review.mlplatform.org/c/ml/armnn/+/7295 | Class armnn::TimeoutException has been moved to namespace arm::pipe; this will result in older applications not being able to find it. |
Add Unidirectional Sequence Lstm support to TFLite | 5880b911bf4b7fd8308c93e299d77ac78f282c19 | https://review.mlplatform.org/c/ml/armnn/+/7023 | Following fields have been added to struct LstmDescriptor: m_CellIntermediateScale m_ForgetIntermediateScale m_HiddenStateScale m_HiddenStateZeroPoint m_InputIntermediateScale m_OutputIntermediateScale As a result of this size of the struct has been changed |
ConstTensorsAsInput: DepthwiseConvolution2d | 0690265d83e5aa79bd174544a7b35330781619dd | https://review.mlplatform.org/c/ml/armnn/+/7417 | Pure virtual method VisitDepthwiseConvolution2dLayer ( IConnectableLayer const*, struct DepthwiseConvolution2dDescriptor const&, char const* ) has been added to this class.. |
ConstTensorsAsInput: Conv2d - FrontEnd | b4dd5cc86d4eb841de670f0f102ede599e0d9c40 | https://review.mlplatform.org/c/ml/armnn/+/7382 | Pure virtual method VisitConvolution2dLayer ( IConnectableLayer const*, struct Convolution2dDescriptor const&, char const* ) has been added to this class. |
The following back-end API changes have occurred during the implementation of 22.02 that users should be aware of before upgrading.
Feature | SHA | Gerrit Review | Resultant ABI/API changes |
---|---|---|---|
Move headers to profiling/client/include | 277618302d0f131eac0b6ac2015dd3eb09aa6ff9 | https://review.mlplatform.org/c/ml/armnn/+/7327 | Headers have been moved to profiling/client/include. |
Change the namespace from armnn::profiling to arm::pipe | 5aa9fd7ac6bf8dad576fa4a0a32aa3dae98d11ab | https://review.mlplatform.org/c/ml/armnn/+/7222 |
Note: Arm NN is aware of an issue where converting a model to .armnn will yield unpredictable results when reading back in through the deserializer. This is due to the serializer being dependent on graph topology and the graph being out of order. The graph becomes out of order because of the additional constant layers as inputs that are created through the parsers
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.5.0 |
Onnx | 1.6.0 |
Flatbuffer | 1.12.0 |
Protobuf | 3.12.0 |
Android NDK | r20b |
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 |
Android 12 Compatibility Testing was performed using the following:
Android Tag | Android Build ID | Mali Driver | Android Compatibility Test Suite | Android Vendor Test Suite |
---|---|---|---|---|
android-12.0.0_r1 | SP1A.210812.015 | r36p0_01eac0-rc0 | 12_r2 (7987736) | 12_r2 (7973604) |
Android 11 Compatibility Testing was performed using the following:
Android Tag | Android Build ID | Mali Driver | Android Compatibility Test Suite | Android Vendor Test Suite |
---|---|---|---|---|
android-11.0.0_r6 | RPM1.210413.002 | r33p0_01eac0 | 11_r5 (7640833) | 11_r5 (7599184) |
Android 10 Compatibility Testing was performed using the following:
Androidtag | Android Build ID | Mali Driver |
---|---|---|
android-10.0.0_r39 | QQ3A.200605.002.A1 | R23P0_01REL0 |