initial torch.compile support (inference only) #300
Merged
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.
This PR add some test cases that use
torch.compile
and a new modulemace.tools.compile
that contains some helper utilities for MACE compatibilty withtorch.compile
Some of the changes needed include:
torch.jit.script
annotations from the scatter-reduce implementations. This is necessary as the compiled script functions are not compatible with the inductor backend.e3nn.set_optimization_defaults(jit_script_fx=False)
ahead of creating the model instance. This can be managed with thedisable_e3nn_codegen
context manager.simplify_if_compile
prepare
function which manages creating the model without e3nn codegen and applies the symbolic tracing simplification to registered modules.Note that the remaining graph break in the compiled inference model is due to using autograd to evaluate the forces. This might be possible to fix but I expect it would be easier to do in another PR.