Skip to content

Enable QNN unit tests on Windows ARM64 internal-symbol builds - #838

Draft
tzuhsuanwei wants to merge 3 commits into
dev/yuhuchua/windows-qnn-ut-internal-symbolsfrom
dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols
Draft

tzuhsuanwei wants to merge 3 commits into
dev/yuhuchua/windows-qnn-ut-internal-symbolsfrom
dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols

Conversation

@tzuhsuanwei

@tzuhsuanwei tzuhsuanwei commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Enable the QNN internal-symbol unit-test build on Windows ARM64.

This stacks on #831 and adds the ARM64 build path plus a Draft-PR workflow: build on an x64 Windows builder, then run the QNN unit suite on a Windows ARM64 test runner.

CI scope

  • Windows ARM64 only
  • runs the existing mainline QnnUnit_* component/unit suite
  • supports an optional supplied snapshot-golden artifact for manual validation
  • no Linux jobs or shared golden-store publishing changes

Windows ARM64 test coverage

The original ARM64 CI result was 861 tests: 858 passed, 3 skipped. After the changes below, the pre-rebase Windows ARM64 CI result was 863 tests: 861 passed, 2 skipped.

  • SetupBackend_HTP_WithHtpArch_ReportsPlatformArch

    • Keeps the configured V73 assertion on x86, where the HTP emulator reports the configured arch.
    • On ARM64, verifies that GetHtpArch() returns a discovered physical HTP arch (!= NONE) instead of assuming V73.
  • ValidateCompatibilityInfo_MalformedOnArm64_LogsDeserializationFailureAndReturnsNotApplicable

    • Adds an ARM64 parser-path test for malformed compatibility info.
    • Verifies that ARM64 reaches deserialization and returns EP_NOT_APPLICABLE, rather than taking the x86 platform-skip path.
  • HTP host device discovery

    • Retains the existing CPU-host case as an ARM64 skip because the CPU QNN backend is only enabled on the x86 coverage host.
    • Adds GetSupportedDevices_HtpHost_CreatesEpDevice for ARM64, verifying that a Qualcomm NPU/HTP host device creates an EP device.

Rebase, Accuracy, and Snapshot validation

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

The supplied-golden validation (run 36551637367) 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).
  • All 18 Accuracy cases ran in the Windows ARM64 tier gate; none were skipped.
  • 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 retained in the CI log and the remaining tier run validates correctness through Accuracy / Component / Integration: 900 passed, 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 Windows ARM64 golden generated from the matching source/config is required before the 18 snapshot comparisons can be expected to match exactly.

@tzuhsuanwei tzuhsuanwei changed the title Enable QNN unit tests on Windows ARM64 internal-symbol builds Enable Phase 4 QNN tier tests on Windows ARM64 Sep 16, 2026
@tzuhsuanwei tzuhsuanwei changed the title Enable Phase 4 QNN tier tests on Windows ARM64 Enable QNN tier tests on Windows ARM64 Sep 16, 2026
@tzuhsuanwei tzuhsuanwei changed the title Enable QNN tier tests on Windows ARM64 Enable QNN unit tests on Windows ARM64 internal-symbol builds Sep 16, 2026
@tzuhsuanwei
tzuhsuanwei changed the base branch from dev/yuhuchua/migrate-clip-ut to main September 16, 2026 07:47
@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols branch 4 times, most recently from 1cc5c29 to 4f43059 Compare September 16, 2026 08:37
@tzuhsuanwei
tzuhsuanwei changed the base branch from main to dev/yuhuchua/windows-qnn-ut-internal-symbols September 16, 2026 08:37
@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols branch 5 times, most recently from c0049d4 to 1f38553 Compare September 17, 2026 09:37
@yuhuchua-qti
yuhuchua-qti force-pushed the dev/yuhuchua/windows-qnn-ut-internal-symbols branch from de0bfab to 160e747 Compare September 23, 2026 04:17
@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols branch 3 times, most recently from 53fd2b1 to c5ab998 Compare September 23, 2026 09:45
@yuhuchua-qti
yuhuchua-qti force-pushed the dev/yuhuchua/windows-qnn-ut-internal-symbols branch from 160e747 to 8648fff Compare September 24, 2026 10:07
@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/windows-arm64-qnn-ut-internal-symbols branch from c5ab998 to 4cf8c83 Compare September 29, 2026 09:49

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