Skip to content

SEP 46: Calibrating the native backend to its machine #579

Closed

Description

@jtravs

Tracking issue for SEP 46 — Calibrating the native CPU backend to its machine (Draft).

The native backend's CPU settings are constants: about seventeen operation thresholds, the medium width, the compact team's cap, the waiting policy and FFTW's planning effort. PR #576 measured them on six machine families and found the best value of each to depend on the machine. For example, dividing the thresholds by 16 ran an Apple M5 Max's cases 13 % faster but slowed some of a Xeon Gold's by 1.4–1.7×. That is why PR #576 needed per-platform switches.

SEP 46 proposes:

  • solprop calibrate: a bounded one-off measurement (--quick about 20 s and automatic on first use, standard about a minute, --thorough about five minutes for benchmarks) of waiting, team width, core kinds, operation crossovers and FFTW plans, validated against the built-in table before use. FFTW efforts are tried as a ladder under time limits and kept only when the plan wins inside a step (no threaded patient planning, and no wisdom from losing plans);
  • a per-user store in the platform cache directory (SOLPROP_CACHE_DIR overrides it), keyed by a machine and build fingerprint and holding FFTW wisdom by default, with read-only directories for clusters;
  • an optional refinement for one simulation, keyed by a problem signature and reused by scans. This covers SEP 4's use case, and the SEP proposes superseding SEP 4 (SEP 4: Bounded execution autotuning #115).
  • GPU builds' run-time settings, fitted when a rented device is bootstrapped (phase 6).

Related: #328, #329, #332, #81, #333, #136, #229, #303, #560.

Activity

  1. added
    enhancementNew feature or request
    priority: mediumReal work that should not wait long
    performanceSlower or larger than it should be, with no wrong result
    area: nativeThe native backend, threading and FFT planning
    sepTracks an enhancement proposal (SEP)
    area: gpuCUDA and HIP builds: qualification and performance
    on Nov 8, 2026
  2. changed the title [-]SEP 46: Calibrating the native CPU backend to its machine[/-] [+]SEP 46: Calibrating the native backend to its machine[/+] on Nov 8, 2026
  3. jtravs commented on Nov 8, 2026

    @jtravs
    ContributorAuthor

    Implementation started on feature/sep-0046-machine-calibration: draft PR #582 (all phases on one branch).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: gpuCUDA and HIP builds: qualification and performancearea: nativeThe native backend, threading and FFT planningenhancementNew feature or requestperformanceSlower or larger than it should be, with no wrong resultpriority: mediumReal work that should not wait longsepTracks an enhancement proposal (SEP)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions