Skip to content

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 07 Oct 12:05
· 44 commits to main since this release
Immutable release. Only release title and notes can be modified.
cf52fbc

hessboost v0.2.3

Patch release: GPU acceleration goes portable — every Python wheel now trains and predicts through wgpu (Vulkan, Metal, DirectX 12) — alongside polars 1.x/2.x support with LazyFrames and per-row metadata named by frame column, and 3–4× faster EBM FAST pair scoring. No breaking changes.

Full Changelog: v0.2.2...v0.2.3

Highlights Since v0.2.2

GPU: the wgpu backend

  • New wgpu feature: device = wgpu builds the larger nodes' histograms on the GPU while training, and BoostedModel::to_wgpu lays a model out for batch prediction — both bit-identical to single-threaded CPU. Vulkan on Linux and Windows, Metal on macOS, DirectX 12 on Windows.
  • wgpu needs an adapter with 64-bit shader integers (desktop Vulkan drivers, Apple GPUs, or DirectX 12 with dxcompiler.dll); a software adapter such as Mesa's lavapipe is used only when there is no other. WGPU_ADAPTER_NAME picks an adapter by name.
  • Python: Booster.to_gpu("wgpu") and {"device": "wgpu"} training work in every wheel — macOS wheels keep native Metal (to_gpu() / {"device": "metal"}). GpuModel.available(device) and GpuModel.device_name(device) report what a device can do, with None meaning Metal on macOS, wgpu elsewhere.

Python bindings

  • polars 1.x and 2.x (polars>=1.0): frames convert through one parallel Float32 select, and a LazyFrame is collected once — labels and other per-row metadata travel as column names, so they come out of the same collect (arrays alongside a LazyFrame are refused).
  • Per-row metadata can name frame columns — label="price", weight=, base_margin=, qid=, label_lower_bound=/label_upper_bound= — and the named columns leave the features.

Performance

  • EBM FAST pair scoring is 3–4× faster.

Pull Requests by Category

Features

  • feat(backend): portable GPU training and prediction through wgpu (#143)
  • feat(python): wgpu GPU training and prediction in every wheel (#144)
  • feat(python): polars 2.0 and 1.x, LazyFrames, metadata from frame columns (#141)

Performance

  • perf(ebm): score FAST pairs 3-4x faster (#145)

Misc