adb push libtimelineDecoder.so /data/local/tmp/
adb push UnitTests /data/local/tmp/
adb push $NDK/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so /data/local/tmp/
-adb push $HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so /data/local/tmp/libprotobuf.so.23.0.0
-adb shell 'ln -s libprotobuf.so.23.0.0 /data/local/tmp/libprotobuf.so.23'
-adb shell 'ln -s libprotobuf.so.23.0.0 /data/local/tmp/libprotobuf.so'
+adb push $HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so /data/local/tmp/libprotobuf.so.24.0.0
+adb shell 'ln -s libprotobuf.so.24.0.0 /data/local/tmp/libprotobuf.so.24'
+adb shell 'ln -s libprotobuf.so.24.0.0 /data/local/tmp/libprotobuf.so'
```
* Push the files needed for the unit tests (they are a mix of files, directories and symbolic links):
-DFLATC_DIR=$HOME/flatbuffers-1.12.0/build \
-DPROTOBUF_ROOT=$HOME/google/x86_64_pb_install \
-DPROTOBUF_ROOT=$HOME/armnn-devenv/google/x86_64_pb_install/ \
--DPROTOBUF_LIBRARY_DEBUG=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.23.0.0 \
--DPROTOBUF_LIBRARY_RELEASE=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.23.0.0
+-DPROTOBUF_LIBRARY_DEBUG=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.24.0.0 \
+-DPROTOBUF_LIBRARY_RELEASE=$HOME/armnn-devenv/google/arm64_pb_install/lib/libprotobuf.so.24.0.0
```
* If you want to include standalone sample dynamic backend tests, add the argument to enable the tests and the dynamic backend path to the CMake command:
export LD_LIBRARY_PATH=<current_working_directory>
```
-* Create a symbolic link to libprotobuf.so.23.0.0:
+* Create a symbolic link to libprotobuf.so.24.0.0:
```bash
-ln -s libprotobuf.so.23.0.0 ./libprotobuf.so.23
+ln -s libprotobuf.so.24.0.0 ./libprotobuf.so.24
```
* Run the UnitTests:
### Missing libz.so.1
* When compiling armNN:
```bash
-/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: warning: libz.so.1, needed by /home/<username>/armNN/usr/lib64/libprotobuf.so.23.0.0, not found (try using -rpath or -rpath-link)
+/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: warning: libz.so.1, needed by /home/<username>/armNN/usr/lib64/libprotobuf.so.24.0.0, not found (try using -rpath or -rpath-link)
```
* Missing arm64 libraries for libz.so.1, these can be added by adding a second architecture to dpkg and explicitly installing them:
#define STRINGIFY_MACRO(s) #s
// ArmNN Delegate version components
-#define DELEGATE_MAJOR_VERSION 23
+#define DELEGATE_MAJOR_VERSION 24
#define DELEGATE_MINOR_VERSION 0
#define DELEGATE_PATCH_VERSION 0
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 20.11
+PROJECT_NUMBER = 21.02
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
#define STRINGIFY_MACRO(s) #s
// ArmNN version components
-#define ARMNN_MAJOR_VERSION 23
+#define ARMNN_MAJOR_VERSION 24
#define ARMNN_MINOR_VERSION 0
#define ARMNN_PATCH_VERSION 0
#define STRINGIFY_MACRO(s) #s
// CaffeParser version components
-#define CAFFE_PARSER_MAJOR_VERSION 23
+#define CAFFE_PARSER_MAJOR_VERSION 24
#define CAFFE_PARSER_MINOR_VERSION 0
#define CAFFE_PARSER_PATCH_VERSION 0
#define STRINGIFY_MACRO(s) #s
// OnnxParser version components
-#define ONNX_PARSER_MAJOR_VERSION 23
+#define ONNX_PARSER_MAJOR_VERSION 24
#define ONNX_PARSER_MINOR_VERSION 0
#define ONNX_PARSER_PATCH_VERSION 0
#define STRINGIFY_MACRO(s) #s
// TfLiteParser version components
-#define TFLITE_PARSER_MAJOR_VERSION 23
+#define TFLITE_PARSER_MAJOR_VERSION 24
#define TFLITE_PARSER_MINOR_VERSION 0
#define TFLITE_PARSER_PATCH_VERSION 0
#define STRINGIFY_MACRO(s) #s
// tfParser version components
-#define TF_PARSER_MAJOR_VERSION 23
+#define TF_PARSER_MAJOR_VERSION 24
#define TF_PARSER_MINOR_VERSION 0
#define TF_PARSER_PATCH_VERSION 0
```bash
$ python setup.py sdist
```
-As the result you will get `./dist/pyarmnn-23.0.0.tar.gz` file. As you can see it is platform independent.
+As the result you will get `./dist/pyarmnn-24.0.0.tar.gz` file. As you can see it is platform independent.
##### 5. Build the binary package
```bash
$ python setup.py bdist_wheel
```
-As the result you will get something like `./dist/pyarmnn-23.0.0-cp36-cp36m-linux_x86_64.whl` file. As you can see it
+As the result you will get something like `./dist/pyarmnn-24.0.0-cp36-cp36m-linux_x86_64.whl` file. As you can see it
is platform dependent.
# PyArmNN installation
Binary package is platform dependent, the name of the package will indicate the platform it was built for, e.g.:
-* Linux x86 64bit machine: pyarmnn-23.0.0-cp36-cp36m-*linux_x86_64*.whl
-* Linux Aarch 64 bit machine: pyarmnn-23.0.0-cp36-cp36m-*linux_aarch64*.whl
+* Linux x86 64bit machine: pyarmnn-24.0.0-cp36-cp36m-*linux_x86_64*.whl
+* Linux Aarch 64 bit machine: pyarmnn-24.0.0-cp36-cp36m-*linux_aarch64*.whl
The source package is platform independent but installation involves compilation of Arm NN python extension. You will need to have g++ compatible with C++ 14 standard and a python development library installed on the build machine.
```
Install PyArmNN from binary by pointing to the wheel file:
```bash
-$ pip install /path/to/pyarmnn-23.0.0-cp36-cp36m-linux_aarch64.whl
+$ pip install /path/to/pyarmnn-24.0.0-cp36-cp36m-linux_aarch64.whl
```
## Installing from source package
Install PyArmNN as follows:
```bash
-$ pip install /path/to/pyarmnn-23.0.0.tar.gz
+$ pip install /path/to/pyarmnn-24.0.0.tar.gz
```
If PyArmNN installation script fails to find Arm NN libraries it will raise an error like this
You can also verify it by running the following and getting output similar to below:
```bash
$ python -c "import pyarmnn as ann;print(ann.GetVersion())"
-'23.0.0'
+'24.0.0'
```
# PyArmNN API overview
You can also verify it by running the following and getting output similar to below:\r
```bash\r
$ python -c "import pyarmnn as ann;print(ann.GetVersion())"\r
-'22.0.0'\r
+'24.0.0'\r
```\r
\r
##### Dependencies\r
You can also verify it by running the following and getting output similar to below:
```bash
$ python -c "import pyarmnn as ann;print(ann.GetVersion())"
-'22.0.0'
+'24.0.0'
```
##### Dependencies
```bash
$ python -c "import pyarmnn as ann;print(ann.GetVersion())"
-'22.0.0'
+'24.0.0'
```
### Dependencies
# SPDX-License-Identifier: MIT
import os
-version_info = (23, 0, 0)
+version_info = (24, 0, 0)
__dev_version_env = os.getenv("PYARMNN_DEV_VER", "")
"""Compares expected Arm NN version and Arm NN version used to build the package.
Args:
- installed_armnn_version (str): Arm NN version used to generate the package (e.g. 23.0.0)
+ installed_armnn_version (str): Arm NN version used to generate the package (e.g. 24.0.0)
expected_armnn_version (str): Expected Arm NN version
Returns:
def test_armnn_version():
- check_armnn_version('23.0.0', '23.0.0')
+ check_armnn_version('24.0.0', '24.0.0')
def test_incorrect_armnn_version():
with pytest.raises(AssertionError) as err:
- check_armnn_version('23.0.0', '23.1.0')
+ check_armnn_version('24.0.0', '24.1.0')
- assert 'Expected ArmNN version is 23.1.0 but installed ArmNN version is 23.0.0' in str(err.value)
+ assert 'Expected ArmNN version is 24.1.0 but installed ArmNN version is 24.0.0' in str(err.value)
def test_armnn_version_patch_does_not_matter():
- check_armnn_version('23.0.0', '23.0.1')
+ check_armnn_version('24.0.0', '24.0.1')
importlib.reload(v)
- assert "23.0.0.dev1" == v.__version__
+ assert "24.0.0.dev1" == v.__version__
del os.environ["PYARMNN_DEV_VER"]
del v
importlib.reload(v)
- assert "23.0.0" == v.__arm_ml_version__
+ assert "24.0.0" == v.__arm_ml_version__
del os.environ["PYARMNN_DEV_VER"]
del v
The full list of libs after cross-compilation to copy on your board:
```
libarmnn.so
-libarmnn.so.22
-libarmnn.so.23.0
+libarmnn.so.24
+libarmnn.so.24.0
libarmnnTfLiteParser.so
-libarmnnTfLiteParser.so.22.0
+libarmnnTfLiteParser.so.24.0
libavcodec.so
libavcodec.so.58
libavcodec.so.58.54.100