0.1.0 Release
[0.1.0] — 2026-03-08
First release under the Hamon name. Hamon is a spiritual successor to
Extropic AI's thrml (v0.1.3), diverging
as an independent library focused on GPU-accelerated thermal sampling for discrete
energy-based models.
Added
- Non-reversible parallel tempering (
nrpt,nrpt_adaptive)- Vectorized swap pass exploiting temperature-linearity: 1 energy eval per chain
instead of 4 per adjacent pair - Single-pass DEO (deterministic even-odd) swap scheduling
- Adaptive schedule optimization (Algorithm 4, Syed et al. 2021) to equalize
rejection rates and minimize the global communication barrier Λ - Iterative chain count discovery (
discover_chain_count)
- Vectorized swap pass exploiting temperature-linearity: 1 energy eval per chain
- Round trip tracking (
round_tripsmodule)- Index process monitoring carried through
lax.scanwith minimal overhead - Communication barrier estimation: local λ(β) and global Λ
- Predicted vs observed round trip rate diagnostics
- Chain count recommendation from Λ estimates
- Index process monitoring carried through
- Dynamic block construction (
dynamic_blocksmodule)- Influence-aware partitioning: aggregate influence A(w) identifies heavy vertices
- Per-temperature block sizing based on correlation length heuristics
- Correlation-based re-blocking from empirical samples (Venugopal & Gogate 2013)
- Influence-weighted Hamming distance for mixing diagnostics
- Boundary energy deltas (
boundary_energymodule)- Edge classification (incident, boundary, interior, external) per block partition
- Rectangular block construction with 4-coloring for 2D grids
- vmap parallel tempering — all chains run in a single kernel via
jax.vmap,
replacing the original Python for-loop that unrolled N copies into XLA - Scan carry threading — global state carried through
lax.scanwith targeted
scatter updates; no redundantblock_state_to_globalper iteration - BlockSpec fast path —
energy()accepts pre-builtBlockSpec/BlockGibbsSpec
directly, skipping reconstruction on every call - Precomputed scatter indices on
BlockSamplingProgram(_block_sd_inds,
_block_positions,_block_output_sds) - Comprehensive test suite for all new modules
Fixed
- Deterministic global state layout — replaced
setwithdict.fromkeysfor
global_sd_orderinBlockSpec.__init__; state ordering is now reproducible - MomentAccumulatorObserver dtype — pinned at construction to avoid silent
float64 promotion on GPU - Non-array pytree leaves under vmap —
_stack_pbi_across_chainspreserves
Python ints for slice indexing inside vmapped function bodies
Changed
- Renamed from
thrml-boosttohamon; this project no longer tracks upstream
thrml changes - Package directory:
thrml_boost/→hamon/ - Version reset to 0.1.0 to reflect new project identity
Attribution
Core block sampling, factor, PGM, and observer infrastructure derived from
thrml (v0.1.3) by Extropic AI,
licensed under Apache 2.0. See NOTICE for details.