New Features:
- Added comparison operators (EQUAL, NOT_EQUAL, GREATER, GREATER_EQUAL, LESS, LESS_EQUAL) support to CpuAcc and GpuAcc backends
- Added EXP operator support to CpuAcc backend
- Added NEG operator support to CpuAcc and GpuAcc backend
- Added QLSTM operator partial support (projection not yet supported) to Reference backend
- Added QLSTM operator full support to CpuAcc and GpuAcc backends
- Added Boolean data type
- Added QAsymmS8 to ArmnnQuantizer
- Added QAsymmS8 data type
- Added BFloat16 data type
- Added BFloat16 support to Reference backend
- Activation
- Addition
- ArgMinMax
- BatchNormalization
- BatchToSpaceNd
- Comparison
- Concat
- Constant
- Convolution2d
- Debug
- DepthToSpace
- DepthwiseConvolution2d
- DetectionPostProcess
- Equal
- Floor
- FullyConnected
- Gather
- Input
- InstanceNormalization
- L2Normalization
- LogSoftmax
- Lstm
- Maximum
- Mean
- MemCopy
- MemImport
- Merge
- Minimum
- Multiplication
- Normalization
- Output
- Pad
- Permute
- Pooling2d
- Quantize
- Division
- Prelu
- Reshape
- Resize
- Slice
- Softmax
- SpaceToBatchNd
- SpaceToDepth
- Splitter
- Stack
- StandIn
- StridedSlice
- Subtraction
- Switch
- TransposeConvolution2d
- Transpose
- Added support for BFloat16 turbo mode
TfLite Parser:
- Added support for STRIDED_SLICE operator
- Added support for EXP operator
- Added support for SPLIT_V operator
- Enabled SPLIT along any dimension
Tf Parser:
- Added support for PACK/STACK
ArmNN Serializer
- Added QSymmS8 data type support Armnn Serializer Schema, ArmnnSchema.fbs
- Added per-axis quantization parameters to ArmnnConverter (Serializer - Deserializer) tool
Public API Changes:
- Added Activate and Deactivate timeline control packet to the External Profiling protocol
Backend API Changes:
- User backend hint API to select preferred backend on a per layer basis
Bug Fixes:
- Fixed segfault parsing reshape layer
- Fixed ArmNN Compile Error when compiled against gcc 9
- Fixed unit test errors when running on raspberry pi due to the fact that the size of thread::id is platform dependent
- Fixed LSTM layer CellToInputWeights
Other changes:
- Separated out BasePipeServer library from GatorDMock
- Introduced polymorphic_downcast implementation
- Introduced numeric_cast implementation
- Introduced PolymorphicPointerDowncast implementation
- Removed boost::ignore_unused
- Removed boost::polymorphic_pointer_downcast
- Removed boost::polymorphic_downcast
- Eliminated space restriction in batch norm layer which was giving errors when loading a quantized model
- Doxygen Beautification
Integration of PyArmNN
Known issues:
Build Dependencies:
Tools | Version we support |
---|---|
Git | 2.17.1 or later |
SCons | 2.4.1 (Ubuntu) and 2.5.1 (Debian) |
CMake | 3.5.1 (Ubuntu) and 3.7.2 (Debian) |
boost | 1.64 |
Tensorflow | TENSORFLOW_REVISION= 590d6eef7e91a6a7392c8ffffb7b58f2e0c8bc6b (v1.15.0) |
Caffe | CAFFE_REVISION= 7d3f8a7ea43fb06cd9804bc90933c7a91cd88ec9 |
Onnx | ONNX_REVISION= f612532843bd8e24efeab2815e45b436479cc9ab |
Flatbuffer | 1.10.0 |
Protobuf | 3.5.2 |
Eigen3 | 3.3 |
Android | 9 and 10 |
Mali Driver | r23 |
Android NDK | r20b |