tech-debt: v3.5 docs refresh, ANI2xt fp64 energies, optimizer benchmark#97
Merged
Conversation
…cument aimnet/extras/registry models
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the remaining workstreams from the two post-hardening plans (W7–W9 of the tech-debt roadmap; both plans were otherwise already implemented across PRs #93/#94).
Changes
AUTO3D_USE_ENSEMBLE,--use-ensemble, "8-model ensemble") across 10 doc pages; fixed version floors (Python 3.11, PyTorch 2.8); documentedaimnetas a core dependency, the[ani]/[ase]pip extras, the~/.cache/aimnetmodel download/cache (AIMNET_CACHE_DIR), and the AIMNet2 registry model names. Sphinx build is clean (0 warnings).energy_shiftsbuffer is no longer silently truncated. Cosmetic: self-atomic shifts cancel in conformer energy differences, so ranking is unaffected; energy is returned as float64 and forces as float32, matching the AIMNet2 adapter contract. The fp32 network output still caps usable precision.scripts/bench_optimizer.py, an opt-in micro-benchmark (outsidetests/, never gates CI) that timesoptimizing(...).run()on a fixed, deterministic drug-like conformer set and reports wall time, throughput, and peak memory. Documented in CONTRIBUTING.@tautomer-separator docstring inresults.py; recorded the two plan docs; bumped a stale "Python 3.10" mention in CONTRIBUTING to 3.11.Notes for review
atom_energiesin float64" crashes at runtime (Index put requires source and destination dtypes match— fp64 destination, fp32 network output). This PR adds the explicitelem_energies.to(torch.float64)cast the plan omitted; verified via a standalone autograd reproduction (fp64 energy / fp32 forces, finite grads). ANI2xt cannot run without the optionaltorchaniextra, so this path must be confirmed by the CI[ani]job — it is not exercised by the local suite.Verification
src/,scripts/)pytest -m "not slow"): 631 passed, 8 skipped (torchani-gated), 45 slow deselected