Struct RooflineParams

Struct Documentation

struct RooflineParams

Roofline parameters for the peak objectives’ secondary (tie-break) cost. When machine_balance > 0, the per-contraction tie-break cost becomes the roofline wall-time proxy max(flops, machine_balance * Q), where the data movement Q = max(operand+result footprint, block_prefactor * flops / sqrt(fast_mem_elems / block_tiles)) combines the compulsory single-pass traffic with the finite-cache (Hong-Kung) re-read bound. This charges bandwidth-bound contractions (e.g. single-PNO-index ones) their true memory traffic while leaving compute-bound (dense) contractions at flops, so it is inert in the dense case. machine_balance == 0 (default) recovers the pure-flop tie-break. See doc/dev/specs/2026-06-23-roofline-tiebreak-cost.md.

Public Members

double machine_balance = 0.0

Machine balance beta = 8*F/B in FLOPs per element of traffic. 0 = off.

double fast_mem_elems = 0.0

Capacity M of the binding fast memory level, in elements (e.g. LLC/8).

double block_tiles = 3.0

Resident-tile count c0 in the blocking bound (b ~ sqrt(M/c0)); ~3 for the A,B,C tiles of a blocked GEMM. Calibratable.

double block_prefactor = 1.0

Prefactor kappa folding FMA/packing/BLAS constants into the re-read term.