diff --git a/compiler/common-artifacts/CMakeLists.txt b/compiler/common-artifacts/CMakeLists.txt index 9795a705094..8d0f7c9f7c7 100644 --- a/compiler/common-artifacts/CMakeLists.txt +++ b/compiler/common-artifacts/CMakeLists.txt @@ -1,14 +1,14 @@ #[[ Generate common python virtual enviornment ]] -# NOTE find_package try to use at least python3.8 as follows depending on platform version -# Ubuntu18.04; explictly installed python3.8 (default is python3.6) -# Ubuntu20.04; default python3.8 +# NOTE find_package try to use at least python3.10 as follows depending on platform version +# Ubuntu20.04; explictly installed python3.10 (default is python3.8) # Ubuntu22.04; default python3.10 # Ubuntu24.04; default python3.12 # refer https://github.com/Samsung/ONE/issues/9962 -# find python 3.8 or above -find_package(Python 3.8 EXACT COMPONENTS Interpreter QUIET) +# refer https://github.com/Samsung/ONE/issues/15226 +# find python 3.10 or above +find_package(Python 3.10 EXACT COMPONENTS Interpreter QUIET) if(NOT Python_FOUND) - find_package(Python 3.8 COMPONENTS Interpreter QUIET) + find_package(Python 3.10 COMPONENTS Interpreter QUIET) endif() if(NOT Python_Interpreter_FOUND) @@ -16,10 +16,8 @@ if(NOT Python_Interpreter_FOUND) return() endif() -# NOTE assume only use 3.8.x or 3.10.x or 3.12.x -if((Python_VERSION VERSION_GREATER_EQUAL 3.8) AND (Python_VERSION VERSION_LESS 3.9)) - set(PYTHON_VERSION_MINOR 8) -elseif((Python_VERSION VERSION_GREATER_EQUAL 3.10) AND (Python_VERSION VERSION_LESS 3.11)) +# NOTE assume only use 3.10.x or 3.12.x +if((Python_VERSION VERSION_GREATER_EQUAL 3.10) AND (Python_VERSION VERSION_LESS 3.11)) set(PYTHON_VERSION_MINOR 10) elseif((Python_VERSION VERSION_GREATER_EQUAL 3.12) AND (Python_VERSION VERSION_LESS 3.13)) set(PYTHON_VERSION_MINOR 12) @@ -48,8 +46,8 @@ set(REQUIREMENTS_FILE "requirements.txt") set(REQUIREMENTS_OVERLAY_PATH "${VIRTUALENV_OVERLAY}/${REQUIREMENTS_FILE}") set(PYTHON_OVERLAY python3) -if(PYTHON_EXECUTABLE MATCHES python3.8) - set(PYTHON_OVERLAY python3.8) +if(PYTHON_EXECUTABLE MATCHES python3.10) + set(PYTHON_OVERLAY python3.10) endif() # NOTE when using behind proxy with self signed certificate, need to set '--trusted-host' options diff --git a/compiler/dalgona/CMakeLists.txt b/compiler/dalgona/CMakeLists.txt index f040e8010e5..64d164ce3fc 100644 --- a/compiler/dalgona/CMakeLists.txt +++ b/compiler/dalgona/CMakeLists.txt @@ -1,14 +1,14 @@ -# NOTE find_package will try to use at least python3.8 as follows depending on platform version -# Ubuntu18.04; explictly installed python3.8 (default is python3.6) -# Ubuntu20.04; default python3.8 +# NOTE find_package will try to use at least python3.10 as follows depending on platform version +# Ubuntu20.04; explictly installed python3.10 (default is python3.8) # Ubuntu22.04; default python3.10 # Ubuntu24.04; default python3.12 # refer https://github.com/Samsung/ONE/issues/9962 +# refer https://github.com/Samsung/ONE/issues/15226 # NOTE Require same python version of common-artifacts -# find python 3.8 or above -find_package(Python 3.8 EXACT COMPONENTS Interpreter Development QUIET) +# find python 3.10 or above +find_package(Python 3.10 EXACT COMPONENTS Interpreter Development QUIET) if(NOT Python_FOUND) - find_package(Python 3.8 COMPONENTS Interpreter Development QUIET) + find_package(Python 3.10 COMPONENTS Interpreter Development QUIET) endif() if(NOT Python_Development_FOUND) @@ -16,10 +16,8 @@ if(NOT Python_Development_FOUND) return() endif() -# NOTE assume only use 3.8.x or 3.10.x or 3.12.x -if((Python_VERSION VERSION_GREATER_EQUAL 3.8) AND (Python_VERSION VERSION_LESS 3.9)) - set(PYTHON_VERSION_MINOR 8) -elseif((Python_VERSION VERSION_GREATER_EQUAL 3.10) AND (Python_VERSION VERSION_LESS 3.11)) +# NOTE assume only use 3.10.x or 3.12.x +if((Python_VERSION VERSION_GREATER_EQUAL 3.10) AND (Python_VERSION VERSION_LESS 3.11)) set(PYTHON_VERSION_MINOR 10) elseif((Python_VERSION VERSION_GREATER_EQUAL 3.12) AND (Python_VERSION VERSION_LESS 3.13)) set(PYTHON_VERSION_MINOR 12) diff --git a/compiler/fm-equalize-value-py-test/CMakeLists.txt b/compiler/fm-equalize-value-py-test/CMakeLists.txt index 5848cacc9b4..0a6b58ff1d2 100644 --- a/compiler/fm-equalize-value-py-test/CMakeLists.txt +++ b/compiler/fm-equalize-value-py-test/CMakeLists.txt @@ -11,6 +11,8 @@ if (NOT DEFINED ONE_PYTHON_VERSION_MINOR) endif() set(PYTHON_SITE_PACKAGES "${VIRTUALENV}/lib/python3.${ONE_PYTHON_VERSION_MINOR}/site-packages") +message(STATUS "!!! PYTHON_SITE_PACKAGES: ${PYTHON_SITE_PACKAGES}") + get_target_property(ARTIFACTS_BIN_PATH testDataGenerator BINARY_DIR) get_target_property(FM_EQUALIZE_BIN_PATH fm-equalize BINARY_DIR) get_target_property(FME_DETECT_BIN_PATH fme-detect BINARY_DIR) @@ -40,13 +42,25 @@ macro(eval RECIPE) set(AFTER_CIRCLE_PATTERN_PATH "${CMAKE_CURRENT_BINARY_DIR}/${AFETR_PATTERN_FILE}") # Apply fm-equalize + #add_custom_command(OUTPUT ${AFTER_CIRCLE_OUTPUT_PATH} ${AFTER_CIRCLE_PATTERN_PATH} + # COMMAND ${CMAKE_COMMAND} -E env + # PYTHONPATH=${PYTHON_SITE_PACKAGES} + # ${VIRTUALENV}/bin/python ${FM_EQUALIZE_BIN} -i ${OPT_CIRCLE_OUTPUT_PATH} + # -o ${AFTER_CIRCLE_OUTPUT_PATH} -f ${AFTER_CIRCLE_PATTERN_PATH} + # --fme_detect ${FME_DETECT_BIN} --dalgona ${DALGONA_BIN} + # --fme_apply ${FME_APPLY_BIN} + # DEPENDS ${FM_EQUALIZE_BIN} ${OPT_CIRCLE_OUTPUT_PATH} ${FME_APPLY_BIN} ${FME_DETECT_BIN} ${DALGONA_BIN} + # COMMENT "Apply fm-equalize to ${OPT_CIRCLE_OUTPUT_PATH}" + #) + add_custom_command(OUTPUT ${AFTER_CIRCLE_OUTPUT_PATH} ${AFTER_CIRCLE_PATTERN_PATH} - COMMAND ${CMAKE_COMMAND} -E env - PYTHONPATH=${PYTHON_SITE_PACKAGES} - ${VIRTUALENV}/bin/python ${FM_EQUALIZE_BIN} -i ${OPT_CIRCLE_OUTPUT_PATH} - -o ${AFTER_CIRCLE_OUTPUT_PATH} -f ${AFTER_CIRCLE_PATTERN_PATH} - --fme_detect ${FME_DETECT_BIN} --dalgona ${DALGONA_BIN} - --fme_apply ${FME_APPLY_BIN} + COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${PYTHON_SITE_PACKAGES} + bash run_equalize_bin.sh ${VIRTUALENV} + ${FM_EQUALIZE_BIN} ${OPT_CIRCLE_OUTPUT_PATH} + ${AFTER_CIRCLE_OUTPUT_PATH} ${AFTER_CIRCLE_PATTERN_PATH} + ${FME_DETECT_BIN} ${DALGONA_BIN} + ${FME_APPLY_BIN} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${FM_EQUALIZE_BIN} ${OPT_CIRCLE_OUTPUT_PATH} ${FME_APPLY_BIN} ${FME_DETECT_BIN} ${DALGONA_BIN} COMMENT "Apply fm-equalize to ${OPT_CIRCLE_OUTPUT_PATH}" ) @@ -63,11 +77,21 @@ include("test.local.lst" OPTIONAL) add_custom_target(fm_equalize_value_py_test_files ALL DEPENDS ${TEST_DEPS}) add_dependencies(fm_equalize_value_py_test_files common_artifacts_deps) +#add_test(NAME fm_equalize_value_py_test +# COMMAND ${VIRTUALENV}/bin/python -m pytest -sv test_luci_eval.py +# --test_list ${TEST_LIST_FILE} +# --tflite_dir ${ARTIFACTS_BIN_PATH} +# --circle_dir ${CMAKE_CURRENT_BINARY_DIR} +# --luci_eval_driver $ +# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +#) + add_test(NAME fm_equalize_value_py_test - COMMAND ${VIRTUALENV}/bin/python -m pytest -sv test_luci_eval.py - --test_list ${TEST_LIST_FILE} - --tflite_dir ${ARTIFACTS_BIN_PATH} - --circle_dir ${CMAKE_CURRENT_BINARY_DIR} - --luci_eval_driver $ + COMMAND bash test_luci_eval.sh + ${VIRTUALENV} + ${TEST_LIST_FILE} + ${ARTIFACTS_BIN_PATH} + ${CMAKE_CURRENT_BINARY_DIR} + $ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) diff --git a/compiler/fm-equalize-value-py-test/run_equalize_bin.sh b/compiler/fm-equalize-value-py-test/run_equalize_bin.sh new file mode 100644 index 00000000000..7195e9aa4d8 --- /dev/null +++ b/compiler/fm-equalize-value-py-test/run_equalize_bin.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# TODO add check arguments + +VIRTUAL_ENV=$1; shift +FM_EQUALIZE_BIN=$1; shift +OPT_CIRCLE_OUTPUT_PATH=$1; shift +AFTER_CIRCLE_OUTPUT_PATH=$1; shift +AFTER_CIRCLE_PATTERN_PATH=$1; shift +FME_DETECT_BIN=$1; shift +DALGONA_BIN=$1; shift +FME_APPLY_BIN=$1; shift + +source ${VIRTUAL_ENV}/bin/activate + +python ${FM_EQUALIZE_BIN} \ + -i ${OPT_CIRCLE_OUTPUT_PATH} \ + -o ${AFTER_CIRCLE_OUTPUT_PATH} \ + -f ${AFTER_CIRCLE_PATTERN_PATH} \ + --fme_detect ${FME_DETECT_BIN} \ + --dalgona ${DALGONA_BIN} \ + --fme_apply ${FME_APPLY_BIN} + +deactivate diff --git a/compiler/fm-equalize-value-py-test/test_luci_eval.sh b/compiler/fm-equalize-value-py-test/test_luci_eval.sh new file mode 100644 index 00000000000..815015bccb4 --- /dev/null +++ b/compiler/fm-equalize-value-py-test/test_luci_eval.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# TODO add check arguments + +VIRTUAL_ENV=$1; shift +TEST_LIST_FILE=$1; shift +ARTIFACTS_BIN_PATH=$1; shift +CMAKE_CURRENT_BINARY_DIR=$1; shift +LUCI_EVAL_DRIVER=$1; shift + +source ${VIRTUAL_ENV}/bin/activate + +python -m pytest -sv test_luci_eval.py \ + --test_list ${TEST_LIST_FILE} \ + --tflite_dir ${ARTIFACTS_BIN_PATH} \ + --circle_dir ${CMAKE_CURRENT_BINARY_DIR} \ + --luci_eval_driver ${LUCI_EVAL_DRIVER} + +deactivate