File-first pipeline
Train directly from Parquet, CSV, CSV.gz, PyArrow tables, or NumPy arrays without constructing an intermediate DMatrix.
Rust · Python · optional CUDA
FerrisBoost is a Rust-backed gradient-boosted tree library with XGBoost-compatible training semantics for supported objectives and a Python API with familiar parameter names.
FerrisBoost is an independent, column-blocked gradient boosting implementation licensed under Apache 2.0. It provides XGBoost-compatible training semantics and model interchange, but does not use or depend on the XGBoost runtime and is not affiliated with or endorsed by the XGBoost project or its maintainers.
FerrisBoost uses a column-blocked histogram engine to process features in cache-conscious chunks, keep working memory bounded, and skip unselected columns during GPU histogram construction.
Train directly from Parquet, CSV, CSV.gz, PyArrow tables, or NumPy arrays without constructing an intermediate DMatrix.
The planner selects full residency, hybrid caching, or streaming execution based on the workload and available VRAM.
gpu_math="exact" produces byte-identical CPU/GPU models. Fast mode remains deterministic.
Supported models save and load through an XGBoost-compatible JSON representation.
pip install ferrisboost
The portable wheel supports CPU use without an NVIDIA driver. CUDA is loaded only when a GPU device is requested.
import ferrisboost as fb
model = fb.train(
{
"objective": "binary:logistic",
"device": "cuda",
"max_depth": 6,
},
"train.parquet",
label="target",
num_boost_round=100,
)
prediction = model.predict("test.parquet")
On the standardized HIGGS Parquet and Epsilon CSV workloads reported in the README, FerrisBoost used 0.14–0.36× XGBoost setup time, 0.33–0.46× peak host RAM, and 0.47–0.68× combined RAM plus active VRAM on GPU. These results describe the tested workloads, not universal guarantees.