pytorch3d icon indicating copy to clipboard operation
pytorch3d copied to clipboard

Conda environment not buildable due to (wrong?) pytorch constraint

Open tpfau opened this issue 1 year ago • 0 comments

If you do not know the root cause of the problem / bug, and wish someone to help you, please post according to this template:

🐛 Bugs / Unexpected behaviors

Short: When trying to install pytorch3d via conda for gpus, the constraint on pytorch (pytorch==cuda) makes installation impossible. This constraint should be "pytorch==cuda since pytorch does not necessarily start their build names with cuda but can also allow something to be before cuda. Long: I'm trying to install pytorch3d on a cluster setting, i.e. a system, where the installation node does not have a gpu, but gpu support still is required. To achieve this, we commonly use the trick to indicate the build being cuda for pytorch while providing __cuda by pytorch-cuda from the pytorch repo. However, it seems that pytorch3d indicates the pytorch constraint as pytorch==cuda* (i.e. starting with cuda) which fails since the matching pytorch versions do not start with cuda but only have it in their name.

Instructions To Reproduce the Issue:

On a machine without GPU create the following environment file:

name: pytorch3d
channels:
  - nvidia
  - pytorch
  - conda-forge
dependencies:
  - pytorch=2.2.0=*cuda*
  - pytorch-cuda=11.8
  - pytorch3d=*=*cuda*118*
  - torchvision
  - torchaudio
  - fvcore
  - iopath

and try to create the environment. It fails with an error: package pytorch3d-0.7.5-cuda118py310h7e791d5_2 has constraint pytorch * cuda* conflicting with pytorch-2.2.0-py3.8_cuda11.8_cudnn8.7.0_0 while this should be solvable if the constraint would not make the build have a "cuda" prefix, but just contain cuda (apart that this is still non matching python versions, which the solver would be able to reconcile) 2. The exact command(s) you ran: mamba env create -n environment.yml 3. What you observed (including the full logs):

nvidia/linux-64                                             Using cache
nvidia/noarch                                               Using cache
pytorch/linux-64                                            Using cache
pytorch/noarch                                              Using cache
conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache
anaconda/linux-64                                           Using cache
anaconda/noarch                                             Using cache
pkgs/main/linux-64                                            No change
pkgs/r/linux-64                                               No change
pkgs/r/noarch                                                 No change
pkgs/main/noarch                                              No change


Looking for: ['pytorch==2.2.0[build=*cuda*]', 'pytorch-cuda=11.8', 'pytorch3d=[build=*cuda*118*]', 'torchvision', 'torchaudio', 'fvcore', 'iopath', 'pip']


Could not solve for environment specs
Encountered problems while solving:
  - package pytorch3d-0.7.5-cuda118py310h7e791d5_2 has constraint pytorch * cuda* conflicting with pytorch-2.2.0-py3.8_cuda11.8_cudnn8.7.0_0

The environment can't be solved, aborting the operation

tpfau avatar Feb 29 '24 09:02 tpfau