Skip to content

Make NNPOps compatible with newer versions of TorchANI #128

@epretti

Description

@epretti

Presently NNPOps will not work with versions of TorchANI newer than 2.2.4, since there were breaking changes introduced after this (see TorchANI readme and migration guide). TorchANI 2.2.4 is now over 2 years old and the latest version is now 2.7.9, so we should update NNPOps accordingly. A few comments and questions:

  • Newer versions of TorchANI are only distributed on PyPI, not conda. As such, we'll need to eventually make sure NNPOps can be installed via pip. Since we want to ensure TorchANI is not a required dependency to use NNPOps (it should only need to be there if you actually want to use the NNPOps replacements of TorchANI classes), it should remain possible to distribute NNPOps via conda.
  • Do we want to retain any kind of support for the old versions of TorchANI, or only support versions newer than 2.2.4 from now on? Since NNPOps replaces some of TorchANI's classes with its own, it needs to work a bit with its internals, so it could be tricky to support multiple versions with incompatible APIs.
  • TorchANI since v2.6 now includes a "cuAEV" extension that is apparently an optimized CUDA implementation of AEVComputer (see here, here, and here). Have we tested this as to its performance / do we understand whether or not this makes NNPOps' TorchANISymmetryFunctions obsolete or not?
  • Should Remove TorchANI imports for type annotations #127 be merged and/or should these changes go into new PR? The current issue with one of the CI runs on Remove TorchANI imports for type annotations #127 seems to be related to the installation of an even older version of TorchANI with a bug.
  • Do we have any other repositories where the CI uses pip instead of conda? Currently the CI revolves around conda, and we'll want to install TorchANI via pip for testing, which means presumably that we'll want to install its dependencies like PyTorch and the CUDA toolkit via pip. I can work on this but don't want to start from scratch if we already have something like this somewhere else.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions