Skip to main content

silvic_core/
lib.rs

1//! LightGBM-compatible gradient boosting: binning, leaf-wise tree growth on quantized integer histograms, and
2//! LightGBM 3.3.5 `model.txt` output.
3//!
4//! [`boosting::train`] grows trees through a [`Backend`] (this crate's [`CpuBackend`], or the Metal and CUDA
5//! backends of `silvic-gpu`) and reduces histograms across ranks through a [`Collective`] ([`LocalCollective`] for
6//! one process, `silvic-net`'s TCP ring across many). Quantized histograms are integer sums, so training is
7//! bit-reproducible and a model trained on N ranks equals the one trained on all rows in one process.
8
9pub mod backend;
10pub mod boosting;
11pub mod collective;
12pub mod config;
13pub mod data;
14mod error;
15mod learner;
16pub mod metric;
17pub mod model;
18pub mod objective;
19pub mod quantize;
20mod replay;
21mod split;
22#[cfg(any(test, feature = "test-util"))]
23pub mod test_util;
24pub mod tree;
25
26pub use backend::{Backend, CpuBackend};
27pub use boosting::{train, train_from, IterationReport};
28pub use collective::{Collective, LocalCollective};
29pub use config::Params;
30pub use data::BinnedDataset;
31pub use error::{Result, SilvicError};
32pub use model::Model;