Calibrated Estimator¶
The default estimator is the roofline bound. For higher accuracy on a specific GPU, attach a
calibrated estimator (TreeEstimator): the roofline times a learned residual — one
regularized LightGBM tree per operator family (GEMM, elementwise, reduction), with the bare roofline
as the fallback for any uncalibrated op.
Using a calibrated model¶
Use the same hardware configuration you would pass to simulate or estimate_memory, including
its topology. The calibration-specific parameter is:
Parameter |
Meaning |
|---|---|
|
Path to a directory containing fitted tree models. Passing this value makes SysSim load and
use |
from syssim import HardwareConfig
hw = HardwareConfig(
peak_tflops_mm=1979, peak_tflops_math=989,
peak_memory_bandwidth_GBps=3350, gpus_per_node=4,
topology={
"dims": ["fully_connected"],
"size": [4],
"bandwidth": [450],
"latency": [12000],
},
calibrated_model="data/gh200", # directory with fitted trees
)
Building a calibrated model¶
Profiling needs the GPU(s); calibration is CPU-only.
# 1) Profile real Megatron transformer layers over the committed shape space.
# --num-workers N spawns N workers, one pinned per GPU.
syssim profile --out data/gh200 --num-workers 4
# 2) Fit per-family residual trees from <data>/profile.parquet.
syssim calibrate --data data/gh200 \
--hardware examples/configs/hardware/isambard_gh200_4gpu.yaml
There is no model-file input to profile — the shape space is the committed spec
(syssim/profiling/default_spec.yaml). Preview the job list (layer configs × tensor-parallel
shapes) without touching the GPU:
syssim profile --dry-run
See data/gh200/README.md in the SysSim repo for the full reproduce recipe.