MojoTrees 0.1.0a1: native gradient-boosted trees in Mojo with an Apple Silicon GPU path

I have released MojoTrees 0.1.0a1, an experimental gradient-boosted tree library written natively in Mojo.

The goal is a familiar LightGBM-style Python experience backed by portable CPU and GPU implementations, with first-class support for the Metal GPU already present in Apple Silicon Macs.

The repository now has a broad feature surface. Dense and sparse histogram training, leaf-wise growth, categorical and missing-value handling, regression, classification and ranking, validation and early stopping, callbacks, serialization, continued training, model contributions, a Dataset and Booster API, Python estimators, a C API, and a CLI foundation. The GPU path includes device-resident binned data and row assignments, tiled histograms, deterministic integer accumulation, row partitioning, multiclass training, and runtime device-aware launch geometry.

This is a substantial public alpha, not a production replacement for LightGBM. Feature combinations, edge cases, performance validation, and cross-hardware testing still need work. Metal correctness has been exercised on an Apple M4. NVIDIA and AMD have not been validated, and the repository says so explicitly.

The first self-contained wheel is live on PyPI. On CPython 3.14, Apple Silicon, and macOS 26 or newer, installation is simply

pip install mojotrees

The platform support is intentionally narrow for this first alpha; unsupported combinations fail cleanly rather than attempting a surprise source build.

I am particularly looking for contributors interested in Mojo GPU programming, Apple Silicon profiling, gradient-boosted tree algorithms, Python packaging, differential testing against LightGBM, and validation on real NVIDIA or AMD hardware.

Repository: GitHub - mojotrees/mojotrees: Gradient boosted decision trees in Mojo. LightGBM-style histogram splits and leaf-wise growth. · GitHub
PyPI: Client Challenge
Parity contract: mojotrees/docs/LIGHTGBM_PARITY.md at main · mojotrees/mojotrees · GitHub
GPU validation status and procedure: mojotrees/docs/GPU_VALIDATION.md at main · mojotrees/mojotrees · GitHub

I would especially value feedback on the GPU architecture, API boundaries, and the shortest path to a reliable Apple Silicon benchmark story.

Please note. I changed the name from yesterday from MojoBoost to MojoTrees to avoid confusion with C++ Boost.

Just a quick update. MojoTrees grew beyond gradient boosting, so I’ve archived it and continued the work as mojolearn.

It ports GPU algorithms from CatBoost, cuML, cuVS and RAFT into Mojo, running across Apple, NVIDIA and AMD GPUs. Every supported estimator exposes a numeric mode: fast, deterministic, or identical, with bitwise-identical results across Metal, CUDA and HIP in certified configurations.

The latest milestone extends into neural network training with an eight-step training loop on an M4, an H100 and an MI325X producing the same checkpoint file, byte for byte.

It’s on PyPI with macOS and Linux wheels. A fuller write-up is coming in a separate thread.

Repo is GitHub - mojolearn/mojolearn: GPU machine-learning algorithms ported into Mojo, running on Apple Silicon via Metal. Ports of CatBoost, cuVS, cuML and RAFT. · GitHub