Skip to content

[smoke] Retarget the generic mode block size tests and move them to smoke-dev - #2480

Merged
ronlieb merged 3 commits into
aomp-devfrom
smoke-generic-block-size-warp
Aug 30, 2026
Merged

[smoke] Retarget the generic mode block size tests and move them to smoke-dev#2480
ronlieb merged 3 commits into
aomp-devfrom
smoke-generic-block-size-warp

Conversation

@lfmeadow

@lfmeadow lfmeadow commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Companion to ROCm/llvm-project#4196, which takes upstream's generic mode block
layout: a pure generic kernel's block is widened by a whole warp for the main
thread rather than by the single thread we added. Seven tests pin the old
geometry and fail the moment that change lands — no-loop-split-2,
no-loop-split-3 and big-jump-loop-split-2/3/4 in smoke, plus
workgroup_size_option1 and workgroup_size_option2 in smoke-limbo. All
seven still print Success; it is only the ConstWGSize in their FileCheck
lines that is stale.

The first two commits retarget them. A 256-thread generic kernel goes from 257
to 288 on wave32 and 320 on wave64, so those checks accept either rather than a
single number; workgroup_size_option1's 1024-thread kernel goes from 961/993
to 1024 on both wave sizes, which collapses its two wave-specific check lines
into one and lets its Makefile stop selecting a prefix; and
workgroup_size_option2's 128-thread kernel goes from 129 to 192. The third
commit moves all seven to smoke-dev, since smoke and smoke-limbo are not
versioned and have to keep passing against the compilers already in the field,
which still produce the old numbers. That follows no-loop-4 and no-loop-7 in
aa1aa88; these can come back in twelve weeks.

Testing

gfx90a (MI210), against a build of ROCm/llvm-project#4196 at c284a1582d8f:

  • all seven pass from smoke-dev after the move
  • before the move, with the retargeting in place, smoke was 321/321 and
    smoke-limbo 70/70

The wave32 values are inferred rather than measured, as the machine has no
gfx10/11/12 part, so the gfx110X and gfx1151 legs of ROCm/llvm-project#4196 are
what will confirm them.

Made with Cursor

…ead's warp

These five tests pin ConstWGSize to 257, the block size a generic kernel got
when the compiler widened it by one thread for the main thread. ROCm/llvm-project#4196
takes the upstream layout, which reserves a whole warp instead, so the same
kernels now report 288 on a wave32 target and 320 on wave64.

Accept either rather than a single number, since the value depends on the
wavefront size of the GPU the test runs on.

Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates AOMP smoke-test FileCheck expectations to accommodate ROCm/llvm-project#4196’s upstream generic mode block layout change, where generic kernels reserve a full warp (not a single thread) for the main thread—changing reported ConstWGSize depending on wavefront size.

Changes:

  • Relax ConstWGSize checks from a single pinned value (257) to accept 288 (wave32) or 320 (wave64) for the affected generic kernels.
  • Apply the updated check across five smoke tests that were previously tied to the old block-size accounting.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/smoke/no-loop-split-3/no_loop_split_3.c Updates the ConstWGSize expectation for the SGN:3 kernel to accept wave32/wave64 outcomes.
test/smoke/no-loop-split-2/no_loop_split_2.c Same ConstWGSize expectation update for the corresponding SGN:3 kernel.
test/smoke/big-jump-loop-split-4/big_jump_loop_split_4.c Adjusts the SGN:3 kernel ConstWGSize check to tolerate both wave sizes.
test/smoke/big-jump-loop-split-3/big_jump_loop_split_3.c Relaxes the SGN:3 kernel ConstWGSize check to `288
test/smoke/big-jump-loop-split-2/big_jump_loop_split_2.c Relaxes the SGN:3 kernel ConstWGSize check to `288

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

…e tests

These two tests pin ConstWGSize to 257 for their generic kernels, and to
961/993 and 129 for the kernels carrying an explicit
-fopenmp-gpu-threads-per-team. ROCm/llvm-project#4196 reserves a whole warp
for the main thread rather than a single thread, so the same kernels now
report 320, 1024 and 192 on a wave64 target.

Accept either wave size wherever the value depends on it. The 1024-thread
kernel in option1 clamps to 1024 on both wave sizes, so its two wave-specific
CHECK lines collapse into one and the Makefile no longer has to select a
check prefix.

Co-authored-by: Cursor <cursoragent@cursor.com>
@lfmeadow

Copy link
Copy Markdown
Contributor Author

@ronlieb could you merge this when you get a chance, if you haven't already?

ROCm/llvm-project#4196 fails CI without it. The !PSDB run on that PR (gfx90a) and the gfx94X smoke shards in Actions both report the same seven tests, and this PR now covers all of them: the five in smoke plus smoke-limbo/workgroup_size_option1 and workgroup_size_option2, which I just added and which pin the same block size.

All seven pass locally on an MI210 against a build of #4196: smoke 321/321 and smoke-limbo 70/70.

@dhruvachak dhruvachak 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.

The changes themselves look good to me.

One concern is that now the older compilers will fail these tests. Do we have proper tagging of these tests so that older compilers see the older versions of these tests? Otherwise, these tests may have to be moved to smoke-dev. @ronlieb What do you think?

@ronlieb

ronlieb commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

The changes themselves look good to me.

One concern is that now the older compilers will fail these tests. Do we have proper tagging of these tests so that older compilers see the older versions of these tests? Otherwise, these tests may have to be moved to smoke-dev. @ronlieb What do you think?

i think moving to *-dev is next step.
we need to remember to move them back in 12 weeks

smoke and smoke-limbo are not versioned: they have to pass against 7.14.x,
10.0, 10.1 and whatever else is current, so a test whose expected value moved
with the compiler cannot stay there. The two preceding commits retargeted these
seven at the warp-reserving block size ROCm/llvm-project#4196 produces, which
makes them fail on every compiler that predates it.

Move them to smoke-dev, which does not block, following no-loop-4 and no-loop-7
in aa1aa88. They come back in twelve weeks, once the compilers in the field
produce the new geometry.

Co-authored-by: Cursor <cursoragent@cursor.com>
@lfmeadow

Copy link
Copy Markdown
Contributor Author

Good point on versioning — done in 5755adb2. All seven now live in smoke-dev rather than smoke and smoke-limbo, following no-loop-4 and no-loop-7 in aa1aa88, so nothing blocking pins a value that only the new compiler produces. Happy to move them back in twelve weeks.

The five from smoke are big-jump-loop-split-{2,3,4} and no-loop-split-{2,3}; the two from smoke-limbo are workgroup_size_option{1,2}. All seven pass from their new home against a build of ROCm/llvm-project#4196 on an MI210.

I left bin/rocm-test/passes/5.5.0/smoke-limbo/smoke-limbo_passes.txt alone, since it still lists the no-loop tests that moved out in aa1aa88 and looks like a frozen per-release record. Say the word if it should be updated.

@lfmeadow lfmeadow changed the title [smoke] Accept the generic mode block size that reserves the main thread's warp [smoke] Retarget the generic mode block size tests and move them to smoke-dev Aug 30, 2026
@ronlieb
ronlieb merged commit 83200c4 into aomp-dev Aug 30, 2026
1 check passed
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.

4 participants