Skip to content

[FEA] Add native GPU Gradient Boosting (GBM) estimators to cuML #8506

Description

@sauravsingla

Feature request

cuML provides GPU-accelerated implementations for many classical machine-learning algorithms, but there is currently no native cuML training implementation corresponding to the scikit-learn Gradient Boosting family, such as:

  • GradientBoostingClassifier
  • GradientBoostingRegressor
  • HistGradientBoostingClassifier
  • HistGradientBoostingRegressor

I would like to propose adding native GPU Gradient Boosting Machine (GBM) estimators to cuML.

Motivation

Gradient-boosted decision trees remain one of the most widely used model families for structured/tabular machine learning.

cuML already provides a strong GPU-accelerated workflow for many classical estimators. Native GBM support would make it easier to keep complete tabular ML pipelines within cuML/RAPIDS without moving to another library solely for gradient boosting.

It could also improve scikit-learn API coverage and potentially expand the usefulness of cuml.accel for pipelines that rely on sklearn gradient boosting estimators.

Suggested scope

A staged implementation could begin with:

  • GradientBoostingClassifier
  • GradientBoostingRegressor

and potentially extend to:

  • HistGradientBoostingClassifier
  • HistGradientBoostingRegressor

Useful compatibility areas could include:

  • binary and multiclass classification
  • regression
  • sample_weight
  • common loss functions
  • learning rate
  • boosting iterations / n_estimators
  • depth and leaf controls
  • early stopping where applicable
  • deterministic random_state behavior where possible
  • sklearn-style fit, predict, and predict_proba
  • cuDF/CuPy and CPU/GPU input interoperability consistent with cuML conventions

Why native cuML support?

XGBoost, LightGBM and CatBoost already provide GPU gradient boosting, but native cuML support could serve a different purpose:

  1. Closer scikit-learn API compatibility.
  2. Seamless integration with existing cuML pipelines.
  3. Potential acceleration through cuml.accel.
  4. Consistent RAPIDS memory and dataframe interoperability.
  5. A common estimator and benchmarking interface alongside other cuML algorithms.

The goal would not necessarily be to reproduce every capability of dedicated boosting libraries, but to provide a strong GPU-native implementation of the standard sklearn GBM family.

Possible implementation direction

It may be useful to first decide whether the initial target should be:

  • classic Gradient Boosting for sklearn API parity, or
  • histogram-based Gradient Boosting as the more GPU-friendly/performance-oriented starting point.

A benchmark suite could compare:

  • scikit-learn CPU implementation
  • proposed cuML GPU implementation
  • training time
  • inference time
  • GPU memory consumption
  • predictive/numerical parity
  • scaling with rows, columns, classes and boosting iterations

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions