Skip to content

Fix LinearSolveAutotune printout to use correct benchmark size ranges #691

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

ChrisRackauckas-Claude
Copy link
Contributor

Summary

  • Fixed the printout in LinearSolveAutotune.jl to use the actual benchmark size categories instead of hardcoded ranges
  • The issue summary now correctly shows results organized by the same sizing used in the benchmark

Problem

The autotune printout was using hardcoded ranges (0-128, 128-256, 256-512, 512+) that didn't align with the actual benchmark size categories defined in get_benchmark_sizes():

  • :tiny - 5:5:20
  • :small - 20:20:100
  • :medium - 100:50:300
  • :large - 300:100:1000
  • :big - 10000:1000:100000

Solution

Updated categorize_results() in benchmarking.jl to use the proper size ranges with descriptive labels:

  • "tiny (5-20)"
  • "small (20-100)"
  • "medium (100-300)"
  • "large (300-1000)"
  • "big (10000+)"

Also updated the telemetry formatting in telemetry.jl to:

  • Handle the new range format when parsing categories
  • Sort ranges in logical order (tiny → small → medium → large → big) instead of alphabetically

Test Plan

Created a test script that verifies the categorization now works correctly with the proper size ranges.

Example output now shows:

#### Recommendations for Float64

| Size Range | Best Algorithm |
|------------|----------------|
| tiny (5-20) | TestAlg |
| small (20-100) | TestAlg |
| medium (100-300) | AlgB |
| large (300-1000) | AlgB |
| big (10000+) | TestAlg |

🤖 Generated with Claude Code

- Updated categorize_results() to use actual benchmark size categories (tiny, small, medium, large, big) instead of hardcoded ranges (0-128, 128-256, etc.)
- Added proper size range labels with cutoffs: tiny (5-20), small (20-100), medium (100-300), large (300-1000), big (10000+)
- Updated telemetry formatting to handle new range format and sort them in logical order
- Now the issue printout correctly reflects the same sizing used in the benchmark
@ChrisRackauckas ChrisRackauckas merged commit 08fc817 into SciML:main Aug 8, 2025
98 of 117 checks 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.

2 participants