From 0af18fe62dd41416ff6770802baf05a2f1d7ce9c Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Wed, 4 Sep 2024 20:32:27 -0700 Subject: [PATCH 1/3] Build QNN in android_llm_demo.sh and perf --- .github/workflows/android-perf.yml | 5 +++++ build/build_android_llm_demo.sh | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index 473dad08c14..d584ba1246f 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -222,6 +222,11 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh cmake export ARTIFACTS_DIR_NAME=artifacts-to-be-uploaded + if [[ ${{ matrix.delegate }} == "qnn" ]]; then + PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh + PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh + export QNN_SDK_ROOT=/tmp/qnn + fi # TODO: This needs to be replaced with a generic loader .apk # Build LLM Demo for Android bash build/build_android_llm_demo.sh ${ARTIFACTS_DIR_NAME} diff --git a/build/build_android_llm_demo.sh b/build/build_android_llm_demo.sh index 38efa05b745..5a17c8745dc 100644 --- a/build/build_android_llm_demo.sh +++ b/build/build_android_llm_demo.sh @@ -19,6 +19,13 @@ build_android_native_library() { ANDROID_ABI="$1" ANDROID_NDK="${ANDROID_NDK:-/opt/ndk}" CMAKE_OUT="cmake-out-android-${ANDROID_ABI}" + QNN_SDK_ROOT="${QNN_SDK_ROOT:-}" + if [ -n "$QNN_SDK_ROOT" ]; then + EXECUTORCH_BUILD_QNN=ON + else + EXECUTORCH_BUILD_QNN=OFF + fi + cmake . -DCMAKE_INSTALL_PREFIX="${CMAKE_OUT}" \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ @@ -34,6 +41,8 @@ build_android_native_library() { -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \ -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON \ -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ + -DEXECUTORCH_BUILD_QNN="${EXECUTORCH_BUILD_QNN}" \ + -DQNN_SDK_ROOT="${QNN_SDK_ROOT}" \ -DCMAKE_BUILD_TYPE=Release \ -B"${CMAKE_OUT}" From 8ee668709f88c94948512bf37ee9c480ee50735b Mon Sep 17 00:00:00 2001 From: Huy Do Date: Wed, 4 Sep 2024 21:37:37 -0700 Subject: [PATCH 2/3] Update android-perf.yml to add matrix strategy to build-llm-demo job --- .github/workflows/android-perf.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index d584ba1246f..eae7405d4d8 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -206,6 +206,10 @@ jobs: name: build-llm-demo uses: pytorch/test-infra/.github/workflows/linux_job.yml@main needs: set-parameters + strategy: + matrix: + delegate: ${{ fromJson(needs.set-parameters.outputs.delegates) }} + fail-fast: false with: runner: linux.2xlarge docker-image: executorch-ubuntu-22.04-clang12-android @@ -227,6 +231,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh export QNN_SDK_ROOT=/tmp/qnn fi + # TODO: This needs to be replaced with a generic loader .apk # Build LLM Demo for Android bash build/build_android_llm_demo.sh ${ARTIFACTS_DIR_NAME} From c9bf8935397ec97e28bca2451a7b3ed35f64d947 Mon Sep 17 00:00:00 2001 From: Hansong <107070759+kirklandsign@users.noreply.github.com> Date: Wed, 4 Sep 2024 22:45:58 -0700 Subject: [PATCH 3/3] Update android-perf.yml Should not export separately! .ci/scripts/build-qnn-sdk.sh: export QNN_SDK_ROOT=/tmp/qnn/2.23.0.240531 --- .github/workflows/android-perf.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index eae7405d4d8..c44de955335 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -229,7 +229,6 @@ jobs: if [[ ${{ matrix.delegate }} == "qnn" ]]; then PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh - export QNN_SDK_ROOT=/tmp/qnn fi # TODO: This needs to be replaced with a generic loader .apk