From 49482d53d7f8ee3fb0c2cc6c0553e9cbdfe6f332 Mon Sep 17 00:00:00 2001 From: Richard Burton Date: Thu, 30 Nov 2023 11:38:45 +0000 Subject: MLECO-4371 Update dependencies to 23.11 release components * Updated NPU components and dependencies (core-driver, core-platform, Vela, CMSIS, TensorFlow Lite Micro) to 23.11 release SHAs. * Changed Python version to 3.10 * Updated release notes and other documentation * Added workarounds to scripts in order to address build issues Signed-off-by: Aron Virginas-Tar Change-Id: I0a639b80881b53eebb216085b7e6764e3be8ca67 --- CMakeLists.txt | 2 +- Dockerfile | 23 ++++++++++++++++------ dependencies/cmsis-nn | 2 +- dependencies/core-driver | 2 +- dependencies/core-platform | 2 +- dependencies/tensorflow | 2 +- docs/quick_start.md | 6 +++--- docs/sections/building.md | 14 ++++++------- download_dependencies.py | 2 +- release_notes.txt | 7 +++++++ .../platforms/mps3/sse-300/mps3-sse-300-debug.ld | 5 ++++- .../cmake/platforms/mps3/sse-300/mps3-sse-300.sct | 3 +++ .../platforms/simple_platform/simple_platform.sct | 3 +++ .../simple_platform/simple_platform_debug.ld | 5 ++++- scripts/py/dependency_urls.json | 8 ++++---- set_up_default_resources.py | 5 +++-- 16 files changed, 61 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91f31f3..fbf3b72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,7 +84,7 @@ if(POLICY CMP0123) endif() project(arm_ml_embedded_evaluation_kit - VERSION 23.08.0 + VERSION 23.11.0 DESCRIPTION "ARM ML Embedded Evaluation Kit" LANGUAGES C CXX ASM) diff --git a/Dockerfile b/Dockerfile index c98a950..00fe747 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,10 +21,12 @@ RUN apt-get update && \ apt-get install -y \ make \ git \ - python3.9 \ + python3.10 \ python3-pip \ - python3.9-dev \ - python3.9-venv \ + python3.10-dev \ + python3.10-venv \ + g++-10 \ + gcc-10 \ unzip \ curl \ wget \ @@ -33,10 +35,19 @@ RUN apt-get update && \ sudo \ telnet -# Set Python3.9 as default +# Set Python3.10 as default RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 10 && \ - update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 20 && \ - update-alternatives --set python3 /usr/bin/python3.9 && python3 --version + update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 20 && \ + update-alternatives --set python3 /usr/bin/python3.10 && python3 --version + +# Update symlinks for gcc +RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10 && \ + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 20 && \ + update-alternatives --set gcc /usr/bin/gcc-10 && gcc --version +# Update symlinks for g++ +RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10 && \ + update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 20 && \ + update-alternatives --set g++ /usr/bin/g++-10 && g++ --version \ # Download and install gcc 13.2 RUN curl -L https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz -o gcc-arm-none-eabi.tar.xz && \ diff --git a/dependencies/cmsis-nn b/dependencies/cmsis-nn index 85164a8..bfc54ed 160000 --- a/dependencies/cmsis-nn +++ b/dependencies/cmsis-nn @@ -1 +1 @@ -Subproject commit 85164a811917770d7027a12a57ed3b469dac6537 +Subproject commit bfc54edb61e873039ec0857cacc40df36b1d644e diff --git a/dependencies/core-driver b/dependencies/core-driver index 90f9df9..0189cd2 160000 --- a/dependencies/core-driver +++ b/dependencies/core-driver @@ -1 +1 @@ -Subproject commit 90f9df900acdc0718ecd2dfdc53780664758dec5 +Subproject commit 0189cd2b334b2d88302d13d6003c50a642db0bb5 diff --git a/dependencies/core-platform b/dependencies/core-platform index 8d3074b..1575e51 160000 --- a/dependencies/core-platform +++ b/dependencies/core-platform @@ -1 +1 @@ -Subproject commit 8d3074b0e82ed46e45d13c22a39e40388a9df8c7 +Subproject commit 1575e51075da805e6a85796c007f3c6eb5697d1e diff --git a/dependencies/tensorflow b/dependencies/tensorflow index 568d181..0996efe 160000 --- a/dependencies/tensorflow +++ b/dependencies/tensorflow @@ -1 +1 @@ -Subproject commit 568d181ccc1f60e49742fd43b7f97141ee8d45fc +Subproject commit 0996efe9b60fde8efcde5242df1afc6ee24d9ee2 diff --git a/docs/quick_start.md b/docs/quick_start.md index d9c3712..daef495 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -37,14 +37,14 @@ To get started quickly, please follow these steps: [supported by Vela](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/HEAD/SUPPORTED_OPS.md). ```commandline - python3.9 ./build_default.py + python3 ./build_default.py ``` > **Note** The preceding command assumes you are using the GNU Arm Embedded toolchain. If you are using the Arm > Compiler instead, you can override the default selection by executing: ```commandline - python3.9 ./build_default.py --toolchain arm + python3 ./build_default.py --toolchain arm ``` 5. Launch the project as explained in the following section: [Deployments](sections/deployment.md#deployment). In quick @@ -71,7 +71,7 @@ mkdir resources_downloaded && cd resources_downloaded python3 -m venv env env/bin/python3 -m pip install --upgrade pip env/bin/python3 -m pip install --upgrade setuptools -env/bin/python3 -m pip install ethos-u-vela==3.9.0 +env/bin/python3 -m pip install ethos-u-vela==3.10.0 cd .. curl -L https://github.com/ARM-software/ML-zoo/raw/7c32b097f7d94aae2cd0b98a8ed5a3ba81e66b18/models/anomaly_detection/micronet_medium/tflite_int8/ad_medium_int8.tflite \ diff --git a/docs/sections/building.md b/docs/sections/building.md index e84acf9..d20e570 100644 --- a/docs/sections/building.md +++ b/docs/sections/building.md @@ -90,17 +90,17 @@ Before proceeding, it is *essential* to ensure that the following prerequisites > > `export PATH=$(readlink -e resources_downloaded/env/bin):${PATH}` -- Python 3.9 or above is installed. Check your current installed version of Python by running: +- Python 3.10 or above is installed. Check your current installed version of Python by running: ```commandline python3 --version ``` ```log - Python 3.9.7 + Python 3.10.12 ``` - > **Note:** If you have an older version of Python installed (< 3.9) see the + > **Note:** If you have an older version of Python installed (< 3.10) see the > [Troubleshooting](./troubleshooting.md#how-to-update-python3-package-to-newer-version) > for instruction on how to install and use it. > **Note:** This scenario might be true if you are using an Arm Virtual Hardware instance. @@ -121,7 +121,7 @@ Before proceeding, it is *essential* to ensure that the following prerequisites ``` ```log - pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.9) + pip 22.0.2 from /usr/lib/python3/dist-packages/pip ``` - Make @@ -357,11 +357,11 @@ This fetches every model into the `resources_downloaded` directory. It also opti for the default 128 MACs configuration of the Arm® *Ethos™-U55* NPU and for the default 256 MACs configuration of the Arm® *Ethos™-U65* NPU. -> **Note:** This script requires Python version 3.9 or higher. Please make sure all [build prerequisites](./building.md#build-prerequisites) -> are satisfied. If your environment points to system installed Python3 that is an older version than 3.9, choose the +> **Note:** This script requires Python version 3.10 or higher. Please make sure all [build prerequisites](./building.md#build-prerequisites) +> are satisfied. If your environment points to system installed Python3 that is an older version than 3.10, choose the > required version explicitly after installing it: > ```sh -> python3.9 ./set_up_default_resources.py +> python3.10 ./set_up_default_resources.py > ``` > > **Note:** This script also installs required version of CMake into the virtual environment, which can be used by activating it. diff --git a/download_dependencies.py b/download_dependencies.py index 786fa4c..995c7ae 100755 --- a/download_dependencies.py +++ b/download_dependencies.py @@ -42,7 +42,7 @@ def download( temp.seek(0) logging.info("Finished downloading %s.", url_file) if url_file.endswith(".tar.gz"): - untar(temp, to_path) + untar(temp.name, to_path) else: unzip(temp, to_path) diff --git a/release_notes.txt b/release_notes.txt index 76072d6..e70332b 100644 --- a/release_notes.txt +++ b/release_notes.txt @@ -1,3 +1,10 @@ +Changes in 23.11 + * Support for 23.11 NPU components and dependencies (core-driver, core-platform, Vela 3.10.0, CMSIS, CMSIS-NN and TensorFlow Lite Micro). + * Increase minimum requirements of Python to 3.10 + * Update Python files to conform to Pylint + * Adding support for Arm Cortex-M85 with GCC + * Updates to documentation + Changes in 23.08 * Support for 23.08 NPU components and dependencies (core-driver, core-platform, Vela 3.9.0, CMSIS, CMSIS-NN and TensorFlow Lite Micro). * Update Python package requirements for compatibility reasons. diff --git a/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300-debug.ld b/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300-debug.ld index 6531403..35f59f6 100644 --- a/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300-debug.ld +++ b/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300-debug.ld @@ -84,7 +84,8 @@ SECTIONS *flatbuffer*.o *Profiler*.obj *lcd*.obj - *timing_adapter.c.obj) + *timing_adapter.c.obj + *s4*.o) .text*) KEEP(*(.init)) @@ -208,6 +209,8 @@ SECTIONS . = ALIGN(4); *Profiler*.obj (*.text*) . = ALIGN(4); + *s4*.o (*.text*) /* Temporary solution to move s4 operations to DDR. */ + . = ALIGN(4); } > DDR AT > DDR /** diff --git a/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct b/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct index c9b1c44..2e3646e 100644 --- a/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct +++ b/scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct @@ -103,6 +103,9 @@ LOAD_REGION_1 0x70000000 0x02000000 ; activation buffers a.k.a tensor arena when memory mode dedicated sram *.o (activation_buf_dram) + + ; Temporary solution to move s4 operations here. + *s4*.o (+RO +RW +ZI) } ;----------------------------------------------------- diff --git a/scripts/cmake/platforms/simple_platform/simple_platform.sct b/scripts/cmake/platforms/simple_platform/simple_platform.sct index f34170e..b987f5a 100644 --- a/scripts/cmake/platforms/simple_platform/simple_platform.sct +++ b/scripts/cmake/platforms/simple_platform/simple_platform.sct @@ -103,6 +103,9 @@ LOAD_REGION_1 0x70000000 0x02000000 ; activation buffers a.k.a tensor arena when memory mode dedicated sram *.o (activation_buf_dram) + + ; Temporary solution to move s4 operations here. + *s4*.o (+RO +RW +ZI) } ;----------------------------------------------------- diff --git a/scripts/cmake/platforms/simple_platform/simple_platform_debug.ld b/scripts/cmake/platforms/simple_platform/simple_platform_debug.ld index 4bbe6c0..dbedb8e 100644 --- a/scripts/cmake/platforms/simple_platform/simple_platform_debug.ld +++ b/scripts/cmake/platforms/simple_platform/simple_platform_debug.ld @@ -77,7 +77,8 @@ SECTIONS *flatbuffer*.o *lcd*.obj *Profiler*.obj - *timing_adapter.c.obj) + *timing_adapter.c.obj + *s4*.o) .text*) KEEP(*(.init)) @@ -201,6 +202,8 @@ SECTIONS . = ALIGN(4); *Profiler*.obj (*.text*) . = ALIGN(4); + *s4*.o (*.text*) /* Temporary solution to move s4 operations to DDR. */ + . = ALIGN(4); } > DDR AT > DDR /** diff --git a/scripts/py/dependency_urls.json b/scripts/py/dependency_urls.json index 56ea403..316c628 100644 --- a/scripts/py/dependency_urls.json +++ b/scripts/py/dependency_urls.json @@ -1,8 +1,8 @@ { "cmsis": "https://github.com/ARM-software/CMSIS_5/archive/a75f01746df18bb5b929dfb8dc6c9407fac3a0f3.zip", "cmsis-dsp": "https://github.com/ARM-software/CMSIS-DSP/archive/refs/tags/v1.15.0.zip", - "cmsis-nn": "https://github.com/ARM-software/CMSIS-NN/archive/85164a811917770d7027a12a57ed3b469dac6537.zip", - "core-driver": "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-23.08.tar.gz", - "core-platform": "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-platform.git/snapshot/ethos-u-core-platform-23.08.tar.gz", - "tensorflow": "https://github.com/tensorflow/tflite-micro/archive/568d181ccc1f60e49742fd43b7f97141ee8d45fc.zip" + "cmsis-nn": "https://github.com/ARM-software/CMSIS-NN/archive/bfc54edb61e873039ec0857cacc40df36b1d644e.zip", + "core-driver": "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-23.11.tar.gz", + "core-platform": "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-platform.git/snapshot/ethos-u-core-platform-23.11.tar.gz", + "tensorflow": "https://github.com/tensorflow/tflite-micro/archive/0996efe9b60fde8efcde5242df1afc6ee24d9ee2.zip" } diff --git a/set_up_default_resources.py b/set_up_default_resources.py index a3987bc..f5cd0ac 100755 --- a/set_up_default_resources.py +++ b/set_up_default_resources.py @@ -39,8 +39,9 @@ from urllib.error import URLError from scripts.py.check_update_resources_downloaded import get_md5sum_for_file # Supported version of Python and Vela -VELA_VERSION = "3.9.0" -py3_version_minimum = (3, 9) + +VELA_VERSION = "3.10.0" +py3_version_minimum = (3, 10) # Valid NPU configurations: valid_npu_config_names = [ -- cgit v1.2.1