Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/link-checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v7.0.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Restore lychee cache
Expand Down
30 changes: 21 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# nvForest - Highly Optimized Decision Tree Inference

nvForest is a highly-optimized and lightweight [RAPIDS](https://rapids.ai/) library that enables fast inference for decision tree models on NVIDIA GPUs and CPUs. It does not train models; it runs inference on models trained elsewhere (e.g., XGBoost, LightGBM, scikit-learn, or cuML).
nvForest is a highly-optimized and lightweight library that enables fast inference for decision tree models on NVIDIA GPUs and CPUs. It does not train models; it runs inference on models trained elsewhere (e.g., XGBoost, LightGBM, scikit-learn, or cuML).

nvForest uses [Treelite](https://treelite.readthedocs.io/) as the common format for importing tree models. You can load a model from a file or from an in-memory scikit-learn or Treelite object, then run predictions with a scikit-learn-like API. Setting `device="auto"` lets you deploy the same script on machines with or without GPUs.

Expand Down Expand Up @@ -59,20 +59,32 @@ You can tune performance with `layout` (e.g., `depth_first`, `breadth_first`) an

## Installation

See [the RAPIDS Release Selector](https://docs.rapids.ai/install#selector) for the command line to install either nightly or official release nvForest packages via conda, pip, or Docker.
You can install nvForest using Pip or Conda.

## Build/Install from Source
```console
# Using Pip: need a suffix corresponding to your CUDA version, e.g. for CUDA 13:
$ pip install nvforest-cu13
```

See the build [guide](BUILD.md).
```console
# Using Conda: need to specify the rapidsai channel
$ conda install -c rapidsai -c conda-forge nvforest
```

## Contributing

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Juts as an FYI you should have a Contributing.md in this repo as part of a requirement of OSRB if you don't have one, please create one accordingly and also make sure you include the DCO if applicable

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the DCO?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to ignore this for now, there will be a future check that will enforce this, let's skip it for now

### System Requirements

We welcome contributions. For guidelines and how to get started, see the [RAPIDS contributing guide](https://docs.rapids.ai/contributing).
Please see the [Installation Guide](https://docs.rapids.ai/install/#system-requirements)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please see the [Installation Guide](https://docs.rapids.ai/install/#system-requirements)
Please see the [Installation Guide](https://docs.nvidia.com/datascience/install/#system-requirements)

for NVIDIA CUDA-X libraries for data science for information about supported operating systems,
GPU drivers, and CUDA versions.

## Build/Install from Source

See the build [guide](BUILD.md).

## Contact

Find out more: [CUDA-X for Data Science](https://developer.nvidia.com/topics/ai/data-science/cuda-x-for-data-science)
Find out more: [NVIDIA CUDA-X for Data Science](https://developer.nvidia.com/topics/ai/data-science/cuda-x-for-data-science)

## Open GPU Data Science
## NVIDIA CUDA-X Libraries for Data Science

The RAPIDS suite of open source software libraries aims to enable execution of end-to-end data science and analytics pipelines entirely on GPUs. It relies on NVIDIA® CUDA® primitives for low-level compute optimization, exposing GPU parallelism and high-bandwidth memory through user-friendly Python interfaces.
The NVIDIA CUDA-X libraries for data science aim to enable execution of end-to-end data science and analytics pipelines entirely on GPUs. It relies on NVIDIA® CUDA® primitives for low-level compute optimization, exposing GPU parallelism and high-bandwidth memory through user-friendly Python interfaces.
6 changes: 1 addition & 5 deletions cpp/include/nvforest/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# nvForest Inference Library

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# nvForest Inference Library
# NVIDIA nvForest Inference Library

RAPIDS nvForest Inference Library provides accelerated inference for
tree-based machine learning models. Unlike packages like XGBoost,
LightGBM, or even Scikit-Learn/cuML's random forest implementations, nvForest
cannot be used to _train_ forest models. Instead, its goal is to speed up
inference using forest models trained by all of those packages.
nvForest is a highly-optimized and lightweight library that enables fast inference for decision tree models on NVIDIA GPUs and CPUs. It does not train models; it runs inference on models trained elsewhere (e.g., XGBoost, LightGBM, scikit-learn, or cuML).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe that all the libraries are now NVIDIA you should change reference to that at least on the title.


This directory contains an implementation of nvForest which
provides both CPU and GPU execution. Its GPU implementation also offers
Expand Down
48 changes: 14 additions & 34 deletions docs/source/build.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,26 @@ Building from the source
Setting up your build environment
=================================

To install nvForest from source, ensure the following dependencies are met:

**Hardware needed to run nvForest.**
nvForest is part of RAPIDS and follows the RAPIDS support matrix.
See https://docs.rapids.ai/platform-support/.
It is possible to build and run nvForest on machines without a GPU; in such machines, nvForest will use the CPU to run inference.

**Software dependencies.**
See https://docs.rapids.ai/platform-support/ for the list of required C++ compilers and Python interpreters.
In addition, nvForest requires Cython 3.0 or later.
Please see the `Installation Guide <https://docs.rapids.ai/install/#system-requirements>`_

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please see the `Installation Guide <https://docs.rapids.ai/install/#system-requirements>`_
Please see the `Installation Guide <https://docs.nvidia.com/datascience/install/#system-requirements>`_

for NVIDIA CUDA-X libraries for data science for information about supported operating systems,
GPU drivers, and CUDA versions.

.. note:: Building nvForest without GPU support

It is possible to build nvForest without GPU support; in this case, the CUDA toolkit is not required.
To build nvForest without GPU, set the CMake option ``NVFOREST_ENABLE_GPU=OFF``.

**RAPIDS libraries.**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I beleieve this is still true for the libraries that nvForest is compatible with right?

Maybe use the same wording pointing to cuML or cuDF if those are the libraries that you'd use jointly with nvForest.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are planning to remove the RAFT and RMM dependencies, so that nvForest can be used independently of other (formerly) RAPIDS libraries.

The nvForest code base is updated in tandem with the rest of RAPIDS. So to build the latest nvForest, you
should use the latest version of RAPIDS as well. (For example, nvForest 26.04 will require 26.04 version of
all RAPIDS packages.)

**Python dependencies.**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this info is also still true, just need rewording.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we still use the https://docs.rapids.ai/install/ link?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are close to migrating that page, see rapidsai/docs#827

If you want to wait for that PR to be in, I can point you in the right direction when it's done.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chyunsu3 the page migration is live, it's in https://docs.nvidia.com/datascience/install/

Please see https://docs.rapids.ai/install/ for RAPIDS-wide version support.

We aim to meet the `SPEC 0 guidelines <https://scientific-python.org/specs/spec-0000/>`_ for minimal supported versions.

**For development only.**

* clang-format (= 20.1.8): enforces uniform C++ coding style; required for pre-commit hooks and CI checks. The packages ``clang=20`` and ``clang-tools=20`` from the conda-forge channel should be sufficient, if you are using conda. If not using conda, install the right version using your OS package manager.
It is possible to build nvForest without GPU support; in this case, the CUDA toolkit is not required.
To build nvForest without GPU, set the CMake option ``NVFOREST_ENABLE_GPU=OFF``.

.. note:: Use Conda to install all software dependencies
Using Conda to install all software dependencies

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In your readme you have pip and conda installs, maybe mention both in the docs too

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page is for building nvForest from the source, and for that scenario, we recommend Conda.

In the getting_started.rst, I show both Pip and Conda.

------------------------------------------------

We highly recommend the use of Conda, a package manager that lets you obtain all necessary
software dependencies in a virtual environment.
We provide environment definition files ``conda/environments/all_*.yaml`` containing all software
dependencies for nvForest.
We highly recommend the use of Conda, a package manager that lets you obtain all necessary
software dependencies in a virtual environment.
We provide environment definition files ``conda/environments/all_*.yaml`` containing all software
dependencies for nvForest.

To create a development environment named ``nvforest_dev``, use the following commands.
To create a development environment named ``nvforest_dev``, use the following commands.

.. code-block:: console
.. code-block:: console

$ conda create -n nvforest_dev python=3.13
$ conda env update -n nvforest_dev \
Expand Down Expand Up @@ -311,4 +291,4 @@ nvForest's cmake has the following configurable flags available:
* - CMAKE_CUDA_ARCHITECTURES
- List of GPU architectures, semicolon-separated
- Empty
- List the GPU architectures to compile the GPU targets for. Set to "NATIVE" to auto detect GPU architecture of the system, set to "ALL" to compile for all RAPIDS supported archs.
- List the GPU architectures to compile the GPU targets for. Set to "NATIVE" to auto detect GPU architecture of the system, set to "ALL" to compile for all supported archs.
5 changes: 3 additions & 2 deletions docs/source/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ You can install nvForest using Pip or Conda.
# Using Conda: need to specify the rapidsai channel
$ conda install -c rapidsai -c conda-forge nvforest

You can also install nvForest as part of RAPIDS, a collection of libraries for GPU accelerated data science.
Visit https://docs.rapids.ai/install/ for more information.
Please see the `Installation Guide <https://docs.rapids.ai/install/#system-requirements>`_

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please see the `Installation Guide <https://docs.rapids.ai/install/#system-requirements>`_
Please see the `Installation Guide <https://docs.nvidia.com/datascience/install/#system-requirements>`_

for NVIDIA CUDA-X libraries for data science for information about supported operating systems,
GPU drivers, and CUDA versions.

nvForest with Python
====================
Expand Down
Loading