v0.2.1
·
6 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
hessboost 0.2.1
Small feature release on top of 0.2.0: polars input and Metal GPU prediction in Python, plus a faster bit-identical Metal backend and compiled-in models in Rust.
Full Changelog: v0.2.0...v0.2.1
Breaking Changes
None.
Highlights Since v0.2.0
Python
- polars DataFrames accepted directly, including
CategoricalandEnumcolumns (hessboost[polars]extra). Column names become feature names, so schema checks catch reordered columns; unseen categories at prediction are missing. Booster.to_gpu(): Metal GPU batch prediction on macOS, bit-identical to the CPU walk (~1.68x at 500k rows x 200 depth-8 trees on an M3 Max). Off macOS it raisesHessboostError; only value/margin prediction is exposed.
Rust / Metal backend
model::EmbeddedModel: compile a model file into the binary viainclude_bytes!, decoded once on firstget()(Rust only). Failed decodes are not cached; every call returns the error.- Metal backend rewrite, still bit-identical to the CPU: atomic-scatter GPU histograms (exact 32-bit pieces) plus an 8-byte prediction arena with pipelined row blocks. GPU prediction is now ~3.2x the CPU walk (was ~2.5x); GPU histograms cross the CPU between ~1M and ~4M rows per node, and small-dataset training still belongs on the CPU.
Docs
- Python README rewritten as per-feature examples; GPU guidance (CUDA unavailable; Metal for macOS prediction / large-node histograms).
Pull Requests by Category
Features
- polars DataFrame input with categorical columns (#128)
- expose Metal GPU prediction via Booster.to_gpu (#130)
- scatter GPU histograms and pipeline prediction (#131)
- EmbeddedModel for models compiled into the binary (#132)
Misc
Install
cargo add hessboost@0.2
pip install hessboost==0.2.1Start with the README,
the Rust docs, and the Python package README.