Improve QNN backend AOT user experience#17989
Improve QNN backend AOT user experience#17989abhinaykukkadapu wants to merge 2 commits intogh/abhinaykukkadapu/16/basefrom
Conversation
- Read QNN_VERSION from qnn_config.sh instead of hardcoding in download_qnn_sdk.py, eliminating version duplication - Add download progress bars for SDK (~2.4GB), libc++ (~575MB), and glibc (~10MB) downloads with percentage and MB counters - Add extraction progress for SDK, libc++, and tar archives - Add retry + resume for SDK download — on mid-stream failures (ChunkedEncodingError, ConnectionError), resumes from where it left off using HTTP Range headers instead of restarting - Replace NullHandler logger with configured StreamHandler so users see status messages (previously all output was swallowed) - Cache SDK at ~/.cache/executorch/qnn/sdk-<version>/ instead of inside the pip package directory, surviving pip reinstalls - Include version in cache directory name for automatic upgrade detection when qnn_config.sh version changes - Set both QNN_SDK_ROOT and LD_LIBRARY_PATH after auto-download - Print SDK version and path on first import (cached or fresh) - Print user-provided QNN_SDK_ROOT path when set via env var - Add visible warning before glibc re-exec with guidance - Replace unhelpful "check logs above" error with actionable message including full SDK download URL and env var setup instructions [ghstack-poisoned]
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/17989
Note: Links to docs will display an error until the docs builds have been completed. ❌ 3 New Failures, 2 Unrelated FailuresAs of commit 496f338 with merge base 258d503 ( NEW FAILURES - The following jobs have failed:
FLAKY - The following job failed but was likely due to flakiness present on trunk:
BROKEN TRUNK - The following job failed but was present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
- Read QNN_VERSION from qnn_config.sh instead of hardcoding in download_qnn_sdk.py, eliminating version duplication - Add download progress bars for SDK (~2.4GB), libc++ (~575MB), and glibc (~10MB) downloads with percentage and MB counters - Add extraction progress for SDK, libc++, and tar archives - Add retry + resume for SDK download — on mid-stream failures (ChunkedEncodingError, ConnectionError), resumes from where it left off using HTTP Range headers instead of restarting - Replace NullHandler logger with configured StreamHandler so users see status messages (previously all output was swallowed) - Cache SDK at ~/.cache/executorch/qnn/sdk-<version>/ instead of inside the pip package directory, surviving pip reinstalls - Include version in cache directory name for automatic upgrade detection when qnn_config.sh version changes - Set both QNN_SDK_ROOT and LD_LIBRARY_PATH after auto-download - Print SDK version and path on first import (cached or fresh) - Print user-provided QNN_SDK_ROOT path when set via env var - Add visible warning before glibc re-exec with guidance - Replace unhelpful "check logs above" error with actionable message including full SDK download URL and env var setup instructions [ghstack-poisoned]
Stack from ghstack (oldest at bottom):
download_qnn_sdk.py, eliminating version duplication
glibc (~10MB) downloads with percentage and MB counters
(ChunkedEncodingError, ConnectionError), resumes from where it
left off using HTTP Range headers instead of restarting
see status messages (previously all output was swallowed)
inside the pip package directory, surviving pip reinstalls
detection when qnn_config.sh version changes
including full SDK download URL and env var setup instructions