Repository navigation
v0.4.2
·
16 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
hessboost v0.4.2
Patch release focused on training and prediction performance. No public API, model-format, serialization, or traversal changes; no migration required.
Full Changelog: v0.4.1...v0.4.2
Highlights Since v0.4.1
Performance
- Histogram training skips unsampled bins — #177. On the dense chain-order path, trained histograms now build only the sampled feature pool. With
colsample=0.25, warm-hist training measured 2.46x at 1 thread and 2.03x at 4 threads (cold: 1.70x/1.62x). - Small prediction batches use the row forest — #177. Batches below 16 rows route through the existing RowForest path: 1.75x / 1.88x / 1.86x at 1 / 8 / 15 rows over 100 trees. Full-feature training and 16-row batches are near parity; no large-batch prediction win is claimed.
- Tiled prediction-key staging for wide batches — #178. Inputs wider than 64 features stage keys in 32-feature tiles, keeping a hot 4 KiB destination region across 16 rows, with stack scratch on that path. 10,000 x 1,024 prediction measured 2.041x at 1 thread and 1.601x at 4 threads; benefit depends on input width.
- Faster approximate cuts, narrower staging — #179. Approximate weighted quantile cuts use stable radix sorting with a comparison-sort fallback, and eligible wide dense forests stage only the feature/sign slots they actually read. Approx logistic training, 30k x 30 for 10 rounds: -23.4% weighted, -22.3% unit weights, -14.3% NaN-missing at 1 thread; wide low-feature-use prediction: -69.7% / -52.0% / -80.4% across the three reported cases.
All timings were measured on a single shared 9-vCPU x86 host, and the PRs explicitly disclaim universal speedups.
Pull Requests by Category
Performance
- perf: skip unsampled histogram bins and accelerate small-batch prediction — #177
- perf: tile wide-batch prediction key staging — #178
- perf: accelerate approximate cuts and selective wide prediction staging — #179
Misc
- chore(release): v0.4.2 — #180