Skip to content

Commit 3e77093

Browse files
authored
Quacomm AI Engine Direct - Bump QNN SDK version from 2.50 to 2.51 (#23918)
### Summary Uplevel QNN2.50 to QNN2.51 ### Test plan Passing External CI cc @cbilgin @psiddh
1 parent b963cb9 commit 3e77093

9 files changed

Lines changed: 25 additions & 12 deletions

File tree

‎.github/workflows/android-release-artifacts.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ jobs:
168168
source backends/qualcomm/scripts/qnn_config.sh
169169
export QNN_SDK_ROOT="/tmp/qnn/${QNN_VERSION}"
170170
export ANDROID_ABIS=arm64-v8a
171-
GRADLE_ARGS+=" -DqnnVersion=2.50.0"
171+
GRADLE_ARGS+=" -DqnnVersion=${QNN_VERSION%.*}"
172172
fi
173173
174174
# Build AAR Package

‎.wiki/backends/qnn/known-issues.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,16 @@ CQ8750S (soc_id=705) is not in ExecuTorch's SoC table, causing "No Snapdragon SO
152152

153153
**Workaround**: Wait for SDK v2.43 release or manually add the SoC ID mapping.
154154

155+
### Benign "unexpected GraphHtpSettings option 66" on QNN SDK 2.51
156+
157+
**Symptom**: Host-side (x86) AOT lowering logs this once per graph create:
158+
```
159+
[ERROR] [Qnn ExecuTorch]: <E> unexpected GraphHtpSettings option 66
160+
```
161+
Only on QNN SDK 2.51 (2.51.0.260929); versions earlier are clean.
162+
163+
**Status**: **no action needed**. The graph finalizes, inference runs, numerics are unaffected.
164+
155165
## Resolved Issues (Instructive)
156166

157167
### Conv1dToConv2d Pass IndexError
@@ -205,6 +215,7 @@ Early versions hardcoded SM8650 in the partitioner, causing failures on other So
205215
- **v2.42+**: SA8797 (V81) support
206216
- **v2.43+**: CQ8750S support
207217
- **v2.44+**: Latest features
218+
- **v2.50 / v2.51**: bumped in-tree for SM8750; 2.51 logs a benign `GraphHtpSettings option 66` error at AOT (see Active Issues above)
208219

209220
Context binaries are not forward-compatible across SDK versions. [Source: #1430, #4155]
210221

‎backends/qualcomm/scripts/download_qnn_sdk.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def _read_qnn_config() -> Dict[str, str]:
7272

7373

7474
_QNN_CONFIG = _read_qnn_config()
75-
QNN_VERSION = _QNN_CONFIG.get("QNN_VERSION", "2.50.0.260828")
75+
QNN_VERSION = _QNN_CONFIG.get("QNN_VERSION", "2.51.0.260929")
7676
QNN_ZIP_URL = _QNN_CONFIG.get(
7777
"QNN_ZIP_URL",
7878
f"https://softwarecenter.qualcomm.com/api/download/software/sdks/" # @lint-ignore only half of a URL, the rest is on the next line
@@ -81,7 +81,7 @@ def _read_qnn_config() -> Dict[str, str]:
8181

8282

8383
def _get_sdk_dir() -> pathlib.Path:
84-
"""Get the versioned SDK cache directory (e.g. ~/.cache/executorch/qnn/sdk-2.50.0.260828/)."""
84+
"""Get the versioned SDK cache directory (e.g. ~/.cache/executorch/qnn/sdk-2.51.0.260929/)."""
8585
try:
8686
return _get_staging_dir(f"sdk-{QNN_VERSION}")
8787
except ValueError:

‎backends/qualcomm/scripts/qnn_config.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# LICENSE file in the root directory of this source tree.
77

88
# QNN SDK Configuration
9-
QNN_VERSION="2.50.0.260828"
9+
QNN_VERSION="2.51.0.260929"
1010
QNN_ZIP_URL="https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${QNN_VERSION}/v${QNN_VERSION}.zip"
1111

1212
# Hexagon SDK Configuration (used only by direct-mode CI build).

‎docs/source/backends-qualcomm.md‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ The target SoC must be one of those listed in the `QcomChipset` enum; see [qc_sc
7979

8080
[Qualcomm AI Engine Direct SDK](https://developer.qualcomm.com/software/qualcomm-ai-engine-direct-sdk)
8181
- Click the "Get Software" button to download the latest version of the QNN SDK.
82-
- Although newer versions are available, we have verified and recommend using QNN 2.50.0 for stability.
83-
- You can download it directly from the following link: [QNN 2.50.0](https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/2.50.0.260828/v2.50.0.260828.zip)
82+
- Although newer versions are available, we have verified and recommend using QNN 2.51.0 for stability.
83+
- You can download it directly from the following link: [QNN 2.51.0](https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/2.51.0.260929/v2.51.0.260929.zip)
8484

8585
The directory with installed Qualcomm AI Engine Direct SDK looks like:
8686
```
@@ -617,7 +617,9 @@ cd $DEMO_APP
617617
unzip -l app/build/outputs/apk/debug/app-debug.apk | grep "libQnnHtp.so"
618618
```
619619

620-
Expected size for QNN 2.50.0: ~2,601,473,189 bytes
620+
This prints the single `arm64-v8a/libQnnHtp.so` entry bundled from the
621+
`com.qualcomm.qti:qnn-runtime` artifact. Expected size for QNN 2.51.0:
622+
~4,158,496 bytes.
621623

622624
***Step 3***. Monitor Logs During Model Loading
623625

‎docs/source/using-executorch-android.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ QNN runtime version used by the
160160

161161
```kotlin
162162
dependencies {
163-
implementation("com.qualcomm.qti:qnn-runtime:2.50.0")
163+
implementation("com.qualcomm.qti:qnn-runtime:2.51.0")
164164
}
165165
```
166166

‎examples/qualcomm/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ pip install scikit-learn pandas graphviz
132132

133133
## Limitation
134134

135-
1. QNN 2.50 is used for all examples. Newer or older QNN might work, but the performance and accuracy number can differ.
135+
1. QNN 2.51 is used for all examples. Newer or older QNN might work, but the performance and accuracy number can differ.
136136

137137
2. The mobilebert example is on QNN HTP fp16, which is only supported by a limited
138138
set of SoCs. Please check QNN documents for details.

‎examples/qualcomm/custom_op/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ This folder contains examples demonstrating the end-to-end flow for adding a cus
1010

1111
- Please finish tutorial [Setting up executorch](https://pytorch.org/executorch/stable/getting-started-setup).
1212

13-
- Please finish [setup QNN backend](../../../docs/source/backends-qualcomm.md). This example is verified with QNN SDK 2.50.0.
13+
- Please finish [setup QNN backend](../../../docs/source/backends-qualcomm.md). This example is verified with QNN SDK 2.51.0.
1414

1515
- Please follow [the instructions to install proper version of Hexagon SDK and Hexagon Tools.](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-10/linux_setup.html#htp-and-dsp)
1616

1717
The required Hexagon SDK and tools versions depend on your QNN SDK version. Check the `Makefile` in the op package directory for the exact combination — `HEXAGON_SDK_ROOT_V<arch>` and `HEXAGON_TOOLS_VERSION_V<arch>` specify the SDK and tools version per target.
1818

19-
For the examples in this folder (verified with QNN SDK 2.50.0, for SM8650):
19+
For the examples in this folder (verified with QNN SDK 2.51.0, for SM8650):
2020

2121
| Target | Hexagon SDK | Tools version |
2222
|--------|-------------|---------------|
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
def get_qnn_library_version():
2-
return "2.50"
2+
return "2.51"

0 commit comments

Comments
 (0)