Open jonandergomez opened 2 years ago
Hi Jon. I'm not sure what happened exactly. It says "Check the logs for full command output" in the end, but it looks like you haven't posted them. Did you install EDDL in a standard system location before running the above commands? That's required before trying installation with pip. Alternatively, a fully automated, easy installation is available via Conda. Full instructions are available at https://github.com/deephealthproject/conda_builds, but here is what you need for PyEDDL:
(example for python 3.7 and ecvl compiled for GPU):
channel configuration:
conda config --add channels dhealth
conda config --add channels bioconda
conda config --add channels conda-forge
conda config --set channel_priority strict
env creation and installation:
conda create -y -n dh_toolkit
conda activate dh_toolkit
conda install -y python=3.7 pyecvl-gpu
Packages are also available Python 3.6, 3.7 and 3.8, and compiled for CPU, GPU and GPU + CUDNN.
But this doesn't work on Google Collab where the python is just running and we run the commands from the python in shell mode. In Google Collab like in other environments is the pip install method the one that is always well supported, but unfortunately pyeddl does not provide pip install.
Anyway, perhaps you can try it in Google Collab and if you get it you can send us the notebook to use it in the Winter School.
I managed to install it via a package called condacolab. I pushed the notebook with the installation steps to this repo as docs/ColabInstall.ipynb.
In the case of CUDNN it seems that something failed (cudatoolkit?):
!conda install pyeddl-cudnn
Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed
SpecsConfigurationConflictError: Requested specs conflict with configured specs. requested specs:
The same for CUDA:
Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Solving environment: failed
SpecsConfigurationConflictError: Requested specs conflict with configured specs. requested specs:
It looks like the Colab backend is currently using CUDA 11. condacolab tries to be conservative and pins the cudatoolkit
version according to the detected CUDA version to avoid compatibility problems. The conda packages require cudatoolkit
version 10, so the installation fails. However, we have been running EDDL compiled for CUDA 10 on a machine with CUDA 11 for a long time and it works fine. So the trick is to remove the cudatoolkit pin from /usr/local/conda-meta/pinned
and then installation succeeds. I've pushed the notebook with the steps for GPU installation to GitHub. Note that the GPU runtime needs to be explicitly enabled before running cells.
We are thinking in using Google Colab for the WinterSchool, but I tried the following commands from three different notebook cells, in order to follow the indications in the pyeddl documentation about installation, and it fails.
!python3 -m pip install --upgrade setuptools pip
!python3 -m pip install --upgrade numpy 'pybind11<2.6' pytest
!(export EDDL_WITH_CUDA="true" ; python3 -m pip install pyeddl)
I wonder if it would be possible to use Colab for the Winter School or we have to search for another option. Anyway, the installation of the pyeddl with pip is difficult in general, I cannot be successful in other Linux machines I administer.
Here the output of the three commands to see the failures: