Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .github/workflows/_android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,25 @@ jobs:
export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded

# Build LLM Demo for Android
export BUILD_AAR_DIR=aar-out
bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
bash build/build_android_instrumentation.sh
bash build/build_android_instrumentation.sh ${ARTIFACTS_DIR_NAME}

mkdir -p ${ARTIFACTS_DIR_NAME}/fp32-xnnpack-custom
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
cp aar-out/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs
pushd examples/demo-apps/android/LlamaDemo
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
popd

DEMO_APP_DIR="${ARTIFACTS_DIR_NAME}/llm_demo"
# The app directory is named using its build flavor as a suffix.
mkdir -p "${DEMO_APP_DIR}"
# Collect the app and its test suite
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}"
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}"

# Running Android emulator directly on the runner and not using Docker
run-emulator:
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/android-perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -362,8 +362,17 @@ jobs:
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh
PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh

export ANDROID_ABIS="arm64-v8a"
PYTHON_EXECUTABLE=python EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
mkdir -p aar-out
PYTHON_EXECUTABLE=python ANDROID_ABIS="arm64-v8a" BUILD_AAR_DIR=aar-out EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/2.28.0.241029 bash build/build_android_library.sh
mkdir -p extension/benchmark/android/benchmark/app/libs
cp aar-out/executorch.aar extension/benchmark/android/benchmark/app/libs
pushd extension/benchmark/android/benchmark
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
popd
MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench"
mkdir -p "${MINIBENCH_APP_DIR}"
cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}"
cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}"

# Let's see how expensive this job is, we might want to tone it down by running it periodically
benchmark-on-device:
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/android-release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,12 @@ jobs:
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh --build-tool buck2
export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded

# Build LLM Demo for Android
bash build/build_android_library.sh ${ARTIFACTS_DIR_NAME}
# Build AAR Package
mkdir aar-out
export BUILD_AAR_DIR=aar-out
bash build/build_android_library.sh
mkdir -p "${ARTIFACTS_DIR_NAME}/llm_demo"
cp aar-out/executorch.aar "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar"

shasum -a 256 "${ARTIFACTS_DIR_NAME}/llm_demo/executorch.aar"

Expand Down
36 changes: 0 additions & 36 deletions build/build_android_library.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,38 +137,6 @@ build_aar() {
popd
}

build_android_demo_apps() {
mkdir -p examples/demo-apps/android/LlamaDemo/app/libs
cp ${BUILD_AAR_DIR}/executorch.aar examples/demo-apps/android/LlamaDemo/app/libs
pushd examples/demo-apps/android/LlamaDemo
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
popd

mkdir -p extension/benchmark/android/benchmark/app/libs
cp ${BUILD_AAR_DIR}/executorch.aar extension/benchmark/android/benchmark/app/libs
pushd extension/benchmark/android/benchmark
ANDROID_HOME="${ANDROID_SDK:-/opt/android/sdk}" ./gradlew build assembleAndroidTest
popd
}

collect_artifacts_to_be_uploaded() {
ARTIFACTS_DIR_NAME="$1"
DEMO_APP_DIR="${ARTIFACTS_DIR_NAME}/llm_demo"
# The app directory is named using its build flavor as a suffix.
mkdir -p "${DEMO_APP_DIR}"
# Collect the app and its test suite
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/debug/*.apk "${DEMO_APP_DIR}"
cp examples/demo-apps/android/LlamaDemo/app/build/outputs/apk/androidTest/debug/*.apk "${DEMO_APP_DIR}"
# Collect JAR and AAR
cp extension/android/build/libs/executorch.jar "${DEMO_APP_DIR}"
find "${BUILD_AAR_DIR}/" -name 'executorch*.aar' -exec cp {} "${DEMO_APP_DIR}" \;
# Collect MiniBench APK
MINIBENCH_APP_DIR="${ARTIFACTS_DIR_NAME}/minibench"
mkdir -p "${MINIBENCH_APP_DIR}"
cp extension/benchmark/android/benchmark/app/build/outputs/apk/debug/*.apk "${MINIBENCH_APP_DIR}"
cp extension/benchmark/android/benchmark/app/build/outputs/apk/androidTest/debug/*.apk "${MINIBENCH_APP_DIR}"
}

main() {
if [[ -z "${BUILD_AAR_DIR:-}" ]]; then
BUILD_AAR_DIR="$(mktemp -d)"
Expand All @@ -186,10 +154,6 @@ main() {
build_android_native_library ${ANDROID_ABI}
done
build_aar
build_android_demo_apps
if [ -n "$ARTIFACTS_DIR_NAME" ]; then
collect_artifacts_to_be_uploaded ${ARTIFACTS_DIR_NAME}
fi
}

if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
Expand Down
8 changes: 1 addition & 7 deletions examples/demo-apps/android/LlamaDemo/setup-with-qnn.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,7 @@ if [ -z "$QNN_SDK_ROOT" ]; then
fi

BASEDIR=$(dirname "$0")
source "$BASEDIR"/../../../../build/build_android_library.sh
ANDROID_ABIS="arm64-v8a" bash "$BASEDIR"/setup.sh

BUILD_AAR_DIR="$(mktemp -d)"
export BUILD_AAR_DIR

build_jar
build_android_native_library "arm64-v8a"
build_aar
mkdir -p "$BASEDIR"/app/libs
cp "$BUILD_AAR_DIR/executorch.aar" "$BASEDIR"/app/libs/executorch.aar
10 changes: 3 additions & 7 deletions examples/demo-apps/android/LlamaDemo/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,11 @@

set -eu

BASEDIR=$(dirname "$0")
source "$BASEDIR"/../../../../build/build_android_library.sh

BUILD_AAR_DIR="$(mktemp -d)"
export BUILD_AAR_DIR

build_jar
build_android_native_library "arm64-v8a"
build_android_native_library "x86_64"
build_aar
BASEDIR=$(dirname "$0")
mkdir -p "$BASEDIR"/app/libs
bash "$BASEDIR"/../../../../build/build_android_library.sh

cp "$BUILD_AAR_DIR/executorch.aar" "$BASEDIR"/app/libs/executorch.aar
Loading