Which models can run on your data¶
Before writing a config, coremat recommend lists the models that can run on your
dataset and hardware, fastest first.
It answers two questions and no others. What runs follows from hard limits only: a GPU for the Torch MLPs, GPU memory for TabPFN v3, TabPFN's documented limit of 500 features, and more rows than features for OLS (otherwise its solution is not unique). How fast is the measured time of one fit and one prediction at your row count. It does not say which model will predict best on your data — that is what the run itself answers, and why COREMat trains several models side by side.
CLI usage¶
Output (shortened):
Models that can run here (fastest first):
(time: one fit + predict with default parameters, speed measurement of 2026-09; an order, not a forecast of a run's duration)
1. lin__ols — runs here; ~0.0012 s per fit + predict at ~3200 rows (cpu, measured)
2. lin__ridge — runs here; ~0.0012 s per fit + predict at ~3200 rows (cpu, measured)
...
33. ens__xgb__absolute — runs here; time not measured
Use with: models=ModelsConfig(selected=["lin__ols", "lin__ridge", ...])
Parameters¶
| Flag | Type | Default | Description |
|---|---|---|---|
--n-samples |
int | required | Number of rows in your dataset |
--n-features |
int | required | Number of input features |
--gpu-vram-gb |
float | CPU only | Available GPU VRAM in GB |
Python API¶
from coremat import recommend, RecommendResult
result: RecommendResult = recommend(n_samples=5000, n_features=40, gpu_vram_gb=8.0)
print(result.model_ids) # the models that can run, fastest first
print(result.rationale) # dict[model_id, estimated time and device]
The model_ids list drops directly into ModelsConfig:
Where the times come from¶
From a speed measurement in September 2026: every zoo model, 32 to
4096 rows, CPU and CUDA, the median over seeds at the fastest thread count. Between
the measured row counts the time is interpolated on a log scale, beyond them the last
segment is extended. With a GPU, the faster of CPU and CUDA counts — what
device: auto would pick. The times are read at the size of the innermost fit
(cv_shrinkage, 0.64 of the rows at the 5×5 default).
Read them as an order, not a forecast. A run costs many fits — folds, trials, rounds —
with searched parameters, plus the explanations, which call predict many times
(TabPFN on a CPU falls further behind there). Models added after the measurement have
no time and are listed last.
When nothing can run¶
If no model passes the limits, recommend warns with the reason for each model and
returns an empty list — it does not offer models that cannot run.