From 294a3a5e4f2215311e2fe70c43d961c63b9070ec Mon Sep 17 00:00:00 2001 From: Chen Lai Date: Fri, 5 Sep 2025 10:57:33 -0700 Subject: [PATCH] Unify the QNN version config (#13960) Summary: Remove a few more hardcoded version Rollback Plan: Differential Revision: D81711173 --- .ci/scripts/test_backend_linux.sh | 10 +++++++--- .github/workflows/android-perf.yml | 4 +++- .github/workflows/android-release-artifacts.yml | 4 +++- backends/qualcomm/scripts/qnn_config.sh | 4 +++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.ci/scripts/test_backend_linux.sh b/.ci/scripts/test_backend_linux.sh index 254d974160a..c55f7d5b40b 100755 --- a/.ci/scripts/test_backend_linux.sh +++ b/.ci/scripts/test_backend_linux.sh @@ -30,10 +30,14 @@ if [[ "$FLOW" == *qnn* ]]; then # Qualcomm build. TODO (gjcomer) Clean this up once the QNN pybinding integration is # cleaned up. PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh --build-tool cmake - PYTHON_EXECUTABLE=python bash .ci/scripts/setup-qnn-deps.sh - PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh + # Source QNN configuration + source "$(dirname "${BASH_SOURCE[0]}")/../../backends/qualcomm/scripts/qnn_config.sh" + # Download QNN_SDK. If already downloaded, export environment path + source "$(dirname "${BASH_SOURCE[0]}")/../../backends/qualcomm/scripts/install_qnn_sdk.sh" + install_qnn + QNN_X86_LIB_DIR=`realpath build-x86/lib/` - QNN_SDK_ROOT="/tmp/qnn/2.28.0.241029" + export LD_LIBRARY_PATH"=$QNN_X86_LIB_DIR:$QNN_SDK_ROOT/lib/x86_64-linux-clang/:${LD_LIBRARY_PATH:-}" # TODO Get SDK root from install scripts diff --git a/.github/workflows/android-perf.yml b/.github/workflows/android-perf.yml index b37478686a9..6a181688d9a 100644 --- a/.github/workflows/android-perf.yml +++ b/.github/workflows/android-perf.yml @@ -432,7 +432,9 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/build-qnn-sdk.sh 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.37.0.25072 EXECUTORCH_ANDROID_PROFILING=ON bash scripts/build_android_library.sh + # To find the QNN version + source backends/qualcomm/scripts/qnn_config.sh + PYTHON_EXECUTABLE=python ANDROID_ABIS="arm64-v8a" BUILD_AAR_DIR=aar-out EXECUTORCH_BUILD_QNN=ON QNN_SDK_ROOT=/tmp/qnn/${QNN_VERSION} EXECUTORCH_ANDROID_PROFILING=ON bash scripts/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 diff --git a/.github/workflows/android-release-artifacts.yml b/.github/workflows/android-release-artifacts.yml index f0b74342eb8..b2db1504f75 100644 --- a/.github/workflows/android-release-artifacts.yml +++ b/.github/workflows/android-release-artifacts.yml @@ -104,7 +104,9 @@ jobs: source backends/qualcomm/scripts/qnn_config.sh export QNN_SDK_ROOT="/tmp/qnn/${QNN_VERSION}" export ANDROID_ABIS=arm64-v8a - GRADLE_ARGS+=" -DqnnVersion=2.37.0" + # To find the QNN version + source backends/qualcomm/scripts/qnn_config.sh + GRADLE_ARGS+=" -DqnnVersion=${QNN_MAJOR_VERSION}" fi # Build AAR Package diff --git a/backends/qualcomm/scripts/qnn_config.sh b/backends/qualcomm/scripts/qnn_config.sh index 938eb0d3007..6eadc8dc724 100644 --- a/backends/qualcomm/scripts/qnn_config.sh +++ b/backends/qualcomm/scripts/qnn_config.sh @@ -6,5 +6,7 @@ # LICENSE file in the root directory of this source tree. # QNN SDK Configuration -QNN_VERSION="2.37.0.250724" +QNN_MAJOR_VERSION="2.37.0" +QNN_MINOR_VERSION="250724" +QNN_VERSION="${QNN_MAJOR_VERSION}.${QNN_MINOR_VERSION}" QNN_ZIP_URL="https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${QNN_VERSION}/v${QNN_VERSION}.zip"