Repository navigation
Build CTS tests in Release with assertions enabled - #53
Merged
Merged
Conversation
Groverkss
marked this pull request as ready for review
October 5, 2026 18:13
kuhar
approved these changes
Oct 6, 2026
1 task done
kuhar
pushed a commit
to ROCm/rocm-systems
that referenced
this pull request
Oct 7, 2026
## Motivation Rocjitsu CI still pins a corpus revision that builds most CTS tests without optimization. Pick up ROCm/rocjitsu-test-corpus#53 so CI uses Release builds with assertions enabled while preserving required integer instruction coverage. ## Technical Details Bump the HIP/DBT corpus pin from `cc781dd88cabd1638d1beeb4539c521ccf27de60` to `387502e864cce3f0490a967e9a185b4922a5e7de` in both the automatic checkout fallback and the manual-dispatch default. Update the pin's date comment. The pinned revision includes the wave32 `mbcnt` and gfx1250 comparison optimization overrides and the strengthened `mbcnt_hi` coverage requirement. The bump also includes intervening corpus changes, including the newer gfx1250 ISA coverage and runtime CTS additions; see the [corpus commit range](ROCm/rocjitsu-test-corpus@cc781dd...387502e). Temporarily exclude all 37 gfx1250 CTS cases introduced by ROCm/rocjitsu-test-corpus#41 (22 integer cases) and ROCm/rocjitsu-test-corpus#42 (15 memory cases), including their coverage checks. The existing skip configuration applies to both the initial run and failed-test retries. Reason: These tests are really slow and haven't been verified for their usefulness. Someone needs to investigate these before they are enabled ## Issue Tracking ISSUE ID: ROCm/rocjitsu-test-corpus#53 ## Test Plan - Parse the workflow YAML and verify the dispatch default and automatic checkout pin both select the merged corpus revision. - Run the repository pre-commit checks on the changed workflow and `git diff --check`. - Exercise the updated pin through this PR's rocjitsu corpus workflow. ## Test Result Local YAML/pin validation, applicable pre-commit checks, and whitespace checks passed. A targeted pytest run confirms all 37 integer/memory cases are skipped before build or execution (37 skipped, 43 deselected). ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
anujshuk-amd
pushed a commit
to ROCm/rocm-systems
that referenced
this pull request
Oct 12, 2026
## Motivation Rocjitsu CI still pins a corpus revision that builds most CTS tests without optimization. Pick up ROCm/rocjitsu-test-corpus#53 so CI uses Release builds with assertions enabled while preserving required integer instruction coverage. ## Technical Details Bump the HIP/DBT corpus pin from `cc781dd88cabd1638d1beeb4539c521ccf27de60` to `387502e864cce3f0490a967e9a185b4922a5e7de` in both the automatic checkout fallback and the manual-dispatch default. Update the pin's date comment. The pinned revision includes the wave32 `mbcnt` and gfx1250 comparison optimization overrides and the strengthened `mbcnt_hi` coverage requirement. The bump also includes intervening corpus changes, including the newer gfx1250 ISA coverage and runtime CTS additions; see the [corpus commit range](ROCm/rocjitsu-test-corpus@cc781dd...387502e). Temporarily exclude all 37 gfx1250 CTS cases introduced by ROCm/rocjitsu-test-corpus#41 (22 integer cases) and ROCm/rocjitsu-test-corpus#42 (15 memory cases), including their coverage checks. The existing skip configuration applies to both the initial run and failed-test retries. Reason: These tests are really slow and haven't been verified for their usefulness. Someone needs to investigate these before they are enabled ## Issue Tracking ISSUE ID: ROCm/rocjitsu-test-corpus#53 ## Test Plan - Parse the workflow YAML and verify the dispatch default and automatic checkout pin both select the merged corpus revision. - Run the repository pre-commit checks on the changed workflow and `git diff --check`. - Exercise the updated pin through this PR's rocjitsu corpus workflow. ## Test Result Local YAML/pin validation, applicable pre-commit checks, and whitespace checks passed. A targeted pytest run confirms all 37 integer/memory cases are skipped before build or execution (37 skipped, 43 deselected). ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The CTS pytest adapter leaves the CMake build type unset, so most HIP tests compile without optimization. In ROCm/rocm-systems#12790, the ASan/UBSan simulator corpus step took 37m32s, dominated by FPSAN software emulation of small matrix operations.
Configure CTS with
CMAKE_BUILD_TYPE=Releaseand keep test assertions enabled withadd_compile_options(-UNDEBUG). This uses the toolchain's standard optimized configuration without overwritingCMAKE_HIP_FLAGS. Existing per-target optimization settings remain effective. Keep the two wave32mbcnttargets and the gfx1250 comparison target unoptimized so their required instructions survive compilation; requirev_mbcnt_hi_u32_b32alongsidev_mbcnt_lo_u32_b32in the gfx1250 coverage manifest. Test inputs, semantic variants, and rocjitsu sanitizer settings are unchanged.Validation:
mbcntbinary.v_mbcnt_hi_u32_b32in each wave32 binary, versus none before the fix. RDNA4 wave32 and wave64 runtime tests passed.10.1.0a20260831; the original unoptimized comparison test also timed out in this environment.NDEBUGafterward to preserve assertions.Local execution times:
fpsan_wmma_gfx11_acc16_testfpsan_wmma_gfx11_tied_bf16_testInitial values are single unoptimized runs; Release values are medians of five runs with assertions enabled. Measurements use the same simulator (
b7fe18cf7e28a72eb0d811c66f5509fdc0365228), ROCm SDK10.1.0a20260831, sources, and machine; timings exclude compilation.We also reproduced the optimization benefit in a CI experiment, which passed all four lanes. Compared with the original run, complete simulator corpus step durations, including compilation, fell from 37m32s to 8m12s for ASan/UBSan, 20m10s to 10m01s for GCC UBSan, and 9m25s to 7m21s for the Release simulator lane.