Skip to content

Enable QNN unit tests on Linux ARM64 internal-symbol builds - #861

Draft
tzuhsuanwei wants to merge 3 commits into
mainfrom
dev/tzuhwei/linux-arm64-qnn-ut-internal-symbols
Draft

tzuhsuanwei wants to merge 3 commits into
mainfrom
dev/tzuhwei/linux-arm64-qnn-ut-internal-symbols

Conversation

@tzuhsuanwei

@tzuhsuanwei tzuhsuanwei commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Enable the QNN internal-symbol unit-test build on Linux ARM64 (HTP V68) without coverage instrumentation.

This adds a Linux ARM64 Draft-PR workflow that builds and runs the tier-first QNN flow, followed by the existing legacy QNN catch-all path.

CI scope

  • Linux ARM64 only
  • QnnUnit_* / QnnInteg_*, plus the legacy *Qnn* catch-all path
  • no Windows jobs or shared golden-store publishing changes

Rebase, Accuracy, and Snapshot validation

This branch includes the Phase 3 tier infrastructure from #831 (160e747423), which enables QNN_EP_ACCURACY_UT for internal-symbol builds.

The supplied-golden validation (run 36551633453) reused the Linux ARM64 build artifact and passed:

  • The Accuracy listing contains all 18 current Clip Accuracy cases in four suites: QnnUnit_Clip_AccuracyTest (7), QnnUnit_Clip_Accuracy_QDQFloatTest (5), QnnUnit_Clip_Accuracy_QDQQuantTest (4), and QnnUnit_Clip_Accuracy_FoldedConstTest (2).
  • On the real HTP V68 runner, Clip_int32 and all 9 QDQ Accuracy cases run and pass. The remaining 8 float/FP16-path cases are explicit V68 capability skips.
  • The supplied golden artifact was downloaded successfully. All 18 Snapshot / SessionSnapshot cases were executed (2 SessionSnapshot and 16 Snapshot), and all reported QNN_SNAPSHOT_DRIFT; none were QNN_GOLDEN_ABSENT.
  • Snapshot drift is reported in the CI log and routes to the Accuracy gate. The non-snapshot tier run completed 914 passed, 11 skipped, 0 failed; legacy completed 1411 passed, 1269 skipped, 0 failed.

The supplied golden was produced from a different source baseline, so this result validates the drift-to-Accuracy route rather than snapshot equality. A Linux ARM64 golden generated from the matching source/config is required before the 18 snapshot comparisons can be expected to match exactly.

Linux ARM64 coverage

  • The internal-symbol build links onnxruntime_provider_test with the QNN EP and enables internal symbol access only in this test mode.
  • All 19 Clip component tests are listed.
  • All 9 QnnInteg_OrtApiTest cases run and pass. Conv and ConvTranspose use their existing float path on non-ARM64 and a V68-compatible U8 QDQ path on Linux ARM64.

@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/linux-arm64-qnn-ut-internal-symbols branch 10 times, most recently from b811408 to a9efeeb Compare September 29, 2026 05:33
@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/linux-arm64-qnn-ut-internal-symbols branch from a9efeeb to e49e26b Compare September 29, 2026 09:48

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants