Skip to content

[rocSOLVER] Update rocsolver tests to measure median time#2455

Merged
AGonzales-amd merged 9 commits into
ROCm:developfrom
AGonzales-amd:rocsolver-timer
Nov 13, 2025
Merged

[rocSOLVER] Update rocsolver tests to measure median time#2455
AGonzales-amd merged 9 commits into
ROCm:developfrom
AGonzales-amd:rocsolver-timer

Conversation

@AGonzales-amd
Copy link
Copy Markdown
Contributor

Motivation

The mean of gpu runtimes is too sensitive to outliers. This makes the results of rocsolver-bench inconsistent between runs on sensitive hardware. This PR changes the tests to compute the median instead of the mean.

Technical Details

Added rocsolver_timer class to control the behavior of collecting and combining execution times in the tests.

Test Plan

Compare before and after benchmark results (sytrd).

Test Result

No significant difference between mean and median. Therefore, the new time captured is representative of what we had prior.

Submission Checklist

@AGonzales-amd AGonzales-amd added the noOptimizations Disable optimized kernels for small sizes for some routines label Nov 4, 2025
@AGonzales-amd AGonzales-amd requested a review from a team as a code owner November 4, 2025 17:51
Comment thread projects/rocsolver/clients/common/misc/rocsolver_timer.hpp Outdated
Copy link
Copy Markdown
Contributor

@john00003 john00003 left a comment

Choose a reason for hiding this comment

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

Looks good, thanks Angelo!

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Nov 6, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@             Coverage Diff              @@
##           develop    #2455       +/-   ##
============================================
+ Coverage    64.05%   75.25%   +11.21%     
============================================
  Files            8      321      +313     
  Lines         3001    31198    +28197     
  Branches       445     4708     +4263     
============================================
+ Hits          1922    23478    +21556     
- Misses         861     4887     +4026     
- Partials       218     2833     +2615     
Flag Coverage Δ
hipFFT ?
rocSOLVER 75.25% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 329 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

@tfalders tfalders left a comment

Choose a reason for hiding this comment

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

Looks good! Thanks @AGonzales-amd. Doesn't have to be this PR, but we should also look at using hip events to gather the timing data, and adding an argument to rocsolver-bench to select which averaging method to use.

Comment thread projects/rocsolver/clients/common/misc/rocsolver_timer.hpp Outdated
@AGonzales-amd AGonzales-amd merged commit 3d08d71 into ROCm:develop Nov 13, 2025
18 checks passed
assistant-librarian Bot pushed a commit to ROCm/rocSOLVER that referenced this pull request Nov 13, 2025
[rocSOLVER] Update rocsolver tests to measure median time
 (#2455)

## Motivation
The mean of gpu runtimes is too sensitive to outliers. This makes the
results of `rocsolver-bench` inconsistent between runs on sensitive
hardware. This PR changes the tests to compute the median instead of the
mean.

## Technical Details
Added `rocsolver_timer` class to control the behavior of collecting and
combining execution times in the tests.

## Test Plan
Compare before and after benchmark results (sytrd).

## Test Result
No significant difference between mean and median. Therefore, the new
time captured is representative of what we had prior.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
ammallya pushed a commit that referenced this pull request Feb 3, 2026
* change cshuffle size

* added mxfp4 moe async buffer loading without B preshuffle

* added mx moe B shuffling + scale shuffling (async loads)

* minor fix

---------

Co-authored-by: mtgu0705 <mtgu@amd.com>

[ROCm/composable_kernel commit: 7998ae8]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

noOptimizations Disable optimized kernels for small sizes for some routines organization: ROCm project: rocsolver

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants