From 50a0650cd3c804a89aa77815820a8df390245c2f Mon Sep 17 00:00:00 2001 From: alexander Date: Wed, 12 May 2021 19:06:02 +0100 Subject: MLECO-1873: default models are for 128 MAC config Signed-off-by: alexander Change-Id: Ic3e940a9d289d649976c4e951ced1473fc31ff3f --- CMakeLists.txt | 3 ++- scripts/cmake/util_functions.cmake | 9 +++++++++ set_up_default_resources.py | 20 +++++++++++++++----- source/use_case/ad/usecase.cmake | 2 +- source/use_case/asr/usecase.cmake | 2 +- source/use_case/img_class/usecase.cmake | 2 +- source/use_case/inference_runner/usecase.cmake | 2 +- source/use_case/kws/usecase.cmake | 2 +- source/use_case/kws_asr/usecase.cmake | 4 ++-- 9 files changed, 33 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bc69c76..cefc86e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -439,9 +439,10 @@ foreach(use_case ${USE_CASES}) set(TEST_INC_GEN_DIR ${CMAKE_BINARY_DIR}/generated/${use_case}/tests/include) file(MAKE_DIRECTORY ${TEST_SRC_GEN_DIR} ${TEST_INC_GEN_DIR}) + set(${use_case}_DEFAULT_TEST_DATA_DIR ${DEFAULT_TEST_DATA_DIR} CACHE PATH "") # Generate test data files to be included in x86 tests generate_test_data_code( - INPUT_DIR "${DEFAULT_TEST_DATA_DIR}" + INPUT_DIR "${${use_case}_DEFAULT_TEST_DATA_DIR}" DESTINATION_SRC ${TEST_SRC_GEN_DIR} DESTINATION_HDR ${TEST_INC_GEN_DIR} NAMESPACE "test" diff --git a/scripts/cmake/util_functions.cmake b/scripts/cmake/util_functions.cmake index ecd9d2a..06ae184 100644 --- a/scripts/cmake/util_functions.cmake +++ b/scripts/cmake/util_functions.cmake @@ -23,11 +23,20 @@ function(USER_OPTION name description default type) if (${type} STREQUAL PATH_OR_FILE) if (DEFINED ${name}) + get_filename_component(ABSPATH "${${name}}" ABSOLUTE BASE_DIR ${CMAKE_SOURCE_DIR}) + get_path_type(${${name}} PATH_TYPE) else() + get_filename_component(ABSPATH "${default}" ABSOLUTE BASE_DIR ${CMAKE_SOURCE_DIR}) + get_path_type(${default} PATH_TYPE) endif() + if (NOT EXISTS ${ABSPATH}) + message(FATAL_ERROR + "Invalid directory or file path. Description: ${description}; Path: ${ABSPATH}") + endif() + # Set the default type if path is not a dir or file path (or undefined) if (NOT ${PATH_TYPE} STREQUAL PATH AND NOT ${PATH_TYPE} STREQUAL FILEPATH) message(FATAL_ERROR "Invalid ${name}. It should be a dir or file path.") diff --git a/set_up_default_resources.py b/set_up_default_resources.py index 60c1747..0a02395 100644 --- a/set_up_default_resources.py +++ b/set_up_default_resources.py @@ -93,10 +93,14 @@ def call_command(command: str) -> str: command (string): Specifies the command to run. """ logging.info(command) - proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) - stdout_log = proc.communicate()[0].decode("utf-8") - logging.info(stdout_log) - return stdout_log + proc = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) + log = proc.stdout.decode("utf-8") + if proc.returncode == 0: + logging.info(log) + else: + logging.error(log) + proc.check_returncode() + return log def set_up_resources(run_vela_on_models=False): @@ -185,7 +189,7 @@ def set_up_resources(run_vela_on_models=False): # New models will have same name with '_vela' appended. # For example: # original model: ds_cnn_clustered_int8.tflite - # after vela model: ds_cnn_clustered_int8_vela.tflite + # after vela model: ds_cnn_clustered_int8_vela_H128.tflite # # Note: To avoid to run vela twice on the same model, it's supposed that # downloaded model names don't contain the 'vela' word. @@ -205,6 +209,12 @@ def set_up_resources(run_vela_on_models=False): "--system-config=Ethos_U55_High_End_Embedded " + f"--output-dir={output_dir}") call_command(command) + # model name after compiling with vela is an initial model name + _vela suffix + vela_optimised_model_path = str(model).replace(".tflite", "_vela.tflite") + # we want it to be initial model name + _vela_H128 suffix which indicates selected MAC config. + new_vela_optimised_model_path = vela_optimised_model_path.replace("_vela.tflite", "_vela_H128.tflite") + # rename default vela model + os.rename(vela_optimised_model_path, new_vela_optimised_model_path) if __name__ == '__main__': diff --git a/source/use_case/ad/usecase.cmake b/source/use_case/ad/usecase.cmake index d591f98..4291dad 100644 --- a/source/use_case/ad/usecase.cmake +++ b/source/use_case/ad/usecase.cmake @@ -61,7 +61,7 @@ USER_OPTION(${use_case}_ACTIVATION_BUF_SZ "Activation buffer size for the chosen STRING) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ad_medium_int8_vela.tflite) + set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ad_medium_int8_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ad_medium_int8.tflite) endif() diff --git a/source/use_case/asr/usecase.cmake b/source/use_case/asr/usecase.cmake index 2b17d84..3d18997 100644 --- a/source/use_case/asr/usecase.cmake +++ b/source/use_case/asr/usecase.cmake @@ -75,7 +75,7 @@ USER_OPTION(${use_case}_ACTIVATION_BUF_SZ "Activation buffer size for the chosen STRING) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/wav2letter_int8_vela.tflite) + set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/wav2letter_int8_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/wav2letter_int8.tflite) endif() diff --git a/source/use_case/img_class/usecase.cmake b/source/use_case/img_class/usecase.cmake index 0089356..545697d 100644 --- a/source/use_case/img_class/usecase.cmake +++ b/source/use_case/img_class/usecase.cmake @@ -47,7 +47,7 @@ USER_OPTION(${use_case}_ACTIVATION_BUF_SZ "Activation buffer size for the chosen STRING) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/mobilenet_v2_1.0_224_quantized_1_default_1_vela.tflite) + set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/mobilenet_v2_1.0_224_quantized_1_default_1_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/mobilenet_v2_1.0_224_quantized_1_default_1.tflite) endif() diff --git a/source/use_case/inference_runner/usecase.cmake b/source/use_case/inference_runner/usecase.cmake index 225aaf4..d66026f 100644 --- a/source/use_case/inference_runner/usecase.cmake +++ b/source/use_case/inference_runner/usecase.cmake @@ -22,7 +22,7 @@ USER_OPTION(${use_case}_ACTIVATION_BUF_SZ "Activation buffer size for the chosen generate_default_input_code(${INC_GEN_DIR}) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/dnn_s_quantized_vela.tflite) + set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/dnn_s_quantized_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/dnn_s_quantized.tflite) endif() diff --git a/source/use_case/kws/usecase.cmake b/source/use_case/kws/usecase.cmake index 23de212..560f5a8 100644 --- a/source/use_case/kws/usecase.cmake +++ b/source/use_case/kws/usecase.cmake @@ -74,7 +74,7 @@ USER_OPTION(${use_case}_ACTIVATION_BUF_SZ "Activation buffer size for the chosen STRING) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela.tflite) + set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8.tflite) endif() diff --git a/source/use_case/kws_asr/usecase.cmake b/source/use_case/kws_asr/usecase.cmake index 3eb61e5..9ff4fff 100644 --- a/source/use_case/kws_asr/usecase.cmake +++ b/source/use_case/kws_asr/usecase.cmake @@ -67,8 +67,8 @@ USER_OPTION(${use_case}_MODEL_SCORE_THRESHOLD_ASR "Specify the score threshold [ STRING) if (ETHOS_U55_ENABLED) - set(DEFAULT_MODEL_PATH_KWS ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela.tflite) - set(DEFAULT_MODEL_PATH_ASR ${DEFAULT_MODEL_DIR}/wav2letter_int8_vela.tflite) + set(DEFAULT_MODEL_PATH_KWS ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela_H128.tflite) + set(DEFAULT_MODEL_PATH_ASR ${DEFAULT_MODEL_DIR}/wav2letter_int8_vela_H128.tflite) else() set(DEFAULT_MODEL_PATH_KWS ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8.tflite) set(DEFAULT_MODEL_PATH_ASR ${DEFAULT_MODEL_DIR}/wav2letter_int8.tflite) -- cgit v1.2.1