Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install via pip #105

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open

Install via pip #105

wants to merge 31 commits into from

Conversation

RaulPPelaez
Copy link
Contributor

This PR is an effort to include the possibility of installing NNPops via pip.

I mainly took the example here and adapted it:
https://github.com/pybind/cmake_example/blob/master/setup.py

Having pip as an option would simplify installing NNPops in environments which are not covered by the conda feedstock.
If this is not something that fits the current view of the project, please feel free to close this PR, @peastman.

I added a "pip wheel" section to the CI, lets see if it runs...

@peastman
Copy link
Member

Being able to install with pip would be great. Eventually we want to make the whole OpenMM stack pip installable.

@RaulPPelaez
Copy link
Contributor Author

Great! In theory it is straight forward to make pip just configure and call CMake when a pre built binary is not found, which is what I am trying to do here.
In practice the thing is really obtuse -.-. I am having a hard time telling CMake about CUDA archs and whatnot.

@RaulPPelaez
Copy link
Contributor Author

I can do this from my laptop:

$ mamba create -n nnpops && mamba activate nnpops
$ mamba install cudatoolkit-dev==11.7
$ pip install git+https://github.com/openmm/NNPOps@refs/pull/105/head

There are however some things I still do not know how to solve:

  1. A valid CUDA and gcc must be present in the system. AFAIK you cannot install that via pip, nor modify pyproject.toml depending on the environment.
  2. Link CUDA with dependencies.
    Currently pip will install torch>=2 to build regardless of the CUDA version in the system, which will easily result in a failed build. Ideally pip should decide to install a lower version of torch depending on the available CUDA version.

@peastman
Copy link
Member

The standard way of building pip packages is with cibuildwheel. It provides a set of standard build environments to ensure compatibility between packages.

CUDA can be installed with pip.

@raimis raimis mentioned this pull request Jul 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants