Repository navigation
The main BoTorch implementation now includes the specialized, empirical, variational and fully Bayesian models; CPU/CUDA NUTS; entropy/search, hypervolume and lookahead acquisitions; fitting and candidate generation; and public model, likelihood, transform, sampler and path protocols.
The base package computes natively in Rust on CPU without required Python dependencies. The optional Tensor backend computes on the supplied CPU/CUDA device in float32/float64 and preserves PyTorch first and higher derivatives through training data, queries and model Parameters. Models and acquisitions do not delegate to upstream BoTorch.
This update repairs registered outcome-buffer authority, live task mappings, sampled Warp precision/normalization, conditioning ownership and data graphs, fixed/learned noise separation, public Gaussian posterior interoperability and noisy-hypervolume sampler registration. Native exact predictions reuse fitted factors, and native latent Kronecker inference supports CG/Lanczos.
Validation against pinned BoTorch b0dd01be61d517c387e234903a6e2cc38c057ea2:
- 14,509 Python passes and 51 skips, including 1,222 equivalence passes and 15 skips. Every canonical collected case is accounted for, with stable source, installed-wheel, native, verifier and reference fingerprints.
- 551 Rust tests and 3 doctests, strict Clippy and formatting pass.
- With reference dependencies blocked: 4,154 passed, 2,777 case skips, all 6,931 collected IDs accounted for. The 146 module collection skips are recorded separately.
- Pinned public API inventory 776/776; Ruff checks 751 files and both Mypy configurations check 357 files. All eleven cross-platform CI jobs passed at the original source checkpoint
258ff6b(run 39674851321).
The verification and backend guide records exact artifacts, configurations and numerical checks. botorch_community is outside this release. Structured Tensor models may use dense exact algebra; native and Tensor routes have distinct performance characteristics. A bounded single-thread CPU float64 warm-prediction benchmark measures 4.03x and 3.75x speedups at 32 and 256 training points; 1,024 points is effectively equal (1.02x). These timings cover prediction only and do not establish a universal speedup.
Install on CPython 3.11 or newer:
python -m pip install --upgrade botorch-rust==0.3.0For device execution, install the optional torch extra and select backend="torch"; CUDA training tensors select that route automatically.
Upstream correctness submissions link proposed fixes and reused PRs. Mark reviewed and submitted the tested L-BFGS-B patch in SciPy #26458; human review and submission are complete, and the proposed repair awaits upstream review.
Post-release verification: PR #2 repairs two equivalence fixtures and adds 20 controls. It changes only tests, helpers and documentation; the released runtime and v0.3.0 tag remain at cd2b490.
Against the actual published Windows wheel, each fresh Torch 2.13.0 and Torch 2.14.1 CPU recheck accounts for all 1,237 original cases: 1,222 passed and the same 15 documented inapplicable/reference-limited cases skipped. All 20 new guards passed, giving 1,242 passes and 15 skips per profile. Exact case/skip checks and before/after runtime, reference, dependency and test fingerprints passed. Tests at cc4ca5e have the same Git tree as merged main e73f4e7.
All eleven merged-main CI jobs also pass: the broad suite has 10,054 passes and 1,171 skips; equivalence has 1,242 passes and 15 skips. These overlapping rechecks are separate from the earlier full release audit. The legacy equivalence fixtures execute on CPU, including in the CUDA-capable Torch 2.13 environment; actual CUDA and higher-derivative evidence is recorded separately in the release and Unity verification. The IID forward comparisons use positive-definite joint fixtures; duplicate-query cases are fixture-rejection controls. The earlier failed CI repeat remains preserved and is resolved by PR #2.