Skip to content

test(miopen): skip StaticFDBSync for gfx1201 CU counts with no shipped system db - #14931

Merged
yassinsolim merged 2 commits into
developfrom
users/yassinsolim/staticfdbsync-gfx1201-cu-skip
Nov 4, 2026
Merged

yassinsolim merged 2 commits into
developfrom
users/yassinsolim/staticfdbsync-gfx1201-cu-skip

Conversation

@yassinsolim

Copy link
Copy Markdown
Member

ISSUE ID : #13416

Motivation

Smoke/CPU_DBSync_NONE.StaticFDBSync/11 (gfx1201) fails on gfx1201 devices whose CU count has no shipped system db. Only gfx120140 (64 CU) ships. A 56-CU gfx1201 looks for gfx120138.HIP.fdb.txt and the test stops at the file-exists assert in SetupPaths ("Db file does not exist") before it checks any entry. Windows rockrel gfx120X-all nightlies hit this on a 56-CU runner. This is the gfx1201 half of #13416. The open PR #13179 uses the same mechanism for gfx1101.

Technical Details

  • test/gtest/db_sync.cpp: the gfx1201 StaticFDBSync param changes from 0 to 32. Handle::GetMaxComputeUnits reports WGPs on gfx12xx, so 32 is the 64-CU part and maps to gfx120140. The existing check in StaticFDBSync (GetSysDbSelectionCu(arch, real_cu) != num_cu) then skips every other gfx1201 CU count. No new skip logic is added.
  • The CU-mismatch skip now says why it skipped (device CU count and the CU count whose db it selects). It used to print nothing.
  • The param index stays 11, so the gtest name does not change.
  • No CHANGELOG entry, this is test-only.

What could break or is left out:

Test Plan

Built test_db_sync for gfx1201 from this branch (CK for gfx1201 plus MIOpen, ROCm 7.14.1 container, Ubuntu 24.04), and a second binary with only db_sync.cpp reverted to develop as a control. No 56-CU gfx1201 was available, so the CU count was emulated with the rocjitsu KMD interposer (same runner config as run_dbsync_rocjitsu.py, cu_correct_config to 56, 48 and 64 CU).

  1. 56-CU and 48-CU emulated gfx1201 with this branch: StaticFDBSync/11 must skip.
  2. 56-CU emulated gfx1201 with the develop binary: expected to fail on the missing file.
  3. 64-CU emulated gfx1201 with this branch: StaticFDBSync/11 must still run the whole database check.
  4. Real gfx1201 (Radeon AI PRO R9700, 64 CU) with this branch, --gtest_filter='*StaticFDBSync*': only /11 runs, the other 11 params skip.

Test Result

  1. Skipped at 56 CU and at 48 CU. With the filter *StaticFDBSync* at 56 CU all 12 params skip. The message printed is: Skipping gfx1201 param 32: this device reports 28 compute units and selects the system db for 28, which differs from this param.
  2. Develop binary at 56 CU: Db file does not exist ".../gfx120138.HIP.fdb.txt" and [ FAILED ] Smoke/CPU_DBSync_NONE.StaticFDBSync/11, where GetParam() = ("gfx1201", 0). This is the failure from the issue.
  3. 64 CU emulated: Handle CU count: 32 Parameter Value: 32, reads gfx120140.HIP.fdb.txt, [ OK ] Smoke/CPU_DBSync_NONE.StaticFDBSync/11 (552657 ms), 1 test passed.
  4. Real R9700: Handle CU count: 32 Parameter Value: 32, reads gfx120140.HIP.fdb.txt, [ OK ] StaticFDBSync/11 (11882 ms), 1 passed and 11 skipped.

Not run: a real 56-CU gfx1201 (the skip at 56 CU is shown with an emulated CU count), Windows, and the Jenkins or TheRock CI jobs.

Submission Checklist

…d system db

Only the 64-CU (32-WGP) gfx1201 ships a system db (gfx120140). The gfx1201 StaticFDBSync param used num_cu 0, so every gfx1201 device ran it and any other CU count, such as the 56-CU part, failed on the missing gfx120138 file. Pass 32 so the existing GetSysDbSelectionCu check skips other CU counts, the same way gfx942 and gfx950 are handled (#13416).
… not match

The CU-count skip printed nothing, so a skipped gfx1201 param looked the same as a param for another arch. Report the device CU count and the system db CU count it selects.
Copilot AI balanced review requested due to automatic review settings November 3, 2026 02:49
@yassinsolim
yassinsolim requested a review from a team as a code owner November 3, 2026 02:49
@therock-pr-bot

therock-pr-bot Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass PR does not contain code files — Unit Test auto-passed
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

therock-pr-bot Bot commented Nov 3, 2026

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are identified for the test-only gfx1201 database-configuration restriction.

No open issues 🎉

What changed in this PR

This test-only change addresses the gfx1201 missing-database failure in #13416 by limiting StaticFDBSync to the 64-CU configuration with a shipped system database. Runtime database selection is unchanged.

Changes:

  • Sets the gfx1201 parameter to 32 WGPs (64 CUs), using the existing mismatch check to skip other configurations.
  • Adds diagnostic details to CU-mismatch skips.
  • Preserves parameter index 11 and leaves other architecture parameters unchanged.
File Description
projects/​miopen/​test/​gtest/​db_sync.cpp Restricts gfx1201 validation to the shipped database configuration and adds skip diagnostics.

Review effort: Balanced

@yassinsolim
yassinsolim merged commit 349f769 into develop Nov 4, 2026
151 of 160 checks passed
@yassinsolim
yassinsolim deleted the users/yassinsolim/staticfdbsync-gfx1201-cu-skip branch November 4, 2026 15:48
cycheng pushed a commit that referenced this pull request Nov 6, 2026
…d system db (#14931)

ISSUE ID : #13416

## Motivation

`Smoke/CPU_DBSync_NONE.StaticFDBSync/11` (gfx1201) fails on gfx1201
devices whose CU count has no shipped system db. Only `gfx120140` (64
CU) ships. A 56-CU gfx1201 looks for `gfx120138.HIP.fdb.txt` and the
test stops at the file-exists assert in `SetupPaths` ("Db file does not
exist") before it checks any entry. Windows rockrel gfx120X-all
nightlies hit this on a 56-CU runner. This is the gfx1201 half of
#13416. The open PR #13179 uses the same mechanism for gfx1101.

## Technical Details

- `test/gtest/db_sync.cpp`: the gfx1201 `StaticFDBSync` param changes
from `0` to `32`. `Handle::GetMaxComputeUnits` reports WGPs on gfx12xx,
so 32 is the 64-CU part and maps to `gfx120140`. The existing check in
`StaticFDBSync` (`GetSysDbSelectionCu(arch, real_cu) != num_cu`) then
skips every other gfx1201 CU count. No new skip logic is added.
- The CU-mismatch skip now says why it skipped (device CU count and the
CU count whose db it selects). It used to print nothing.
- The param index stays 11, so the gtest name does not change.
- No CHANGELOG entry, this is test-only.

What could break or is left out:
- gfx1201 parts other than 64 CU (for example 56 and 48 CU) no longer
run `StaticFDBSync`. At runtime MIOpen still loads the closest shipped
database for them, and this test no longer checks that data. A 56-CU
check done earlier on this issue (emulated CU count) showed 83,001
Winograd entries from `gfx120140` that are invalid at 56 CU. Shipping a
`gfx120138` pair tuned on a 56-CU part is still the fix for that.
- gfx1100 (70, 80 and 84 CU), gfx1151 and gfx1200 params are unchanged,
so the same gap on those arches is not addressed here.
- #14882 excludes `Smoke/CPU_DBSync_NONE.StaticFDBSync/11` from TheRock
gfx120X CI. Once this and #14882 are in and TheRock picks up this
change, that exclusion can be dropped.

## Test Plan

Built `test_db_sync` for gfx1201 from this branch (CK for gfx1201 plus
MIOpen, ROCm 7.14.1 container, Ubuntu 24.04), and a second binary with
only `db_sync.cpp` reverted to develop as a control. No 56-CU gfx1201
was available, so the CU count was emulated with the rocjitsu KMD
interposer (same runner config as `run_dbsync_rocjitsu.py`,
`cu_correct_config` to 56, 48 and 64 CU).

1. 56-CU and 48-CU emulated gfx1201 with this branch: `StaticFDBSync/11`
must skip.
2. 56-CU emulated gfx1201 with the develop binary: expected to fail on
the missing file.
3. 64-CU emulated gfx1201 with this branch: `StaticFDBSync/11` must
still run the whole database check.
4. Real gfx1201 (Radeon AI PRO R9700, 64 CU) with this branch,
`--gtest_filter='*StaticFDBSync*'`: only `/11` runs, the other 11 params
skip.

## Test Result

1. Skipped at 56 CU and at 48 CU. With the filter `*StaticFDBSync*` at
56 CU all 12 params skip. The message printed is: `Skipping gfx1201
param 32: this device reports 28 compute units and selects the system db
for 28, which differs from this param.`
2. Develop binary at 56 CU: `Db file does not exist
".../gfx120138.HIP.fdb.txt"` and `[ FAILED ]
Smoke/CPU_DBSync_NONE.StaticFDBSync/11, where GetParam() = ("gfx1201",
0)`. This is the failure from the issue.
3. 64 CU emulated: `Handle CU count: 32 Parameter Value: 32`, reads
`gfx120140.HIP.fdb.txt`, `[ OK ] Smoke/CPU_DBSync_NONE.StaticFDBSync/11
(552657 ms)`, 1 test passed.
4. Real R9700: `Handle CU count: 32 Parameter Value: 32`, reads
`gfx120140.HIP.fdb.txt`, `[ OK ] StaticFDBSync/11 (11882 ms)`, 1 passed
and 11 skipped.

Not run: a real 56-CU gfx1201 (the skip at 56 CU is shown with an
emulated CU count), Windows, and the Jenkins or TheRock CI jobs.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/TheRock/blob/main/GOVERNANCE.md#pull-requests.
@assistant-librarian

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants