Repository navigation
fix: Enforce contiguous storage when compiling for AOTI - #176
Merged
Daniel Zügner (danielzuegner) merged 1 commit intoOct 21, 2026
Merged
Daniel Zügner (danielzuegner) merged 1 commit into
Daniel Zügner (danielzuegner) merged 1 commit into
Conversation
Daniel Zügner (danielzuegner)
approved these changes
Oct 21, 2026
Daniel Zügner (danielzuegner)
merged commit Oct 21, 2026
5c84771
into
microsoft:main
7 checks passed
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.
Issue
I noticed that geometry optimisations & MD under certain thermo- and baro-stats rapidly became unphysical when using TorchSim to drive AOTI-compiled MatterSim.
Root cause
During geometry optimisation & with the
npt_crescale_triclinicintegrator, TorchSim passesrow_vector_cellin a form that is non-contiguous in memory. AOTI assumes the layout is identical to the contiguous examples it was compiled with, which results in incorrect stresses and thus unphysical trajectories.Fix
One-line fix in
src/mattersim/forcefield/aoti_compile.py: call.contiguous()on all input parameters before passing them to the compiled model. This reoders storage to match what the AOTI kernels assume. I also added a regression test to check for this bug.