Skip to content

[QNN] Harden SDK download and skip auto-download in CI#18416

Merged
abhinaykukkadapu merged 1 commit into
pytorch:mainfrom
abhinaykukkadapu:ignore_qnn_download_ci
Mar 23, 2026
Merged

[QNN] Harden SDK download and skip auto-download in CI#18416
abhinaykukkadapu merged 1 commit into
pytorch:mainfrom
abhinaykukkadapu:ignore_qnn_download_ci

Conversation

@abhinaykukkadapu
Copy link
Copy Markdown
Contributor

@abhinaykukkadapu abhinaykukkadapu commented Mar 23, 2026

The 1.3GB QNN SDK download fails in GitHub Actions CI due to ChunkedEncodingError after exhausting 3 retries. The connection drops around 80% completion consistently.

  • Add --check flag to download_qnn_sdk.py that probes server reachability via requests.head() (proxy-aware)
  • Skip QNN in GitHub Actions CI unless QNN_SDK_ROOT is set
  • Increase download retries (3→5) with exponential backoff and timeouts
  • Validate archive integrity after download to catch truncation
  • Verify downloaded size matches Content-Length to trigger retries on incomplete downloads

Test Plan:
Local pip install -e . still auto-downloads QNN SDK on Linux x86_64. CI builds without QNN_SDK_ROOT skip QNN gracefully with a status message.

@pytorch-bot
Copy link
Copy Markdown

pytorch-bot Bot commented Mar 23, 2026

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/18416

Note: Links to docs will display an error until the docs builds have been completed.

⏳ No Failures, 90 Pending

As of commit 29e8b7f with merge base 6d04ed3 (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 23, 2026
@github-actions
Copy link
Copy Markdown

This PR needs a release notes: label

If your change should be included in the release notes (i.e. would users of this library care about this change?), please use a label starting with release notes:. This helps us keep track and include your important work in the next release notes.

To add a label, you can comment to pytorchbot, for example
@pytorchbot label "release notes: none"

For more information, see
https://github.com/pytorch/pytorch/wiki/PyTorch-AutoLabel-Bot#why-categorize-for-release-notes-and-how-does-it-work.

Summary:
Gracefully skip QNN backend when the download server is unreachable
(e.g. devvms without proxy) and harden the SDK download against flaky
connections.

- Add --check flag to download_qnn_sdk.py that probes server
  reachability via requests.head() (proxy-aware)
- Skip QNN in GitHub Actions CI unless QNN_SDK_ROOT is set
- Increase download retries (3→5) with exponential backoff and timeouts
- Validate archive integrity after download to catch truncation
- Verify downloaded size matches Content-Length to trigger retries on
  incomplete downloads

Test Plan:
Tested on devvm without proxy (QNN skipped), with proxy (QNN downloaded),
with QNN_SDK_ROOT set (QNN enabled), and with -DEXECUTORCH_BUILD_QNN=ON.
@abhinaykukkadapu abhinaykukkadapu merged commit 8008cd2 into pytorch:main Mar 23, 2026
135 of 138 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants