Skip to content

Add PR-blocking CI for QNN model tests, operator/model testsuite, and pass unit tests (#18854)#18854

Open
abhinaykukkadapu wants to merge 2 commits intopytorch:mainfrom
abhinaykukkadapu:export-D100708421
Open

Add PR-blocking CI for QNN model tests, operator/model testsuite, and pass unit tests (#18854)#18854
abhinaykukkadapu wants to merge 2 commits intopytorch:mainfrom
abhinaykukkadapu:export-D100708421

Conversation

@abhinaykukkadapu
Copy link
Copy Markdown
Contributor

@abhinaykukkadapu abhinaykukkadapu commented Apr 13, 2026

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing test-qnn-models-linux job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and test_passes.py had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:

  1. test-qnn-models-linux — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
  2. test-qnn-testsuite-linux — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
  3. test-qnn-passes-linux — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421

@pytorch-bot
Copy link
Copy Markdown

pytorch-bot bot commented Apr 13, 2026

🔗 Helpful Links

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

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

❗ 1 Active SEVs

There are 1 currently active SEVs. If your PR is affected, please view them below:

❌ 1 New Failure, 2 Unrelated Failures

As of commit 9b2045b with merge base 7e099b4 (image):

NEW FAILURE - The following job has failed:

BROKEN TRUNK - The following jobs failed but were 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.

@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 Apr 13, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync bot commented Apr 13, 2026

@abhinaykukkadapu has exported this pull request. If you are a Meta employee, you can view the originating Diff in D100708421.

@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.

@meta-codesync meta-codesync bot changed the title Add PR-blocking CI for QNN model tests, operator/model testsuite, and pass unit tests Add PR-blocking CI for QNN model tests, operator/model testsuite, and pass unit tests (#18854) Apr 14, 2026
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
@abhinaykukkadapu abhinaykukkadapu force-pushed the export-D100708421 branch 2 times, most recently from 27deb73 to f93b767 Compare April 14, 2026 00:19
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:
Pull Request resolved: pytorch#18854

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
abhinaykukkadapu added a commit to abhinaykukkadapu/executorch that referenced this pull request Apr 14, 2026
… pass unit tests (pytorch#18854)

Summary:
Pull Request resolved: pytorch#18854

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
Summary:

Keep OSS CI and Internal builds in sync to avoid breaking changes when OSS prs land for ET-QNN delegate.

This diff adds two things to prevent future CMake/Buck drift:

1. **Third-party dep shim** (`third_party_libs.bzl` + OSS `BUCK`):
   - `qnn_third_party_dep()` function routes QNN SDK deps to internal
     targets (`fbsource//third-party/qualcomm/qnn/...`) or OSS prebuilt
     targets (`//backends/qualcomm/third-party:...`) based on
     `runtime.is_oss`. Follows the XNNPACK third_party_libs.bzl pattern.
   - OSS BUCK file wraps the externally-downloaded QNN SDK (via
     `QNN_SDK_ROOT` in `.buckconfig`) with prebuilt Buck targets.
   - All `targets.bzl` files updated to use the shim instead of
     hardcoded `fbsource//third-party/...` paths.

2. **Buck build CI job** in `pull.yml`:
   - New `test-qnn-buck-build-linux` job using existing QNN SDK Docker
     image. Downloads SDK via `download_qnn_sdk.py`, writes path to
     `.buckconfig`, runs `buck2 build //backends/qualcomm/...`.
   - If someone adds a file to CMake but not Buck, this job fails.

Differential Revision: D99222617
… pass unit tests (pytorch#18854)

Summary:

OSS PRs that change QNN backend APIs can pass external CI but break internal CI (e.g., D99197179 had hundreds of internal failures). The existing `test-qnn-models-linux` job in pull.yml was an empty placeholder, the backend test suite (operators + models) only ran on nightly, and `test_passes.py` had no external CI coverage.

Wire up three new PR-blocking CI jobs in pull.yml:
1. `test-qnn-models-linux` — runs model export tests (mv2, mv3, dl3) via test_model.sh, replacing the empty placeholder
2. `test-qnn-testsuite-linux` — runs the standardized backend test suite (operators + models with flow_qnn) via _test_backend.yml reusable workflow
3. `test-qnn-passes-linux` — runs QNN AOT pass unit tests (test_passes.py)

Differential Revision: D100708421
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. fb-exported meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Streamline Internal and External CI to ease qualcomm development workflow

1 participant