Releases: ARM-software/android-nn-driver
Release 22.02
New Features
- Added Unidirectional Quantized LSTM.
Bug Fixes
- Cast Device and Driver in log message to unsigned long.
Known Issues
- There is a known performance regression between Android NN driver 21.11 and 22.02 on a subset of models using the GpuAcc backend. These models are characterized by having a CONV2D as their first operator. The regression relates to the feature "Import of Aligned Host Memory". The current implementation, by default, disables import of the input tensor but enables export of the output tensor. The workaround is to either fully enable or fully disable this feature. This can be done using the --enableImport and–enableExport Android NN driver options.
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 | r35p0_01eac0 | 12_r1_arm64 (7698606) | 12_r1_arm64 (7698606) |
android-12.0.0_r1 | SP1A.210812.015 | r37p0_01eac0 | 12_r2 (7987736) | 12_r2 (7973604) |
android-12.0.0_r1 | SP1A.210812.015 | r38p0_01eac0 | 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:
Android Tag | Android Build ID | Mali Driver |
---|---|---|
android-10.0.0_r39 | QQ3A.200605.002.A1 | R23P0_01REL0 |
Release 21.11
New Features
- Added support for Reduce Prod.
- Added support for Channel Shuffle
- Implemented NNAPI caching functions.
- Enabled internal profiling of Optimizer.
Bug Fixes
- Fixed driver crash in DumpTensor.
- Cleared up coverity issues.
- Restricted CpuRef LSTM tests to run only when CpuRef is enabled.
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 | SP1A.210812.015 | r36p0_01eac0 | 12_r2 (7987736) | 12_r2 (7973604) |
android-12 | SP1A.210812.015 | r35p0_01eac0 | 12_r1 (7698606) | 12_r1 (7698606) |
android-12 | SP1A.210812.003 | r34p0_01eac0 | 12_r1 (eng.upr473.20210901.005349) | 12_r1 (eng.upr473.20210901.024841) |
android-12 | SP1A.210812.003 | r32p1_01eac0 | 12_r1 (eng.upr473.20210901.005349)1 | 12_r1 (eng.upr473.20210901.024841) |
1: CtsNNAPITestCases with Mali Driver r32p1_01eac0. The following test is known to be failing: AddTwoWithHardwareBufferInputWithGPUUsage. Investigations indicate this failure is due to Android NN HAL utilizing Gralloc functionality not required by the Gralloc API. This issue has been raised with Google Android team, and is tracked as https://partnerissuetracker.corp.google.com/issues/202025253. Please quote Arm reference MIDCET-3783 when discussing this issue.
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_r3 (7127450) | 11_r3 (7137996) |
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 |
Release 21.08
New Features
- Moved unit tests from BOOST to doctest.
- Changed weights layout for Depthwise Convolution Operator from [M,I,H,W] to [1,H,W,I*M].
- Added QUANT8_ASYMM_SIGNED support for PadV2 Operator.
- Added SIN and LOG support to ElementWiseUnary Operator.
Bug Fixes
- Fixed uninitialised m_Optional field in ConstTensorPin.
- Fixed Wsign-compare compiler error and improved compiler warnings.
Note
- If building with FP16 support enabled for the CpuAcc backend on Android P or Q, a new flag (DARM_COMPUTE_ENABLE_FP16) must be added to the scons parameters when building Arm Compute Library.
Release 21.05
New Features
- CAST operator support on HAL 1.2 and HAL 1.3.
- REDUCE_SUM operator support on HAL 1.2 and HAL 1.3.
- REDUCE_MIN operator support on HAL 1.2 and HAL 1.3.
- REDUCE_MAX operator support on HAL 1.2 and HAL 1.3.
- Non-const weights support added on FULLY_CONNECTED layer.
Bug Fixes
- Fix added for dump files to handle situations where a shape has no dimensions or unspecified dimensions.
- Fix added to avoid driver abort when tests use invalid filter shape.
- Improved performance on SqueezeNet v1.1.
Other Changes
- Removed cross-wiring in DepthwiseConvolution2d. The permutation of the full tensor info is now performed in armnnUtils::Permuted.
- Removed data layout from dump files.
Release 21.02
New Features:
- If "-request-inputs-and-outputs-dump-dir" is enabled it will serialize the network graph to a ".armnn" file to given directory.
- Added ability to save and load the ClContext through android-nn-driver
- Two optimization parameters were added to enable:
-
"q,cached-network-file",
"If non-empty, the given file will be used to load/save cached network."
"If save-cached-network option is given will save the cached network to given file."
"If save-cached-network option is not given will load the cached network from given file." -
"s,save-cached-network",
"Enables saving the cached network to the file given with cached-network-file option."
-
- Two optimization parameters were added to enable:
Other Changes:
- Provide LayerSupportHandle to frontend users.
- Update setup and Android.bp files to build v8.2a driver.
- Add CpuAcc specific configuration option numberOfThreads.
- Add GpuAcc MLGO tuning file configuration argument.
Bug Fixes:
Known Issues:
Deprecated features:
Release 20.11
New Features:
- Added support for EXP operator.
- Added support for Logical NOT, AND and OR.
- Added ability to enable ACL fast_math through the NNAPI driver.
- Added SECURITY.md file.
Other Changes:
- Removed remaining boost from android-nn-driver runtime code (Boost still resides in Unit Tests).
- Removed boost::array from unit tests
- Removed boost::format and swapped to fmt
- Removed boost::numeric_cast
- Removed boost::math::fpc uses
*Removed boost::program_options and swapped to cxxopts
- Updated ConvertConcatenation, ConvertQuantizedLstm, ConvertQuantized16BitLstm, ConvertLstm and ConvertSqueeze functions to use ShapeInferenceMethod.
Bug Fixes:
- Fixed linking issue with pipeCommon if it's not being built.
- Fixed BackendHint missing when cloning a layer.
- Fixed incorrect function name in log for ConvertMaximum.
- Fixed skipped concat VTS tests.
- Fixed for Android-NN-Driver cmd line parameters.
- Fixed Transpose Conv2d Dynamic tests.
- Fixed skipping Dynamic Grouped Conv2d tests.
- Fixed skipping VTS DynamicOutputShape FullyConnected.
Known Issues:
Release 20.08
New Features:
- Added FILL operator support for HAL 1.3 Driver.
- Added GATHER operator support for HAL 1.3 and 1.2 on CpuAcc and GpuAcc.
- Added RANK operator support for HAL 1.3 Driver.
- Add QoS to AndroidNNDriver.
- Added align corner and half pixels support to the RESIZE operator for HAL 1.3 Driver.
- Added Dynamic Tensor Type1 support for all layers except for:
- Concatenation
- Fill
- Rank
- Squeeze
- LSTM
- QLSTM
- Q16bitLSTM
Bug Fixes:
- Add support for SOFTMAX when beta is Float16.
- Add support for TRANSPOSE when the permutation vector has no value by setting it to the default permutation vector.
- Add check in STRIDED_SLICE for negative stride with ShrinkAxisMask.
Known Issues:
- Android Q CTS TestRandomGraph/RandomGraphTest#LargeGraph_TENSOR_FLOAT16_Rank2/20 has been added to the list of test that are allowed to fail, as it has a LOG followed by a FLOOR in FP16. This test is not part of the Android R CTS.
- Caffe SqueezeNet not supported in CpuAcc and GpuAcc, due to the axis used in the Softmax layer is not supported by ACL. Default axis for Softmax in ACL is now the most right dimension(0 for ACL, -1 for ArmNN). In 20.05 and before the default axis was the second dimension from the right.
- Support to wav2letter model has been added, however its accuracy has not been confirmed yet.
Note: In the 20.11 release we will stop supporting Android P, and we will officially support Android R. Just as additional information, it is worth mentioning that the large number of tests that have been added to the Android R VTS and NeuralNetworks has increased test runtime substantially.
Release 20.05
New Features:
- Added TENSOR_BOOL8 data type support
- Added NEG operator support to HAL 1.2 Driver
- Introduced HAL 1.3 Driver
- Added TENSOR_QUANT8_ASYMM_SIGNED data type support to HAL 1.3 Driver
- Added ELU operator support to HAL 1.3 Driver
- Added HARD_SWISH support to HAL 1.3 Driver
- Added QLSTM operator support for constant weights to HAL 1.3 Driver
- Added driver option to name the driver service which is registered
Other changes:
- Fixed concatenation layer VTS test being skipped in CpuAcc and GpuAcc
- Added flow to exclude libOpenCL when building AndroidnNN
Known issues:
- QLSTM produces slightly different cell state output values compared to expected values provided in VTS
Release 20.02
Deprecated features:
New Features:
Other Changes:
- Fixed issue where certain exceptions were left uncaught leading to driver crash.
Known Issues:
- The CTS test "TestRandomGraph/RandomGraphTest#LargeGraph_TENSOR_FLOAT16_Rank3/41" is currently failing on CpuRef.
The failure is being caused by an unfortunate combination of a LogSoftmax layer followed by a Floor layer blowing up the slight difference between fp16 to fp32.
Google have been informed about this and in the meantime our in house version of CTS will ignore this test.
v19.11.1
ArmNN 19.11.1 Release Notes
This is an incremental release of ArmNN 19.11 to fix CTS issues.
Android NNAPI driver
Deprecated features:
New Features:
Other changes:
All errors and crashes occurring on the 19.11 release when running the Android Compliance Test Suite (CTS) R2* on Android 10 (Android Q) have been fixed, applying all fixes applied to 19.08.01 that were not yet in 19.11.
This addresses all known issues listed in ArmNN 19.11 Release Notes.
- Driver termination during TestRandomGraph when using GPU acceleration (ie. ARMNN_COMPUTE_CL_ENABLE:=1)
- Some TestRandomGraph/RandomGraphTest tests which include CONCATENATION and L2_POOLING_2D operators.
- Some TestRandomGraph/RandomGraphTest tests which include operators taking the optional data layout argument if the argument is present and set to NCHW.
- Some TestRandomGraph/RandomGraphTest tests which include operators using FLOAT16 input.
- Some TestRandomGraph/RandomGraphTest tests which include RESIZE_BILINEAR operators.
- Some TestRandomGraph/RandomGraphTest tests which include RESIZE operators.
- Some TestRandomGraph/RandomGraphTest tests which include RESIZE_NEAREST_NEIGHBOR operators.
- Some TestRandomGraph/RandomGraphTest tests which include SPACE_TO_DEPTH operators.
- Some TestRandomGraph/RandomGraphTest tests when using GPU tests which include ABS RSQRT and SQRT (unary element wise operators).
- Some TestRandomGraph/SingleOperationTest#PAD_V1_1 tests when using CPU.
*Notice the CTS R2 we used includes the following fixes: https://android-review.googlesource.com/q/project:platform%252Fframeworks%252Fml+branch:android10-tests-dev+status:merged
Backend API Changes:
Known Issues: