FerrisBoost

Rust · Python · optional CUDA

Gradient boosted trees for large tabular data.

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.

Why FerrisBoost

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.

File-first pipeline

Train directly from Parquet, CSV, CSV.gz, PyArrow tables, or NumPy arrays without constructing an intermediate DMatrix.

Adaptive GPU memory

The planner selects full residency, hybrid caching, or streaming execution based on the workload and available VRAM.

Deterministic modes

gpu_math="exact" produces byte-identical CPU/GPU models. Fast mode remains deterministic.

XGBoost interchange

Supported models save and load through an XGBoost-compatible JSON representation.

Install

pip install ferrisboost

The portable wheel supports CPU use without an NVIDIA driver. CUDA is loaded only when a GPU device is requested.

Quick start

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")

Observed performance

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.