diff --git a/.github/.cSpellWords.txt b/.github/.cSpellWords.txt index a191d441..0496fa8d 100644 --- a/.github/.cSpellWords.txt +++ b/.github/.cSpellWords.txt @@ -33,6 +33,7 @@ cmos CMSDK cmsis CMSIS +CMSISDSP CMSIS's COEF coef diff --git a/applications/keyword_detection/CMakeLists.txt b/applications/keyword_detection/CMakeLists.txt index fadd13b7..8922fd53 100644 --- a/applications/keyword_detection/CMakeLists.txt +++ b/applications/keyword_detection/CMakeLists.txt @@ -94,18 +94,18 @@ target_include_directories(keyword-detection if(${AUDIO_SOURCE} STREQUAL "ROM") iot_reference_arm_corstone3xx_convert_audio_source_to_code( ${CMAKE_CURRENT_LIST_DIR}/resources - ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE} ) target_sources(keyword-detection PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/InputFiles.cc - ${CMAKE_CURRENT_BINARY_DIR}/test.cc + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE}/sample_files.c + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE}/test.c ) target_include_directories(keyword-detection PRIVATE - ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE} ) elseif(${AUDIO_SOURCE} STREQUAL "VSI") target_compile_definitions(keyword-detection diff --git a/applications/keyword_detection/ml_interface.cc b/applications/keyword_detection/ml_interface.cc index fe6f5de4..28726b52 100644 --- a/applications/keyword_detection/ml_interface.cc +++ b/applications/keyword_detection/ml_interface.cc @@ -103,7 +103,7 @@ extern QueueHandle_t xMlMqttQueue; #else /* !defined(AUDIO_VSI) */ - #include "InputFiles.hpp" + #include "sample_files.h" #endif /* AUDIO_VSI */ @@ -739,10 +739,18 @@ static void prvProcessAudio( ApplicationContext &ctx ) ctx.Get( "classifier" ), ctx.Get &>( "labels" ), singleInfResult ); + const int16_t * pusSampleDataPtr = get_sample_data_ptr( 0 ); + uint32_t ulSampleDataSize = get_sample_data_size( 0 ); + + if( ( pusSampleDataPtr == NULL ) || ( ulSampleDataSize < preProcess.m_audioDataWindowSize ) ) + { + LogError( ( "No audio sample data available for inference.\r\n" ) ); + return; + } /* Creating a sliding window through the whole audio clip. */ auto audioDataSlider = audio::SlidingWindow( - GetAudioArray( 0 ), GetAudioArraySize( 0 ), preProcess.m_audioDataWindowSize, preProcess.m_audioDataStride ); + pusSampleDataPtr, ulSampleDataSize, preProcess.m_audioDataWindowSize, preProcess.m_audioDataStride ); /* Start sliding through audio clip. */ while( audioDataSlider.HasNext() ) diff --git a/applications/speech_recognition/CMakeLists.txt b/applications/speech_recognition/CMakeLists.txt index f5eb5ae9..f2ed0307 100644 --- a/applications/speech_recognition/CMakeLists.txt +++ b/applications/speech_recognition/CMakeLists.txt @@ -88,18 +88,18 @@ target_compile_definitions(speech-recognition if(${AUDIO_SOURCE} STREQUAL "ROM") iot_reference_arm_corstone3xx_convert_audio_source_to_code( ${CMAKE_CURRENT_LIST_DIR}/resources - ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE} ) target_sources(speech-recognition PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/InputFiles.cc - ${CMAKE_CURRENT_BINARY_DIR}/test.cc + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE}/sample_files.c + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE}/test.c ) target_include_directories(speech-recognition PRIVATE - ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/generated/${ML_USE_CASE} ) elseif(${AUDIO_SOURCE} STREQUAL "VSI") target_compile_definitions(speech-recognition diff --git a/applications/speech_recognition/dsp/src/dsp_task.cc b/applications/speech_recognition/dsp/src/dsp_task.cc index 570480da..c5a9b72f 100644 --- a/applications/speech_recognition/dsp/src/dsp_task.cc +++ b/applications/speech_recognition/dsp/src/dsp_task.cc @@ -1,4 +1,4 @@ -/* Copyright 2023-2024 Arm Limited and/or its affiliates +/* Copyright 2023-2025 Arm Limited and/or its affiliates * * SPDX-License-Identifier: MIT */ @@ -118,7 +118,7 @@ extern EventGroupHandle_t xSystemEvents; #else /* !defined(AUDIO_VSI) */ - #include "InputFiles.hpp" + #include "sample_files.h" #endif // AUDIO_VSI @@ -168,12 +168,20 @@ void vDspTask( void * pvParameters ) const int16_t * audioBuf = shared_audio_buffer; auto audioSource = DspAudioSource( audioBuf, AUDIO_BLOCK_NUM ); #else - const int16_t * audioBuf = GetAudioArray( 0 ); + const int16_t * audioBuf = get_sample_data_ptr( 0 ); + uint32_t ulSampleDataSize = get_sample_data_size( 0 ); + + if( ( audioBuf == NULL ) || ( ulSampleDataSize < ( AUDIO_BLOCK_SIZE / sizeof( uint16_t ) ) ) ) + { + LogError( ( "No audio sample data available for inference.\r\n" ) ); + return; + } + /* This integer division for calculating the number of blocks means that, */ /* any remainder data at the end of the audio clip that's smaller than a */ /* block will not be accounted for. This will not have a major impact on */ /* the inference result as a block is only a small fraction of a second. */ - const size_t audioBlockNum = ( size_t ) GetAudioArraySize( 0 ) / ( AUDIO_BLOCK_SIZE / sizeof( uint16_t ) ); + const size_t audioBlockNum = ( size_t ) ulSampleDataSize / ( AUDIO_BLOCK_SIZE / sizeof( uint16_t ) ); auto audioSource = DspAudioSource( audioBuf, audioBlockNum ); #endif /* ifdef AUDIO_VSI */ diff --git a/components/ai/ml_embedded_evaluation_kit/CMakeLists.txt b/components/ai/ml_embedded_evaluation_kit/CMakeLists.txt index 1d18c562..db5fc453 100644 --- a/components/ai/ml_embedded_evaluation_kit/CMakeLists.txt +++ b/components/ai/ml_embedded_evaluation_kit/CMakeLists.txt @@ -12,14 +12,6 @@ include(ApplyPatches) set(PATCH_FILES_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/integration/patches") set(PATCH_FILES - "${PATCH_FILES_DIRECTORY}/0001-User-defined-resources-download-path.patch" - "${PATCH_FILES_DIRECTORY}/0002-Use-CMSIS_device_header-instead-of-RTE_Components.h.patch" - "${PATCH_FILES_DIRECTORY}/0003-Make-ETHOSU_ARCH-configurable-in-TensorFlow-CMake.patch" - "${PATCH_FILES_DIRECTORY}/0004-Override-EthosU55-NPU-default-IRQ-handler.patch" + "${PATCH_FILES_DIRECTORY}/0001-Override-EthosU55-NPU-default-IRQ-handler.patch" ) iot_reference_arm_corstone3xx_apply_patches("${ml_embedded_evaluation_kit_SOURCE_DIR}" "${PATCH_FILES}") - -set(PATCH_FILES - "${PATCH_FILES_DIRECTORY}/0005-Patch-tensorflow.patch" -) -iot_reference_arm_corstone3xx_apply_patches("${ml_embedded_evaluation_kit_SOURCE_DIR}/dependencies/tensorflow/" "${PATCH_FILES}") diff --git a/components/ai/ml_embedded_evaluation_kit/integration/cmake/ConvertAudioSourceToCode.cmake b/components/ai/ml_embedded_evaluation_kit/integration/cmake/ConvertAudioSourceToCode.cmake index 3b0c788c..8420f261 100644 --- a/components/ai/ml_embedded_evaluation_kit/integration/cmake/ConvertAudioSourceToCode.cmake +++ b/components/ai/ml_embedded_evaluation_kit/integration/cmake/ConvertAudioSourceToCode.cmake @@ -1,4 +1,4 @@ -# Copyright 2023-2024 Arm Limited and/or its affiliates +# Copyright 2023-2025 Arm Limited and/or its affiliates # # SPDX-License-Identifier: MIT @@ -6,16 +6,16 @@ function(iot_reference_arm_corstone3xx_convert_audio_source_to_code audio_path generated_path) add_custom_target(convert-audio BYPRODUCTS - ${generated_path}/InputFiles.cc - ${generated_path}/test.cc + ${generated_path}/sample_files.c + ${generated_path}/test.c # use ml-embedded-evaluation-kit's Python Virtual Environment which # contains dependencies for gen_audio_cpp.py COMMAND bash -c " \ source ${CMAKE_CURRENT_BINARY_DIR}/mlek_resources_downloaded/env/bin/activate && \ + pip install --upgrade soundfile && \ python3 ${ml_embedded_evaluation_kit_SOURCE_DIR}/scripts/py/gen_audio_cpp.py \ --audio_path ${audio_path} \ - --source_folder_path ${generated_path} \ - --header_folder_path ${generated_path} " + --package_gen_dir ${generated_path} " VERBATIM USES_TERMINAL ) diff --git a/components/ai/ml_embedded_evaluation_kit/integration/cmake/SetupMlEmbeddedEvaluationKitLibraries.cmake b/components/ai/ml_embedded_evaluation_kit/integration/cmake/SetupMlEmbeddedEvaluationKitLibraries.cmake index 34287ddb..94469a95 100644 --- a/components/ai/ml_embedded_evaluation_kit/integration/cmake/SetupMlEmbeddedEvaluationKitLibraries.cmake +++ b/components/ai/ml_embedded_evaluation_kit/integration/cmake/SetupMlEmbeddedEvaluationKitLibraries.cmake @@ -1,4 +1,4 @@ -# Copyright 2021-2024 Arm Limited and/or its affiliates +# Copyright 2021-2025 Arm Limited and/or its affiliates # # SPDX-License-Identifier: MIT @@ -8,8 +8,7 @@ include(ExternalProject) # Setup for the ML target # ########################### #set(LOG_LEVEL LOG_LEVEL_TRACE) - -set(CMSIS_VER 5) +set(CMSIS_VER 6) # External repositories set(CMSIS_SRC_PATH "${ml_embedded_evaluation_kit_SOURCE_DIR}/dependencies/cmsis-${CMSIS_VER}") @@ -26,7 +25,7 @@ set(MLEK_RESOURCES_DIR ${CMAKE_CURRENT_BINARY_DIR}/mlek_resources_download set(ML_RESOURCES_SET_UP_ARGS "--additional-ethos-u-config-name=${ETHOSU_TARGET_NPU_CONFIG}" "--use-case-resources-file=${ML_USE_CASE_RESOURCES_FILE}" - "--downloaded-model-resources-path=${MLEK_RESOURCES_DIR}" + "--downloads-dir=${MLEK_RESOURCES_DIR}" ) # Tensorflow settings @@ -77,7 +76,7 @@ function(assert_defined var_name) endif() endfunction() -include(${CMAKE_SCRIPTS_DIR}/tensorflow_lite_micro.cmake) +add_library(cmsis_device INTERFACE) # Manually add libs add_subdirectory(${ml_embedded_evaluation_kit_SOURCE_DIR}/source/log ${CMAKE_BINARY_DIR}/log) @@ -91,13 +90,26 @@ add_subdirectory(${ml_embedded_evaluation_kit_SOURCE_DIR}/source/application/api if (ETHOS_U_NPU_ENABLED) add_subdirectory(${ml_embedded_evaluation_kit_SOURCE_DIR}/source/hal/source/components/npu ${CMAKE_BINARY_DIR}/npu) # ethos_u_npu library needs the CPU Header (CMSIS_device_header) + target_include_directories(ethos_u_npu PUBLIC ${ml_embedded_evaluation_kit_SOURCE_DIR}/source/hal/source/components/cmsis_device/include) target_link_libraries(ethos_u_npu PUBLIC arm-corstone-platform-bsp) endif() +include(${CMAKE_SCRIPTS_DIR}/tensorflow_lite_micro.cmake) +target_include_directories(tflu PRIVATE + ${TARGET_PLATFORM_PATH}/device/include + ${TARGET_PLATFORM_PATH}/partition +) +target_compile_definitions(tflu PRIVATE + CMSIS_DEVICE_ARM_CORTEX_M_XX_HEADER_FILE=CMSIS_device_header +) +target_compile_options(tflu PRIVATE $<$:-std=c++17>) +target_link_libraries(tflu PRIVATE arm-corstone-platform-bsp) + + # Add the dependency on tensorflow_build (defined in tensorflow.cmake) -add_dependencies(common_api tensorflow_build) +add_dependencies(common_api tflu) target_include_directories(common_api PUBLIC ${TFLITE_MICRO_PATH}) -target_compile_options(common_api PUBLIC $<$:-std=c++14>) +target_compile_options(common_api PUBLIC $<$:-std=c++17>) # Add relevant use case API add_subdirectory(${ml_embedded_evaluation_kit_SOURCE_DIR}/source/application/api/use_case/${ML_USE_CASE} ${CMAKE_BINARY_DIR}/${ML_USE_CASE}_api) diff --git a/components/ai/ml_embedded_evaluation_kit/integration/patches/0004-Override-EthosU55-NPU-default-IRQ-handler.patch b/components/ai/ml_embedded_evaluation_kit/integration/patches/0001-Override-EthosU55-NPU-default-IRQ-handler.patch similarity index 92% rename from components/ai/ml_embedded_evaluation_kit/integration/patches/0004-Override-EthosU55-NPU-default-IRQ-handler.patch rename to components/ai/ml_embedded_evaluation_kit/integration/patches/0001-Override-EthosU55-NPU-default-IRQ-handler.patch index 9139486d..c60c1d35 100644 --- a/components/ai/ml_embedded_evaluation_kit/integration/patches/0004-Override-EthosU55-NPU-default-IRQ-handler.patch +++ b/components/ai/ml_embedded_evaluation_kit/integration/patches/0001-Override-EthosU55-NPU-default-IRQ-handler.patch @@ -1,7 +1,7 @@ -From 1a047cff83badc2f6a95e3e78af735abef51ef8a Mon Sep 17 00:00:00 2001 +From 8ea782b063ffe69cbce26655af66382fe797378b Mon Sep 17 00:00:00 2001 From: Ahmed Ismail -Date: Thu, 28 Nov 2024 16:14:38 +0000 -Subject: [PATCH 4/4] Override EthosU55 NPU default IRQ handler +Date: Mon, 7 Jul 2025 12:43:51 +0100 +Subject: [PATCH] Override EthosU55 NPU default IRQ handler This change is done to avoid modifying the vector table by setting the Ethos U55 IRQ handler @@ -24,7 +24,7 @@ Signed-off-by: Ahmed Ismail 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/hal/source/components/npu/ethosu_npu_init.c b/source/hal/source/components/npu/ethosu_npu_init.c -index 2cbdb1e..1c8b4f6 100644 +index 8b74e93..c17a443 100644 --- a/source/hal/source/components/npu/ethosu_npu_init.c +++ b/source/hal/source/components/npu/ethosu_npu_init.c @@ -71,20 +71,20 @@ static void arm_ethosu_npu_irq_init(void) diff --git a/components/ai/ml_embedded_evaluation_kit/integration/patches/0001-User-defined-resources-download-path.patch b/components/ai/ml_embedded_evaluation_kit/integration/patches/0001-User-defined-resources-download-path.patch deleted file mode 100644 index bfebac70..00000000 --- a/components/ai/ml_embedded_evaluation_kit/integration/patches/0001-User-defined-resources-download-path.patch +++ /dev/null @@ -1,102 +0,0 @@ -From ef81e4d5aa2392c7b0558923932894c8117831d9 Mon Sep 17 00:00:00 2001 -From: Ahmed Ismail -Date: Thu, 28 Nov 2024 16:11:58 +0000 -Subject: [PATCH 1/4] User defined resources download path - -The location of the downloaded resources can be specified -to allow users to place them wherever they require. Such location -can be a build directory so they can be deleted whenever a clean build -is required if different model resources need to be downloaded. - -Signed-off-by: Ahmed Ismail ---- - set_up_default_resources.py | 19 ++++++++++++++----- - 1 file changed, 14 insertions(+), 5 deletions(-) - -diff --git a/set_up_default_resources.py b/set_up_default_resources.py -index a33c8f3..e4518ec 100755 ---- a/set_up_default_resources.py -+++ b/set_up_default_resources.py -@@ -157,12 +157,14 @@ class PathsConfig: - installed. - use_case_resources_file (Path) : Path to a JSON file containing the use case - metadata resources. -+ downloaded_model_resources_path (str): Path to store model resources files. - - downloads_dir (Path) : Path to store model resources files. - """ - additional_requirements_file: Path = "" - use_case_resources_file: Path = "" - downloads_dir: Path = "" -+ downloaded_model_resources_path: Path = "" - - - def load_use_case_resources( -@@ -678,7 +680,7 @@ def set_up_resources(setup_config: SetupConfig, paths_config: PathsConfig) -> Pa - """ - # Paths. - check_paths_config(paths_config) -- metadata_file_path = paths_config.downloads_dir / "resources_downloaded_metadata.json" -+ metadata_file_path = paths_config.downloaded_model_resources_path / "resources_downloaded_metadata.json" - - # Is Python minimum requirement matched? - if sys.version_info < py3_version_minimum: -@@ -695,14 +697,14 @@ def set_up_resources(setup_config: SetupConfig, paths_config: PathsConfig) -> Pa - setup_script_hash = get_md5sum_for_file(Path(__file__).resolve()) - - metadata_dict, setup_script_hash_verified = initialize_resources_directory( -- paths_config.downloads_dir, -+ paths_config.downloaded_model_resources_path, - setup_config.check_clean_folder, - metadata_file_path, - setup_script_hash - ) - - env_path, env_activate = set_up_python_venv( -- paths_config.downloads_dir, -+ paths_config.downloaded_model_resources_path, - paths_config.additional_requirements_file - ) - -@@ -712,7 +714,7 @@ def set_up_resources(setup_config: SetupConfig, paths_config: PathsConfig) -> Pa - download_resources( - use_case, - metadata_dict, -- paths_config.downloads_dir, -+ paths_config.downloaded_model_resources_path, - setup_config.check_clean_folder, - setup_script_hash_verified - ) -@@ -728,7 +730,7 @@ def set_up_resources(setup_config: SetupConfig, paths_config: PathsConfig) -> Pa - if setup_config.run_vela_on_models is True: - # Consolidate all config names while discarding duplicates: - run_vela_on_all_models( -- paths_config.downloads_dir, -+ paths_config.downloaded_model_resources_path, - env_activate, - setup_config.arena_cache_size, - npu_config_names=list( -@@ -799,6 +801,12 @@ if __name__ == "__main__": - type=Path, - default=default_downloads_path - ) -+ parser.add_argument( -+ "--downloaded-model-resources-path", -+ help="Path to downloaded model resources", -+ type=Path, -+ default=Path(__file__).parent.resolve() / 'resources_downloaded' -+ ) - - parsed_args = parser.parse_args() - -@@ -823,6 +831,7 @@ if __name__ == "__main__": - use_case_resources_file=parsed_args.use_case_resources_file, - downloads_dir=parsed_args.downloads_dir, - additional_requirements_file=parsed_args.requirements_file, -+ downloaded_model_resources_path=parsed_args.downloaded_model_resources_path, - ) - - set_up_resources(setup, paths) --- -2.34.1 - diff --git a/components/ai/ml_embedded_evaluation_kit/integration/patches/0002-Use-CMSIS_device_header-instead-of-RTE_Components.h.patch b/components/ai/ml_embedded_evaluation_kit/integration/patches/0002-Use-CMSIS_device_header-instead-of-RTE_Components.h.patch deleted file mode 100644 index 709068be..00000000 --- a/components/ai/ml_embedded_evaluation_kit/integration/patches/0002-Use-CMSIS_device_header-instead-of-RTE_Components.h.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8e928e600322eb550d96e41244f6b29463bc75ef Mon Sep 17 00:00:00 2001 -From: Ahmed Ismail -Date: Thu, 28 Nov 2024 16:13:09 +0000 -Subject: [PATCH 2/4] Use CMSIS_device_header instead of RTE_Components.h - -Signed-off-by: Gabor Abonyi ---- - source/hal/source/components/npu/ethosu_cpu_cache.c | 2 +- - source/hal/source/components/npu/ethosu_npu_init.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/source/hal/source/components/npu/ethosu_cpu_cache.c b/source/hal/source/components/npu/ethosu_cpu_cache.c -index d5f5e47..42fedba 100644 ---- a/source/hal/source/components/npu/ethosu_cpu_cache.c -+++ b/source/hal/source/components/npu/ethosu_cpu_cache.c -@@ -17,7 +17,7 @@ - - #include "ethosu_cpu_cache.h" - --#include "RTE_Components.h" /* For CPU related defintiions */ -+#include CMSIS_device_header /* For CPU related defintiions */ - #include "ethosu_driver.h" /* Arm Ethos-U driver header */ - #include "log_macros.h" /* Logging macros */ - -diff --git a/source/hal/source/components/npu/ethosu_npu_init.c b/source/hal/source/components/npu/ethosu_npu_init.c -index b7ed9c7..2cbdb1e 100644 ---- a/source/hal/source/components/npu/ethosu_npu_init.c -+++ b/source/hal/source/components/npu/ethosu_npu_init.c -@@ -17,7 +17,7 @@ - - #include "ethosu_npu_init.h" - --#include "RTE_Components.h" /* For CPU related defintiions */ -+#include CMSIS_device_header /* For CPU related defintiions */ - #include "log_macros.h" /* Logging functions */ - - #include "ethosu_mem_config.h" /* Arm Ethos-U memory config */ --- -2.34.1 - diff --git a/components/ai/ml_embedded_evaluation_kit/integration/patches/0003-Make-ETHOSU_ARCH-configurable-in-TensorFlow-CMake.patch b/components/ai/ml_embedded_evaluation_kit/integration/patches/0003-Make-ETHOSU_ARCH-configurable-in-TensorFlow-CMake.patch deleted file mode 100644 index b8bb91a0..00000000 --- a/components/ai/ml_embedded_evaluation_kit/integration/patches/0003-Make-ETHOSU_ARCH-configurable-in-TensorFlow-CMake.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 2f6ec81d61c885b2e36af47d2cc223b4d4761904 Mon Sep 17 00:00:00 2001 -From: Ahmed Ismail -Date: Thu, 28 Nov 2024 16:13:50 +0000 -Subject: [PATCH 3/4] Make ETHOSU_ARCH configurable in TensorFlow CMake - MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 - Content-Transfer-Encoding: 8bit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Gergely Korcsák ---- - scripts/cmake/tensorflow_lite_micro.cmake | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/scripts/cmake/tensorflow_lite_micro.cmake b/scripts/cmake/tensorflow_lite_micro.cmake -index 734c713..c06854a 100644 ---- a/scripts/cmake/tensorflow_lite_micro.cmake -+++ b/scripts/cmake/tensorflow_lite_micro.cmake -@@ -130,11 +130,7 @@ else() - if(ETHOS_U_NPU_ENABLED) - # Arm Ethos-U55 NPU is the co-processor for ML workload: - set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR "ethos_u") -- if(${ETHOS_U_NPU_ID} STREQUAL "U65") -- set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR_ARCH "u65") -- else() -- set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR_ARCH "u55") -- endif () -+ string(TOLOWER "${ETHOS_U_NPU_ID}" TENSORFLOW_LITE_MICRO_CO_PROCESSOR_ARCH) - endif() - - set(TENSORFLOW_LITE_MICRO_OPTIMIZED_KERNEL "cmsis_nn") --- -2.34.1 - diff --git a/components/ai/ml_embedded_evaluation_kit/integration/patches/0005-Patch-tensorflow.patch b/components/ai/ml_embedded_evaluation_kit/integration/patches/0005-Patch-tensorflow.patch deleted file mode 100644 index c150ca89..00000000 --- a/components/ai/ml_embedded_evaluation_kit/integration/patches/0005-Patch-tensorflow.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 15c53b15b6588c104081656a98be986e3f91670a Mon Sep 17 00:00:00 2001 -From: Ahmed Ismail -Date: Thu, 28 Nov 2024 16:16:01 +0000 -Subject: [PATCH] Patch tensorflow MIME-Version: 1.0 Content-Type: text/plain; - charset=UTF-8 Content-Transfer-Encoding: 8bit -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Gergely Korcsák ---- - tensorflow/lite/micro/tools/make/ext_libs/ethos_u.inc | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tensorflow/lite/micro/tools/make/ext_libs/ethos_u.inc b/tensorflow/lite/micro/tools/make/ext_libs/ethos_u.inc -index 73447cd7..4ef80aec 100644 ---- a/tensorflow/lite/micro/tools/make/ext_libs/ethos_u.inc -+++ b/tensorflow/lite/micro/tools/make/ext_libs/ethos_u.inc -@@ -74,6 +74,10 @@ else ifeq ($(ETHOSU_ARCH), u65) - ETHOSU_FLAGS += \ - -DETHOSU_ARCH=u65 \ - -DETHOSU65 -+else ifeq ($(ETHOSU_ARCH), u85) -+ ETHOSU_FLAGS += \ -+ -DETHOSU_ARCH=u85 \ -+ -DETHOSU85 - else - $(error "ETHOSU_ARCH=$(ETHOSU_ARCH) is not supported") - endif --- -2.34.1 - diff --git a/components/ai/ml_embedded_evaluation_kit/library b/components/ai/ml_embedded_evaluation_kit/library index ddb3ffdb..06885133 160000 --- a/components/ai/ml_embedded_evaluation_kit/library +++ b/components/ai/ml_embedded_evaluation_kit/library @@ -1 +1 @@ -Subproject commit ddb3ffdbcfc6f66dc3906e84158f235824536b4a +Subproject commit 06885133b072f509b1b210fca4d98b6b200ef8f8 diff --git a/components/graphics/arm-2d/integration/CMakeLists.txt b/components/graphics/arm-2d/integration/CMakeLists.txt index 4ceea4c7..2a7ef8a3 100644 --- a/components/graphics/arm-2d/integration/CMakeLists.txt +++ b/components/graphics/arm-2d/integration/CMakeLists.txt @@ -18,9 +18,12 @@ target_sources(arm-2d ${arm-2d_SOURCE_DIR}/Library/Source/arm_2d_alpha_blending.c ${arm-2d_SOURCE_DIR}/Library/Source/arm_2d_helium.c ) +target_compile_options(arm-2d PRIVATE $<$:-flax-vector-conversions>) +target_compile_options(arm-2d PRIVATE $<$:-flax-vector-conversions=integer>) target_link_libraries(arm-2d PUBLIC arm_2d-config - cmsis-dsp + CMSISDSP + arm-corstone-platform-bsp ) diff --git a/manifest.yml b/manifest.yml index cd5c9515..08aabf6c 100644 --- a/manifest.yml +++ b/manifest.yml @@ -169,7 +169,7 @@ dependencies: license: "Apache-2.0" tpip-category: "category-2" security-risk: "low" - version: "ddb3ffdbcfc6f66dc3906e84158f235824536b4a" + version: "25.05" repository: type: "git" url: "https://git.gitlab.arm.com/artificial-intelligence/ethos-u/ml-embedded-evaluation-kit.git" diff --git a/release_changes/202507071546.change.md b/release_changes/202507071546.change.md new file mode 100644 index 00000000..1ce8930a --- /dev/null +++ b/release_changes/202507071546.change.md @@ -0,0 +1 @@ +components: Bump MLEK version to 25.05