diff --git a/.ci/scripts/test_backend.sh b/.ci/scripts/test_backend.sh index a48cc9ec41a..e959a2f074a 100755 --- a/.ci/scripts/test_backend.sh +++ b/.ci/scripts/test_backend.sh @@ -57,8 +57,13 @@ if [[ "$FLOW" == *vulkan* ]]; then fi if [[ "$FLOW" == *arm* ]]; then + # Setup ARM deps. - .ci/scripts/setup-arm-baremetal-tools.sh + if [[ "$FLOW" == *vgf* ]]; then + .ci/scripts/setup-arm-baremetal-tools.sh --enable-mlsdk-deps --install-mlsdk-deps-with-pip + else + .ci/scripts/setup-arm-baremetal-tools.sh + fi source examples/arm/ethos-u-scratch/setup_path.sh if [[ "$FLOW" == *ethos_u* ]]; then @@ -66,6 +71,11 @@ if [[ "$FLOW" == *arm* ]]; then backends/arm/scripts/build_executorch.sh backends/arm/test/setup_testing.sh fi + + if [[ "$FLOW" == *vgf* ]]; then + # Prepare a test runner binary for VKML runtime + backends/arm/test/setup_testing_vkml.sh + fi fi if [[ $IS_MACOS -eq 1 ]]; then diff --git a/.github/workflows/test-backend-arm.yml b/.github/workflows/test-backend-arm.yml index 22e3d524f6b..638d5a2079f 100644 --- a/.github/workflows/test-backend-arm.yml +++ b/.github/workflows/test-backend-arm.yml @@ -26,7 +26,7 @@ jobs: uses: ./.github/workflows/_test_backend.yml with: backend: arm - flows: '["arm_tosa_fp", "arm_tosa_int", "arm_ethos_u55", "arm_ethos_u85"]' + flows: '["arm_tosa_fp", "arm_tosa_int", "arm_ethos_u55", "arm_ethos_u85", "arm_vgf_fp", "arm_vgf_int"]' ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} timeout: 120 run-linux: true diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml index f428766ba64..c78766cb967 100644 --- a/.github/workflows/trunk.yml +++ b/.github/workflows/trunk.yml @@ -284,6 +284,7 @@ jobs: include: - test_arm_baremetal: test_pytest_ops_ethosu_fvp - test_arm_baremetal: test_pytest_models_ethosu_fvp + - test_arm_baremetal: test_pytest_ops_vkml - test_arm_baremetal: test_run_ethosu_fvp - test_arm_baremetal: test_models_tosa - test_arm_baremetal: test_models_ethos-u55 @@ -306,7 +307,7 @@ jobs: source .ci/scripts/utils.sh install_executorch "--use-pt-pinned-commit" - .ci/scripts/setup-arm-baremetal-tools.sh + .ci/scripts/setup-arm-baremetal-tools.sh --enable-mlsdk-deps --install-mlsdk-deps-with-pip # Increase number of files user can monitor to bypass buck failures. # Hopefully this is high enough for this setup. diff --git a/backends/test/suite/flow.py b/backends/test/suite/flow.py index 29394951bd7..f3c9ee75083 100644 --- a/backends/test/suite/flow.py +++ b/backends/test/suite/flow.py @@ -132,6 +132,8 @@ def all_flows() -> dict[str, TestFlow]: ARM_ETHOS_U85_FLOW, ARM_TOSA_FP_FLOW, ARM_TOSA_INT_FLOW, + ARM_VGF_FP_FLOW, + ARM_VGF_INT_FLOW, ) flows += [ @@ -139,6 +141,8 @@ def all_flows() -> dict[str, TestFlow]: ARM_TOSA_INT_FLOW, ARM_ETHOS_U55_FLOW, ARM_ETHOS_U85_FLOW, + ARM_VGF_FP_FLOW, + ARM_VGF_INT_FLOW, ] except Exception as e: logger.info(f"Skipping ARM flow registration: {e}") diff --git a/backends/test/suite/flows/arm.py b/backends/test/suite/flows/arm.py index db3bb2cfd9e..29ef504d50c 100644 --- a/backends/test/suite/flows/arm.py +++ b/backends/test/suite/flows/arm.py @@ -78,3 +78,15 @@ def create_quantize_stage() -> Quantize: lambda: common.get_u85_compile_spec(), quantize=True, ) +ARM_VGF_FP_FLOW = _create_arm_flow( + "arm_vgf_fp", + lambda: common.get_vgf_compile_spec(tosa_spec="TOSA-1.0+FP"), + quantize=False, + use_portable_ops=False, +) +ARM_VGF_INT_FLOW = _create_arm_flow( + "arm_vgf_int", + lambda: common.get_vgf_compile_spec(tosa_spec="TOSA-1.0+INT"), + quantize=True, + use_portable_ops=False, +)