Releases: foss-for-synopsys-dwc-arc-processors/embarc_mli
Release 2.0.2
embARC MLI Library Release 2.0.2
This is the 2.0.2 release of the embARC Machine Learning Inference Library (embARC MLI Library).
This is a patch release on top of MLI 2.0.1
Release Notes
This patch release contains the following fixes:
- Documentation update to fix the equation for the calculation of pooling and convolution sizes
- Removal of unused variable which causes a build error with the latest compiler versions
Release 2.0.1
embARC MLI Library Release 2.0.1
This is the 2.0.1 release of the embARC Machine Learning Inference Library (embARC MLI Library).
This is a patch release on top of MLI 2.0
Release Notes
This patch release contains the following fixes:
- Documentation update to clarify the location of documentation.
- Fix for a pragma syntax error that was ignored by older compiler versions but causes a build error with latest compiler versions.
- Fix in the mli_chk_permute_sa8() function to prevent false error reporting when mli_krn_permute_sa8 is used.
Release 1.1.1
This is a patch release on top of Release 1.1 and will contain the following fixes:
- Fix for conv2d and depthwiseconv2d padding issues with small tensor size.
- Update links in the documentation
Release 2.0
embARC MLI Library Release 2.0
This is the 2.0 release of the embARC Machine Learning Inference Library (embARC MLI Library).
Release Notes
-
Version 2.0
-
This release supports following functional primitives
- 2D Convolution
- 2D Depthwise Convolution
- 2D Transpose Convolution
- 2D Group Convolution
- Fully Connected layer
- Max and average pooling
- LSTM and GRU recurrent cells
- RNN Dense layer
- Elementwise (add, sub, mul, min, max)
- Permute
- Argmax
- Data manipulation (concatenation, permute, 2D padding)
- ReLU, Leaky ReLU, Parametric ReLU, ReLU1, ReLU6
- Softmax, Sigmoid, TanH, L2 Normalization
- Helper functions to copy (partial) tensors (mli_mov*)
-
Supported data layout:
- Data layout HWC (Height-Width-Channel)
-
Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8)
- Signed asymmetric datatype supports per-tensor or per channel quantization with 16bit scale factors.
-
Slicing support: creation of sub-tensors and support for non-contiguous tensor data.
-
Supported platforms:
- VPX
- x86 emulation
-
Toolchains support:
- MetaWare Development Tools version 2021.06 and newer.
- GCC 9.1.0 (for x86 emulation)
- MSVC 2019 (for x86 emulation)
Known Limitations
- embARC MLI 2.0 is partially optimized for ARC EMxD and ARC HSxD targets. Currently we recommend only building for VPX and x86 emulation targets. You can use MLI 1.1 for EM/HS targets.
Release 2.0 RC2
Release Candidate 2 for Version 2.0
Release Notes
-
Version 2.0
-
This release supports following functional primitives
- 2D Convolution
- 2D Depthwise Convolution
- 2D Transpose Convolution
- 2D Group Convolution
- Fully Connected layer
- Max and average pooling
- LSTM and GRU recurrent cells
- RNN Dense layer
- Elementwise (add, sub, mul, min, max)
- Permute
- Argmax
- Data manipulation (concatenation, permute, 2D padding)
- ReLU, Leaky ReLU, Parametric ReLU, ReLU1, ReLU6
- Softmax, Sigmoid, TanH, L2 Normalization
- Helper functions to copy (partial) tensors (mli_mov*)
-
Supported data layout:
- Data layout HWC (Height-Width-Channel)
-
Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8)
- Signed asymmetric datatype supports per-tensor or per channel quantization with 16bit scale factors.
-
Slicing support: creation of sub-tensors and support for non-contiguous tensor data.
-
Supported platforms:
- VPX
- x86 emulation
-
Toolchains support:
- MetaWare Development Tools version 2021.06 and newer.
- GCC 9.1.0 (for x86 emulation)
- MSVC 2019 (for x86 emulation)
Fixes and Improvements in the Release Candidate 2 Сompared to Release Candidate 1
- Add missing fields in some library interface enumerations.
- Remove
-Hon=Long_enums
compilation option from build scripts. - Optimize code size of convert SAFX version.
- Improve accuracy for softmax kernel.
- Face Detect example uses NN model instead of hard-coded data for detecting faces on the input image.
- EMNIST Tutorial: clarify instructions and fix build process. Update requirements on dependent python modules.
- User Tests application: Fix assertion on scalar tensor for debug mode.
- CIFAR-10 Example: Fix fields filling to align with operands requirements from API side.
- Kernels input parameters checking for debug mode is improved and is better aligned with API specification.
- Documentation: Update sections hierarchy and clarify details on some aspects. Add more info in examples and master readme files.
Known Limitations
- embARC MLI 2.0 is partially optimized for ARC EMxD and ARC HSxD targets. Currently we recommend only building for VPX and x86 emulation targets. You can use MLI 1.1 for EM/HS targets.
Release 2.0 RC1
Release Candidate 1 for Version 2.0
Release Notes
-
Version 2.0
-
This release supports following functional primitives
- 2D Convolution
- 2D Depthwise Convolution
- 2D Transpose Convolution
- 2D Group Convolution
- Fully Connected layer
- Max and average pooling
- LSTM and GRU recurrent cells
- RNN Dense layer
- Elementwise (add, sub, mul, min, max)
- Permute
- Argmax
- Data manipulation (concatenation, permute, 2D padding)
- ReLU, Leaky ReLU, Parametric ReLU, ReLU1, ReLU6
- Softmax, Sigmoid, TanH, L2 Normalization
- Helper functions to copy (partial) tensors (mli_mov*)
-
Supported data layout:
- Data layout HWC (Height-Width-Channel)
-
Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8)
- Signed asymmetric datatype supports per-tensor or per channel quantization with 16bit scale factors.
-
Slicing support: creation of sub-tenors and support for non-contiguous tensor data.
-
Supported platforms:
- VPX
- x86 emulation
-
Toolchains support:
- MetaWare Development Tools version 2021.06 and newer.
- GCC 9.1.0 (for x86 emulation)
- MSVC 2019 (for x86 emulation)
Known Limitations
- Face Detect example hard-codes some data, which means that it only works with supplied test image
Release 2.0 Early Access
Release Notes
-
Version 2.0 EA
- This is the first early access release for MLI2.0 (MLI 2.0 EA)
- Intended for VPX only, not for EM/HS cores
- Not all kernels are fully optimized
-
This release supports following functional primitives
- 2D Convolution
- 2D depthwise Convolution
- 2D Transpose Convolution
- 2D Group Convolution
- Fully Connected layer
- Max and average pooling
- LSTM and GRU recurrent cells
- RNN Dense layer
- Elementwise (add, sub, mul, min, max)
- Permute
- Argmax
- ReLU, Leaky ReLU, Parametric ReLU
- Softmax, Sigmoid, TanH, L2 Normalization
- Helper functions to copy (partial) tensors (mli_mov*)
-
Supported data layout:
- Data layout HWC (Height-Width-Channel)
-
Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8)
- Signed asymmetric datatype supports per-tensor or per channel quantization with 16bit scale factors.
-
Slicing support: creation of sub-tenors and support for non-contiguous tensor data.
-
Metaware compiler:
- Recommended version: 2021.03 or newer.
-
Supported platforms:
- VPX
- x86 emulation
-
Documentation:
- Readme on how to get started.
Release 1.1
-
Version 1.1
-
This release supports following functional primitives
- 2D Convolution
- 2D depthwise convolution
- Fully Connected layer
- Max and average pooling
- LSTM, Basic RNN
- Elementwise (add, sub, mul, min, max)
- Data manipulation (concatenation, permute, 2D padding)
- ReLU, Leaky ReLu, ReLu1, ReLu6
- Softmax, Sigmoid, TanH
- Helper functions to copy (partial) tensors (mli_mov*)
-
Supported data layout:
- CHW (Channel-Height-Width standard for Caffe)
- Data layout HWC (Height-Width-Channel as used in TensorFlow Lite for Microcontrollers)
-
Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8) support for the following kernels:
- Fully Connected
- Convolution 2D (HWC Layout)
- Depthwise Convolution 2D(HWC Layout)
- Max Pooling(HWC Layout)
- Average Pooling (HWC Layout)
- Signed asymmetric datatype supports per-tensor or per channel quantization with 32bit scale factors.
-
Slicing support: creation of sub-tenors and support for non-contiguous tensor data.
-
Metaware compiler:
- Recommended version: 2020.06 or newer.
-
Documentation:
- API documentation is attached to this release (see embARC_MLI_1_1_API_Doc.zip)
-
TFLM integration:
- embarc MLI is one of the supported back-ends in TensorFlow Lite Micro
- More information can be found here
Release 1.1 RC3
- Version 1.1
- This release supports following functional primitives
- 2D Convolution
- 2D depthwise convolution
- Fully Connected layer
- Max and average pooling
- LSTM, Basic RNN
- Elementwise (add, sub, mul, min, max)
- Data manipulation (concatenation, permute, 2D padding)
- ReLU, Leaky ReLu, ReLu1, ReLu6
- Softmax, Sigmoid, TanH
- Helper functions to copy (partial) tensors (mli_mov*)
- Supported data layout:
- CHW (Channel-Height-Width standard for Caffe)
- Data layout HWC (Height-Width-Channel as used in TensorFlow Lite for Microcontrollers)
- Supported data format:
- Fixed point 8bit and 16bit (fx8 and fx16)
- Signed asymmetric 8bit quantization (sa8) support for the following kernels:
- Fully Connected
- Convolution 2D (HWC Layout)
- Depthwise Convolution 2D(HWC Layout)
- Max Pooling(HWC Layout)
- Average Pooling (HWC Layout)
- Slicing support: creation of sub-tenors and support for non-contiguous tensor data.
Release 1.1 RC2
Release candidate 2 for MLI 1.1