diff --git a/.github/workflows/tflm.yml b/.github/workflows/tflm.yml index e60eaec..cb0a5c0 100644 --- a/.github/workflows/tflm.yml +++ b/.github/workflows/tflm.yml @@ -24,7 +24,7 @@ on: jobs: build-tflm: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: matrix: @@ -53,8 +53,7 @@ jobs: - name: '🩹 Apply patches' run: | - cd tflite-micro - git apply --verbose ${GITHUB_WORKSPACE}/patches/tflite_micro.patch + git apply --verbose --directory=tflite-micro ${GITHUB_WORKSPACE}/patches/tflite_micro.patch - name: '♻ Caching dependencies' uses: actions/cache@v4.0.2 @@ -67,9 +66,15 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' run: source tools/ci.sh && ci_install_arm_gcc + - name: '🐍 Set up Python' + uses: actions/setup-python@v5 + with: + cache: 'pip' + python-version: "3.12.4" + - name: '🛠 Install dependencies' run: | - python -m pip install --upgrade pip numpy==1.24 Pillow==10.3 + python -m pip install --break-system-packages --upgrade pip -r requirements.txt - name: '🏗 Build TFLM' run: | diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4973021 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +numpy==1.26.4 +Pillow==10.4.0 diff --git a/tools/ci.sh b/tools/ci.sh index a4b8ff2..9703eac 100644 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -39,13 +39,19 @@ ci_build_target() { ETHOSU_CONFIG="-DNPU_QCONFIG=0 -DNPU_REGIONCFG_0=0 -DAXI_LIMIT0_MAX_BEATS_BYTES=1 -DAXI_LIMIT0_MEM_TYPE=2 -DAXI_LIMIT1_MAX_BEATS_BYTES=1 -DAXI_LIMIT1_MEM_TYPE=2 -DAXI_LIMIT2_MAX_BEATS_BYTES=1 -DAXI_LIMIT2_MEM_TYPE=2 -DAXI_LIMIT3_MAX_BEATS_BYTES=1 -DAXI_LIMIT3_MEM_TYPE=2" pushd ${TFLM_REPO_PATH} +echo "make -j$(nproc) -f tensorflow/lite/micro/tools/make/Makefile \ +TARGET=cortex_m_generic TARGET_ARCH=${TARGET_ARCH} CO_PROCESSOR=${TARGET_COPROC} \ +${TARGET_ARGS} OPTIMIZED_KERNEL_DIR=${TARGET_KERNEL} CORE_OPTIMIZATION_LEVEL=-O2 \ +KERNEL_OPTIMIZATION_LEVEL=-O2 THIRD_PARTY_KERNEL_OPTIMIZATION_LEVEL=-O2 \ +TARGET_TOOLCHAIN_ROOT=${TOOLCHAIN_PATH}/bin/ TARGET_TOOLCHAIN_PREFIX=arm-none-eabi- \ +ETHOSU_EXTRA_CFLAGS=${ETHOSU_CONFIG} BUILD_TYPE=${TARGET_BUILD} MICROLITE_LIB_NAME=libtflm.a microlite" + make -j$(nproc) -f tensorflow/lite/micro/tools/make/Makefile \ - TARGET=cortex_m_generic TARGET_ARCH=${TARGET_ARCH} \ - CO_PROCESSOR=${TARGET_COPROC} ${TARGET_ARGS} ETHOSU_EXTRA_CFLAGS="${ETHOSU_CONFIG}" \ - OPTIMIZED_KERNEL_DIR=${TARGET_KERNEL} CORE_OPTIMIZATION_LEVEL=-O2 \ - KERNEL_OPTIMIZATION_LEVEL=-O2 THIRD_PARTY_KERNEL_OPTIMIZATION_LEVEL=-O2 \ - TARGET_TOOLCHAIN_ROOT=${TOOLCHAIN_PATH}/bin/ TARGET_TOOLCHAIN_PREFIX=arm-none-eabi- \ - BUILD_TYPE=${TARGET_BUILD} MICROLITE_LIB_NAME=libtflm.a microlite + TARGET=cortex_m_generic TARGET_ARCH=${TARGET_ARCH} CO_PROCESSOR=${TARGET_COPROC} \ + ${TARGET_ARGS} OPTIMIZED_KERNEL_DIR=${TARGET_KERNEL} CORE_OPTIMIZATION_LEVEL=-O2 \ + KERNEL_OPTIMIZATION_LEVEL=-O2 THIRD_PARTY_KERNEL_OPTIMIZATION_LEVEL=-O2 \ + TARGET_TOOLCHAIN_ROOT=${TOOLCHAIN_PATH}/bin/ TARGET_TOOLCHAIN_PREFIX=arm-none-eabi- \ + ETHOSU_EXTRA_CFLAGS="${ETHOSU_CONFIG}" BUILD_TYPE=${TARGET_BUILD} MICROLITE_LIB_NAME=libtflm.a microlite popd mv ${TFLM_REPO_PATH}/gen/*/lib/libtflm.a libtflm-${TARGET_NAME}-${TARGET_BUILD}.a }