Skip to content

fix(rocprofiler-sdk): stabilize gfx12 CI and profiling tests - #11732

Merged
arvindcheru merged 18 commits into
developfrom
users/venkat1361/gfx12-rocprofiler-tests-fix
Oct 19, 2026
Merged

arvindcheru merged 18 commits into
developfrom
users/venkat1361/gfx12-rocprofiler-tests-fix

Conversation

@venkat1361

@venkat1361 venkat1361 commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

CI runs on Navi4/gfx12 exposed failures caused by zero counter values in AUTO performance mode, interference between concurrent GPU tests, unsupported or hidden GPU agents, and timestamp adjustments that could place dispatch completion after correlation-ID retirement.

This PR moves the SLES 15.6 job to a Navi4 runner and addresses these failures while preserving strict validation of available counters and replay structure.

Technical Details

  • Run SLES 15.6 CI on gfx12.
  • Handle zero counters in AUTO mode. Query GPU 0’s performance level only for gfx11* and gfx12*. Skip the affected Perfetto counter checks when all collected counters are zero.
  • Restrict the buffered counter sample to GPUs visible through both HSA and HIP
  • Preserve measured duration when an interval fits inside the CPU window; otherwise, clamp both endpoints. This prevents correction from moving completion beyond the CPU completion handler and correlation retirement.
  • Adopt the shared integration execute/validate helpers for kernel replay, replay performance, and kernel-trace duration tests. Execution inherits serial scheduling, and performance validation runs through pytest with its existing limits.
  • Disable unstable HIP graph-bubbles tests on gfx1200 and gfx1201, extending the existing gfx1151 exclusion.

Issue Tracking

Issue ID: #10876

Test Plan

Existing test and new test.

Test Result

Pass

Submission Checklist

@github-actions github-actions Bot added the github actions Pull requests that update GitHub Actions code label Sep 16, 2026
@therock-pr-bot

therock-pr-bot Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

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

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

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.

🔵 Needs a closer look

It combines production timestamp behavior changes with extensive GPU-specific test and CI restructuring that requires hardware validation.

Pull request overview

Improves rocprofiler-sdk reliability and test coverage on gfx120X systems.

Changes:

  • Handles zero counters under AUTO GPU performance mode.
  • Migrates replay tests to standardized integration helpers and adds gfx120X CI.
  • Corrects profiling timestamps and skips unsupported GPU configurations.
File summaries
File Description
tracing-plus-counter-collection/validate.py Allows zero AUTO-mode counters.
tracing-plus-counter-collection/conftest.py Detects AUTO performance mode.
kernel-trace-duration/CMakeLists.txt Migrates integration test registration.
kernel-replay/validate.py Separates and conditionally skips counter checks.
kernel-replay/validate_perf.py Converts validation to pytest.
kernel-replay/conftest.py Adds performance options and parametrization.
kernel-replay/CMakeLists.txt Migrates replay integration tests.
hip-graph-bubbles-test/CMakeLists.txt Disables unsupported gfx120X tests.
pytest_utils/__init__.py Adds GPU performance-level detection.
kernel-replay-perf/CMakeLists.txt Serializes performance integration tests.
profiling_time.hpp Clamps skewed timestamps while preserving duration.
timestamp.cpp Tests profiling-time bounds.
metrics_test.cpp Handles GPUs without counter support.
kernel_replay_performance.md Updates generated test name.
counter_collection/CMakeLists.txt Serializes the functional counter test.
buffered_client.cpp Filters GPUs by runtime visibility.
rocprofiler-sdk-continuous_integration.yml Adds a gfx120X CI runner.
Review details
  • Files reviewed: 17/17 changed files
  • Comments generated: 0
  • Review effort level: Balanced

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

@venkat1361 venkat1361 changed the title fix(rocprofiler-sdk): fix att and counter collection tests on gfx120X fix(rocprofiler-sdk): stabilize gfx12 CI and profiling tests Sep 17, 2026
@venkat1361
venkat1361 marked this pull request as ready for review September 17, 2026 17:22
@venkat1361
venkat1361 requested review from a team as code owners September 17, 2026 17:22
Comment thread projects/rocprofiler-sdk/tests/rocprofv3/kernel-replay/validate.py Outdated
Comment thread projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/profiling_time.hpp Outdated

@ApoKalipse-V ApoKalipse-V 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.

Approved except for the clock part. That I'd like the owner of that code to review.

Comment thread projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/profiling_time.hpp Outdated
Comment thread projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tracing/profiling_time.hpp Outdated
Comment thread projects/rocprofiler-sdk/tests/rocprofv3/hip-graph-bubbles-test/CMakeLists.txt Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage Report

Code Coverage Report

Tests Only

code coverage tests.png

Samples Only

code coverage samples.png

Tests + Samples

code coverage all.png

@jbonnell-amd jbonnell-amd left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approved for the .github/** changes

@venkat1361
venkat1361 force-pushed the users/venkat1361/gfx12-rocprofiler-tests-fix branch from f9d124c to 0b3dc99 Compare October 16, 2026 17:55

@ApoKalipse-V ApoKalipse-V 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.

Re-approve

@arvindcheru

Copy link
Copy Markdown
Contributor

Override Multi-Arch CI Summary only, at f7def57: rocm-libraries#13766, rocm-libraries#13414

@arvindcheru
arvindcheru merged commit f94e399 into develop Oct 19, 2026
851 of 881 checks passed
@arvindcheru
arvindcheru deleted the users/venkat1361/gfx12-rocprofiler-tests-fix branch October 19, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation github actions Pull requests that update GitHub Actions code organization: ROCm project: rocprofiler-sdk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Issue] Linux : rocprofiler-sdk fails 5 tests — counter_collection empty, thread-trace triple-buffer timeouts, kernel-trace bubble threshold

6 participants