From e6b0d04adfb35ed11640c008f2c2cf1fed9495eb Mon Sep 17 00:00:00 2001 From: winskuo-quic Date: Wed, 11 Mar 2026 04:19:44 -0700 Subject: [PATCH 1/3] Temp fix on amd vendor --- backends/qualcomm/__init__.py | 9 ++++++++- backends/qualcomm/scripts/build.sh | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/backends/qualcomm/__init__.py b/backends/qualcomm/__init__.py index c7d735a69b9..fc30bd7eb65 100644 --- a/backends/qualcomm/__init__.py +++ b/backends/qualcomm/__init__.py @@ -1,7 +1,9 @@ import os -from .scripts.download_qnn_sdk import install_qnn_sdk, is_linux_x86, QNN_ZIP_URL +import cpuinfo +import torch +from .scripts.download_qnn_sdk import install_qnn_sdk, is_linux_x86, QNN_ZIP_URL env_flag = os.getenv("EXECUTORCH_BUILDING_WHEEL", "0").lower() # If users have preinstalled QNN_SDK_ROOT, we will use it. @@ -27,3 +29,8 @@ " export LD_LIBRARY_PATH=" "$QNN_SDK_ROOT/lib/x86_64-linux-clang/:$LD_LIBRARY_PATH" ) + +info = cpuinfo.get_cpu_info() +vendor = info.get("vendor_id_raw", "").lower() +if "amd" in vendor: + torch.backends.mkldnn.enabled = False diff --git a/backends/qualcomm/scripts/build.sh b/backends/qualcomm/scripts/build.sh index ac84b261f33..b07b799dc6b 100755 --- a/backends/qualcomm/scripts/build.sh +++ b/backends/qualcomm/scripts/build.sh @@ -7,6 +7,7 @@ set -e pip install pydot +pip install py-cpuinfo # Check if running on macOS/Darwin if [[ "$(uname -s)" == "Darwin" ]]; then From 5e7314fabe9f0f8de366bd133e4da2f9bfb6e40f Mon Sep 17 00:00:00 2001 From: Winston Kuo Date: Tue, 7 Apr 2026 09:55:30 +0800 Subject: [PATCH 2/3] Code Review --- .ci/scripts/setup-qnn-deps.sh | 3 ++- backends/qualcomm/__init__.py | 17 +++++++++++------ backends/qualcomm/requirements.txt | 5 +++++ backends/qualcomm/scripts/build.sh | 3 +-- 4 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 backends/qualcomm/requirements.txt diff --git a/.ci/scripts/setup-qnn-deps.sh b/.ci/scripts/setup-qnn-deps.sh index 0de9db5c030..8b1afecd47a 100644 --- a/.ci/scripts/setup-qnn-deps.sh +++ b/.ci/scripts/setup-qnn-deps.sh @@ -11,4 +11,5 @@ source "$(dirname "${BASH_SOURCE[0]}")/../../backends/qualcomm/scripts/install_q setup_libcpp 12 setup_android_ndk -install_qnn \ No newline at end of file +install_qnn +pip install -r backends/qualcomm/requirements.txt \ No newline at end of file diff --git a/backends/qualcomm/__init__.py b/backends/qualcomm/__init__.py index fc30bd7eb65..7e2c350e53d 100644 --- a/backends/qualcomm/__init__.py +++ b/backends/qualcomm/__init__.py @@ -1,10 +1,20 @@ import os -import cpuinfo import torch from .scripts.download_qnn_sdk import install_qnn_sdk, is_linux_x86, QNN_ZIP_URL +try: + import cpuinfo + + info = cpuinfo.get_cpu_info() + vendor = info.get("vendor_id_raw", "").lower() + if "amd" in vendor: + torch.backends.mkldnn.enabled = False +except ImportError: + raise ImportError("Please install the cpuinfo with pip install py-cpuinfo.") + + env_flag = os.getenv("EXECUTORCH_BUILDING_WHEEL", "0").lower() # If users have preinstalled QNN_SDK_ROOT, we will use it. qnn_sdk_root_flag = os.getenv("QNN_SDK_ROOT", None) @@ -29,8 +39,3 @@ " export LD_LIBRARY_PATH=" "$QNN_SDK_ROOT/lib/x86_64-linux-clang/:$LD_LIBRARY_PATH" ) - -info = cpuinfo.get_cpu_info() -vendor = info.get("vendor_id_raw", "").lower() -if "amd" in vendor: - torch.backends.mkldnn.enabled = False diff --git a/backends/qualcomm/requirements.txt b/backends/qualcomm/requirements.txt new file mode 100644 index 00000000000..038e94f1b1f --- /dev/null +++ b/backends/qualcomm/requirements.txt @@ -0,0 +1,5 @@ +graphviz +pydot +py-cpuinfo +requests +tabulate diff --git a/backends/qualcomm/scripts/build.sh b/backends/qualcomm/scripts/build.sh index b07b799dc6b..5393ed77e6c 100755 --- a/backends/qualcomm/scripts/build.sh +++ b/backends/qualcomm/scripts/build.sh @@ -6,8 +6,7 @@ # LICENSE file in the root directory of this source tree. set -e -pip install pydot -pip install py-cpuinfo +pip install -r backends/qualcomm/requirements.txt # Check if running on macOS/Darwin if [[ "$(uname -s)" == "Darwin" ]]; then From ae571aeb7c1a9031e214e7326a4d6adbf66cad49 Mon Sep 17 00:00:00 2001 From: Winston Kuo Date: Tue, 7 Apr 2026 14:28:48 +0800 Subject: [PATCH 3/3] use requirments.txt for wheel qnn build --- .ci/scripts/test_wheel_package_qnn.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.ci/scripts/test_wheel_package_qnn.sh b/.ci/scripts/test_wheel_package_qnn.sh index 1c66426f0af..763bd8733c1 100644 --- a/.ci/scripts/test_wheel_package_qnn.sh +++ b/.ci/scripts/test_wheel_package_qnn.sh @@ -177,6 +177,9 @@ PY "$PIPBIN" install . --no-build-isolation popd > /dev/null + # Install qualcomm backend dependencies + "$PIPBIN" install -r "$REPO_ROOT/backends/qualcomm/requirements.txt" + echo "=== [$LABEL] Import smoke tests ===" "$PYBIN" -c "import executorch; print('executorch imported successfully')" "$PYBIN" -c "import executorch.backends.qualcomm; print('executorch.backends.qualcomm imported successfully')"