Skip to content

[CI] Parity auto-trigger: collect scheduled architectures including Preview - #3397

Closed
ethanwee1 wants to merge 4 commits into
ROCm:ethanwee/parity-rocm-previewfrom
ethanwee1:ethanwee/parity-auto-multiarch
Closed

[CI] Parity auto-trigger: collect scheduled architectures including Preview#3397
ethanwee1 wants to merge 4 commits into
ROCm:ethanwee/parity-rocm-previewfrom
ethanwee1:ethanwee/parity-auto-multiarch

Conversation

@ethanwee1

@ethanwee1 ethanwee1 commented Jul 7, 2026

Copy link
Copy Markdown

Summary

Expands auto-parity beyond trunk/MI350 and now includes the daily scheduled rocm-preview lane. A SHA produces one combined report after every in-scope architecture that ran is ready.

This PR is stacked on #3406 so its branch has the preview config it consumes. After #3406 lands, retarget this PR to develop.

Changes

  • Discover candidate SHAs from trunk and scheduled MI300/MI200/Navi31/Preview workflows.
  • Include preview in ARCHS_IN; remove the retired nightly exclusion.
  • Wait for scheduled workflows to catch up before dispatching a combined report.
  • Exclude configs that lack a CUDA baseline rather than emitting false all-MISSED output.
  • Derive ROCm shard counts from the resolved workflow to support fallback topologies.

Validation

Landing order

  1. [CI] Parity: replace ROCm nightly with scheduled Preview #3406
  2. [CI] Parity: discover job topology from workflow YAML #3535 and [CI] Parity: fix upstream job links #3536 downloader/link foundations
  3. this PR, retargeted to develop

Auto-parity was trunk-scoped (mi350 only). mi300/mi200/navi31 run in their
own scheduled upstream workflows on their own SHAs at a different cadence,
so the trunk-push scan never reached them.

- Discover candidate SHAs from both trunk.yml pushes and the scheduled
  per-arch workflows (fetch_scheduled_commits / fetch_candidate_commits),
  deduped newest-first; a 40-hex guard drops stray non-row output.
- Hold back SHAs newer than the newest scheduled run so a lagging
  mi300/mi200/navi batch can still join that SHA's report, yielding ONE
  combined parity report per SHA (parity.yml's matrix already emits a
  per-arch artifact plus a merged summary) once every arch that ran has
  finished. When no scheduled runs exist, nothing is held (mi350/trunk
  behaves exactly as before).
- Expand ARCHS_IN to mi350 mi300 mi200 navi31.
- Per-config CUDA-baseline gating: a SHA whose CUDA jobs for a test config
  did not run (e.g. a failed trunk run that never launched CUDA default)
  has no baseline for that config, so exclude just that config from the
  dispatch (via parity.yml's exclude_* inputs) instead of emitting a bogus
  all-MISSED column, and drop its ROCm shards from the completion gate.

No parity_job_config.json change: mi300 has no fallback; its default/
distributed/inductor come from rocm-mi300 / periodic-rocm-mi300 /
inductor-rocm-mi300, which run together on one scheduled SHA.
@rocm-repo-management-api

rocm-repo-management-api Bot commented Jul 7, 2026

Copy link
Copy Markdown

Jenkins build for 639f16e2d55b12f21a3892f7887fbfcda85c0306 commit finished as FAILURE
Links: Pipeline Overview / Build artifacts / Test Results

Shard counts were hardcoded (config value or literals), so when an arch
falls back to a different workflow whose sharding differs, the constructed
"(config, i, N)" job/artifact keys miss the real jobs. Concretely mi200's
default/inductor workflows are dormant upstream and fall back to
trunk-rocm-sandbox, which shards default into 10 (config says 6) and
inductor into 4 (config says 2) - so every key "DOES NOT EXIST IN JOBS"
and the mi200 shard of a combined auto report fails.

Add derive_shard_count(), which reads the actual shard total from the
resolved run's job names, and use it for ROCm default/distributed/inductor
(falling back to the config value only when no matching jobs are found).
This unblocks mi200 in the multi-arch auto-trigger.
@rocm-repo-management-api

rocm-repo-management-api Bot commented Jul 7, 2026

Copy link
Copy Markdown

Jenkins build for 6b0eed6a8fa73fb298d5c6372b61ba858fb374dc commit finished as ABORTED
Links: Pipeline Overview / Build artifacts / Test Results

@ethanwee1
ethanwee1 requested a review from jithunnair-amd July 16, 2026 15:26
@jithunnair-amd

Copy link
Copy Markdown
Collaborator

I'd like to wait for the changes where it looks at the yaml file to get the job names and shard counts, so this one will be more robust.

Treat the daily rocm-preview lane as a scheduled architecture source and remove the retired nightly exclusion.
Stack pytorch#3397 on pytorch#3406 so scheduled Preview discovery reads the matching preview config on its own branch.
@ethanwee1 ethanwee1 changed the title [CI] Parity auto-trigger: open up mi300/mi200/navi31 collection [CI] Parity auto-trigger: collect scheduled architectures including Preview Aug 11, 2026
@ethanwee1
ethanwee1 changed the base branch from develop to ethanwee/parity-rocm-preview August 11, 2026 14:59
@ethanwee1

Copy link
Copy Markdown
Author

Superseded by clean current-develop Preview auto-trigger replacement #3555. The replacement keeps this PR's scheduled multi-arch behavior and adds daily rocm-preview discovery.

@ethanwee1 ethanwee1 closed this Aug 11, 2026
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