Cache-aware roofline: t_mem = Bdram/BWdram + BL2/BWL2, t_eff = t_mem·(1−q), roof = FLOP / max(t_comp, t_eff). Grade = achieved / roof. Live recompute on every edit.
Hit splits each kernel's bytes: Bdram=B·(1−h), BL2=B·h. Overlap hides fraction q of memory time (quantized kernels).
| kernel | FLOP (GF) | bytes (GB) | achieved | roof | grade % | bound | verdict |
|---|
Verdict thresholds mirror roofline.analyze: ≥80% at-roof · ≥50% moderate · ≥20% significant · else overhead-bound.
cache_roof/roofline.py: cache_adjusted_roof + analyze. Bound = compute if t_comp ≥ t_eff, else cache if BL2>Bdram, else memory. Classic DRAM-only roof shown in tooltip column via title attribute.