Skip to content

Remove validated ORT core patches - #882

Open
tzuhsuanwei wants to merge 1 commit into
mainfrom
dev/tzuhwei/remove-ort-core-patches-0002-0005
Open

tzuhsuanwei wants to merge 1 commit into
mainfrom
dev/tzuhwei/remove-ort-core-patches-0002-0005

Conversation

@tzuhsuanwei

@tzuhsuanwei tzuhsuanwei commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This PR removes ORT-core patches 0002, 0004, and 0005 so the QNN plugin can build against a cleaner, unmodified upstream ORT source tree.

Patch 0002 previously changed ORT core solely to prevent the model runner from executing three QNN HTP RoiAlign test directories. The upstream plugin runner accepts a suite directory but has no per-case skip argument. Removing 0002 without replacement would make the normal full node-suite workflow execute est_roialign_mode_max, which is currently unsupported on QNN HTP and returns Not implemented.

Therefore this PR moves that test-selection policy out of ORT core and into a QNN-owned Python filter. Windows and Linux launchers call the filter before invoking the upstream plugin runner; Appium/QDC applies it before uploading the node suite to the device. The runner receives a temporary filtered suite, so ORT itself remains pristine and no longer needs a QNN-specific skip patch. This preserves the prior test workflow while keeping the ORT patch chain clean.

  • Remove 0002, 0004, and 0005 from the FetchContent patch chain and delete their patch files.
  • Re-home 0002's former RoiAlign exclusions in the QNN test harness, not ORT core.

Final patch disposition

Patch Decision Evidence / removal gate
0001 plugin EP runner Keep QNN still depends on the local plugin-EP runner implementation.
0002 RoiAlign HTP exclusions Remove Upstream runner has no individual-case skip CLI. QNN filter explicitly excludes the three former cases before runner invocation and logs reasons.
0003 arm64ReproDir Keep Upstream arm64x.cmake unconditionally overwrites arm64ReproDir; outer QNN CMake cannot fix it after ORT configures. Keep until upstream supplies a cache variable/override hook and ARM64X repro paths validate.
0004 monolithic LSTM option Remove Plugin runner forwards arbitrary key/value provider options; explicit enumeration is redundant.
0005 MSVC C4875 Remove Pinned ORT v1.29 contains upstream GSL C4875 root-cause fix.
0006 No action No patch file or application reference exists.
0007 Android QNN_LIB_FILES copy Keep Android Java/AAR path can still invoke cmake -E copy with an empty source list.
0008 rank-5/6 HandleReshapeSplit Keep QNN SpaceToDepth/ChannelShuffle fusions need hardening for the optimizer-produced form.

Validation

  • Fresh ARM64 source build after moving prior build tree aside.
  • Fresh ort_core patch stamp omits 0002; fresh ORT TestCase.cc/main.cc contain no RoiAlign exclusions.
  • Fresh ARM64 runner and matching DLLs deployed to V81.
  • V81 HTP run with backend_type|htp and htp_arch|81: Models 1, Succeeded 1, Not implemented 0, Failed 0.
  • Filter staging suite excludes test_roialign_aligned_false, test_roialign_aligned_true, and test_roialign_mode_max while retaining test_abs.
  • Python 3.8 filter smoke test passed; Windows launcher PowerShell syntax passed.
  • Repository lint was run before the PR reduction/reinstatement; this PR's restored filter code is the same validated implementation.

@tzuhsuanwei
tzuhsuanwei force-pushed the dev/tzuhwei/remove-ort-core-patches-0002-0005 branch 4 times, most recently from 25c82fa to e8e89ae Compare September 29, 2026 08:46
@qti-yuduo
qti-yuduo force-pushed the dev/tzuhwei/remove-ort-core-patches-0002-0005 branch from e8e89ae to 5de73e0 Compare September 29, 2026 16:20

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