From 1fd98b4de37175489d3976d6a2370159c907af06 Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Mon, 24 Mar 2025 17:42:17 -0700 Subject: [PATCH 1/2] Fix instrumentation test --- .ci/scripts/build_android_instrumentation.sh | 21 ------------------- .github/workflows/_android.yml | 2 +- .../android/executorch_android/build.gradle | 12 +++++++++++ .../get_instrumentation_test_pte.sh | 21 +++++++++++++++++++ 4 files changed, 34 insertions(+), 22 deletions(-) delete mode 100644 .ci/scripts/build_android_instrumentation.sh create mode 100644 extension/android/executorch_android/get_instrumentation_test_pte.sh diff --git a/.ci/scripts/build_android_instrumentation.sh b/.ci/scripts/build_android_instrumentation.sh deleted file mode 100644 index 5e074d9e215..00000000000 --- a/.ci/scripts/build_android_instrumentation.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. - -set -ex - -if [[ -z "${PYTHON_EXECUTABLE:-}" ]]; then - PYTHON_EXECUTABLE=python3 -fi -which "${PYTHON_EXECUTABLE}" - -mkdir -p "${BUILD_AAR_DIR}"/executorch_android/src/androidTest/resources -cp extension/module/test/resources/add.pte "${BUILD_AAR_DIR}"/executorch_android/src/androidTest/resources - -pushd "${BUILD_AAR_DIR}" -ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:testDebugUnitTest -ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:assembleAndroidTest -popd diff --git a/.github/workflows/_android.yml b/.github/workflows/_android.yml index e29833015d3..e40fd8cfcef 100644 --- a/.github/workflows/_android.yml +++ b/.github/workflows/_android.yml @@ -33,10 +33,10 @@ jobs: export BUILD_AAR_DIR=aar-out mkdir -p $BUILD_AAR_DIR bash scripts/build_android_library.sh + (cd ${BUILD_AAR_DIR}; ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:testDebugUnitTest :executorch_android:assembleAndroidTest) cp ${BUILD_AAR_DIR}/executorch.aar $ARTIFACTS_DIR_NAME mkdir -p ${ARTIFACTS_DIR_NAME}/library_test_dir - bash .ci/scripts/build_android_instrumentation.sh cp ${BUILD_AAR_DIR}/executorch_android/build/outputs/apk/androidTest/debug/executorch_android-debug-androidTest.apk "${ARTIFACTS_DIR_NAME}/library_test_dir" mkdir -p ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom diff --git a/extension/android/executorch_android/build.gradle b/extension/android/executorch_android/build.gradle index b284ce3896e..f55db350271 100644 --- a/extension/android/executorch_android/build.gradle +++ b/extension/android/executorch_android/build.gradle @@ -33,6 +33,18 @@ android { } } +tasks.register("copyTestPte") { + doLast { + exec { + commandLine "sh", "get_instrumentation_test_pte.sh" + } + } +} + +afterEvaluate { + tasks.getByName("compileDebugAndroidTestJavaWithJavac").dependsOn "copyTestPte" +} + dependencies { implementation 'com.facebook.fbjni:fbjni:0.5.1' implementation 'com.facebook.soloader:nativeloader:0.10.5' diff --git a/extension/android/executorch_android/get_instrumentation_test_pte.sh b/extension/android/executorch_android/get_instrumentation_test_pte.sh new file mode 100644 index 00000000000..ec93dd0b7cd --- /dev/null +++ b/extension/android/executorch_android/get_instrumentation_test_pte.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}") + +mkdir -p "${SCRIPT_DIR}/src/androidTest/resources" +cp "${SCRIPT_DIR}/../../../extension/module/test/resources/add.pte" "${SCRIPT_DIR}/src/androidTest/resources" + +pushd "${SCRIPT_DIR}/../../../" +curl -Ls "https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.pt" --output stories110M.pt +curl -Ls "https://raw.githubusercontent.com/karpathy/llama2.c/master/tokenizer.model" --output tokenizer.model +touch params.json +echo '{"dim": 768, "multiple_of": 32, "n_heads": 12, "n_layers": 12, "norm_eps": 1e-05, "vocab_size": 32000}' > params.json +python -m examples.models.llama.export_llama -X --xnnpack-extended-ops -qmode 8da4w -G 128 -c stories110M.pt -p params.json --output_name tinyllama_portable_fp16_h.pte +mv tinyllama_portable_fp16_h.pte "${SCRIPT_DIR}/src/androidTest/resources" +rm stories110M.pt tokenizer.model params.json +popd From 139da51f9bdec0b26de70a03379481d788659a51 Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Mon, 24 Mar 2025 18:14:03 -0700 Subject: [PATCH 2/2] Fix --- .github/workflows/_android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_android.yml b/.github/workflows/_android.yml index e40fd8cfcef..a7c3d608f0f 100644 --- a/.github/workflows/_android.yml +++ b/.github/workflows/_android.yml @@ -33,6 +33,7 @@ jobs: export BUILD_AAR_DIR=aar-out mkdir -p $BUILD_AAR_DIR bash scripts/build_android_library.sh + bash examples/models/llama/install_requirements.sh (cd ${BUILD_AAR_DIR}; ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew :executorch_android:testDebugUnitTest :executorch_android:assembleAndroidTest) cp ${BUILD_AAR_DIR}/executorch.aar $ARTIFACTS_DIR_NAME @@ -40,7 +41,6 @@ jobs: cp ${BUILD_AAR_DIR}/executorch_android/build/outputs/apk/androidTest/debug/executorch_android-debug-androidTest.apk "${ARTIFACTS_DIR_NAME}/library_test_dir" mkdir -p ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom - bash examples/models/llama/install_requirements.sh bash ".ci/scripts/test_llama.sh" -model stories110M -build_tool cmake -dtype fp16 -mode portable -upload ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom mkdir -p examples/demo-apps/android/LlamaDemo/app/libs