drprojects / DeepViewAgg

[CVPR'22 Best Paper Finalist] Official PyTorch implementation of the method presented in "Learning Multi-View Aggregation In the Wild for Large-Scale 3D Semantic Segmentation"
Other
222 stars 24 forks source link

Installation Errors with NVIDIA RTX3080 & Newer CUDA Versions #15

Closed altaykacan closed 1 year ago

altaykacan commented 1 year ago

Hey @drprojects , thank you for making the repo available and the extensive instructions! However, I ran into a lot problems while trying to setup the environment and would be grateful if you could help out.

I was trying to install based on the install.sh script that is provided and couldn't figure out what to do after days of trying. As far as I can tell the problem is due to the installation of Minkowski Engine and the GPU I'm using.

Here's the system and

GPU information I've been working with:

System: Ubuntu 20.04.5 LTS

GPU & CUDA: Model: NVIDIA GeForce RTX 3080 nvcc path: /usr/local/cuda-11.4/bin/nvcc nvcc version:

NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_Oct_11_21:27:02_PDT_2021
Cuda compilation tools, release 11.4, V11.4.152
Build cuda_11.4.r11.4/compiler.30521435_0

I've tried using multiple CUDA versions (11.4 and 11.6) and still couldn't get the installation script to work. As far as I understand MinkowskiEngine 0.4 doesn't work with newer GPUs so in install.sh I removed the version specification for it (i.e. pip install -U MinkowskiEngine --install-option="--blas=openblas" -v --no-deps). It also resulted in similar errors when I used the default version in the script.

My main questions would be:

Beginning of the installation & pip versioning error with `urllib: error_1.txt

Minkowski Engine compilation problems: error_2.txt

Errors with Jupyter, these only happen at the end and probably are due to the earlier errors: error_3.txt

Thank you in advance for your help!

drprojects commented 1 year ago

Hi @altaykacan,

Sorry to hear you are having installation issues, those can be tricky. To give you a little explanation of why, this project relies on a modified frozen version of torch-points3d, which in turn relies on torch-geometric==1.6.3. Unfortunately, more recent torch-geometric versions are not backward-compatible and break some parts of torch-points3d. The main developpers of TP3D know this but have not had the time to work on it. End of the line: we are stuck with using torch-geometric==1.6.3, which in turn limits the torch and CUDA versions we can use.

I built the install.sh script so as to facilitate the installation by searching your CUDA version and installing the proper torch-geometric dependencies, but it is certainly not bullet-proof !

You will have to make sure that your torch, torch-geometric and CUDA versions are compatible and install torch and torch-geometric from 'manually-selected' wheels. For starters, you must use torch-geometric==1.6.3 and torch>=1.7.1 to avoid any other problem. This limits your options. Have a look at https://pytorch-geometric.com/whl to find which CUDA version the torch-geometric dependencies let you use for which torch version. For example, for torch-1.7.1, you can use CUDA 9.2, CUDA 10.1, CUDA 10.2 and CUDA 11.0. If you absolutely need to use other CUDA versions, you can try to install a different torch version and the appropriate torch-geometric dependencies. I have not tested the code with torch versions above torch==1.7.1, you might be able to do it but I can't vouch for it ;)

Nope, the installation is sensitive because of the torch-points3d-torch-geometric limbo explained above. It would be possible to build this project outside of torch-points3d and hence use the most recent torch-geometric and torch versions. But this would require time I do not have...

I can't relly tell what is happening apart from what the log says: the install has downgraded your urllib3 from 1.26 to 1.25 at some points and it makes sentry-sdk unhappy. I checked on my machines, I have urllib3==1.25.10 and sentry-sdk==0.20.2 installed, which seems (not sure) to be a dependency of pathtools==0.1.2. But I can't tell which library depends on pathtools. If you run install.sh line by line, you will find this out. In which case you can manually install the same version as me for the problematic package.

To help you, here are my specs:

... on a CUDA-11.4 machine

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Wed_Jun__2_19:15:15_PDT_2021
Cuda compilation tools, release 11.4, V11.4.48
Build cuda_11.4.r11.4/compiler.30033411_0
Package                       Version
----------------------------- -------------------
absl-py                       0.11.0
antlr4-python3-runtime        4.8
argon2-cffi                   20.1.0
ase                           3.21.1
async-generator               1.10
attrs                         20.2.0
backcall                      0.2.0
backports.functools-lru-cache 1.6.1
bleach                        3.1.5
brotlipy                      0.7.0
cached-property               1.5.2
cachetools                    4.2.1
certifi                       2021.5.30
cffi                          1.14.2
chardet                       3.0.4
click                         7.1.2
cmake                         3.18.4.post1
configparser                  5.0.1
cryptography                  3.1
cycler                        0.10.0
decorator                     4.4.2
defusedxml                    0.6.0
docker-pycreds                0.4.0
entrypoints                   0.3
faiss                         1.6.5
filelock                      3.0.12
gdown                         3.12.2
gitdb                         4.0.5
GitPython                     3.1.13
google-auth                   1.26.1
google-auth-oauthlib          0.4.2
googledrivedownloader         0.4
GPUtil                        1.4.0
grpcio                        1.35.0
h5py                          3.1.0
hydra-core                    1.1.0
idna                          2.10
imageio                       2.9.0
importlib-metadata            1.7.0
importlib-resources           5.1.0
ipykernel                     5.3.4
ipython                       7.18.1
ipython-genutils              0.2.0
ipywidgets                    7.5.1
isodate                       0.6.0
jedi                          0.15.2
Jinja2                        2.11.2
joblib                        1.0.1
json5                         0.9.4
jsonpatch                     1.28
jsonpointer                   2.0
jsonschema                    3.2.0
jupyter-client                6.1.7
jupyter-core                  4.6.3
jupyterlab                    2.2.6
jupyterlab-pygments           0.1.1
jupyterlab-server             1.2.0
kiwisolver                    1.3.1
llvmlite                      0.35.0
Markdown                      3.3.3
MarkupSafe                    1.1.1
matplotlib                    3.3.4
MinkowskiEngine               0.5.1
mistune                       0.8.4
mit-semseg                    1.0.0
mkl-fft                       1.3.0
mkl-random                    1.1.1
mkl-service                   2.3.0
nb-conda-kernels              2.2.4
nbclient                      0.5.0
nbconvert                     6.0.1
nbformat                      5.0.7
nest-asyncio                  1.4.0
networkx                      2.5
notebook                      6.1.4
numba                         0.52.0
numpy                         1.20.1
oauthlib                      3.1.0
omegaconf                     2.1.0
opencv-python                 4.5.2.54
packaging                     20.4
pandas                        1.2.2
pandocfilters                 1.4.2
parso                         0.5.2
pathtools                     0.1.2
pexpect                       4.8.0
pickleshare                   0.7.5
Pillow                        8.1.0
pip                           20.2.2
plotly                        4.14.3
plyfile                       0.7.3
prometheus-client             0.8.0
promise                       2.3
prompt-toolkit                3.0.7
protobuf                      3.14.0
psutil                        5.8.0
ptyprocess                    0.6.0
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pycparser                     2.20
Pygments                      2.6.1
pykeops                       1.4.2
pyOpenSSL                     19.1.0
pyparsing                     2.4.7
pypng                         0.0.21
pyrsistent                    0.17.2
PySocks                       1.7.1
python-dateutil               2.8.1
python-louvain                0.15
pytorch-metric-learning       0.9.96
pytz                          2021.1
PyYAML                        5.4.1
pyzmq                         19.0.2
rdflib                        5.0.0
requests                      2.24.0
requests-oauthlib             1.3.0
retrying                      1.3.3
rsa                           4.7.1
scikit-learn                  0.24.1
scipy                         1.6.0
seaborn                       0.11.1
Send2Trash                    1.5.0
sentry-sdk                    0.20.2
setuptools                    49.6.0.post20200814
shortuuid                     1.0.1
six                           1.15.0
smmap                         3.0.5
subprocess32                  3.5.4
tensorboard                   2.4.1
tensorboard-plugin-wit        1.8.0
terminado                     0.8.3
testpath                      0.4.4
threadpoolctl                 2.1.0
torch                         1.7.1+cu110
torch-cluster                 1.5.8
torch-geometric               1.6.3
torch-points-kernels          0.6.10
torch-scatter                 2.0.8
torch-sparse                  0.6.8
torchfile                     0.1.0
torchnet                      0.0.4
torchsparse                   1.1.0
torchvision                   0.8.2+cu110
tornado                       6.0.4
tqdm                          4.59.0
traitlets                     5.0.4
typing-extensions             3.7.4.3
urllib3                       1.25.10
visdom                        0.1.8.9
wandb                         0.10.19
wcwidth                       0.2.5
webencodings                  0.5.1
websocket-client              0.57.0
Werkzeug                      1.0.1
wheel                         0.35.1
widgetsnbextension            3.5.1
yacs                          0.1.8
zipp                          3.1.0

... on a CUDA-10.2 machine

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89
Package                       Version
----------------------------- -------------------
absl-py                       0.9.0
alabaster                     0.7.12
apex                          0.1
appdirs                       1.4.3
ascii-graph                   1.5.1
ase                           3.21.1
attrs                         19.3.0
audioread                     2.1.8
Babel                         2.8.0
backcall                      0.2.0
beautifulsoup4                4.9.3
bleach                        3.1.3
boto3                         1.12.28
botocore                      1.15.28
brotlipy                      0.7.0
cachetools                    4.0.0
certifi                       2020.12.5
cffi                          1.14.5
chardet                       4.0.0
chart-studio                  1.1.0
click                         7.1.1
codecov                       2.0.22
colorama                      0.4.4
conda                         4.9.2
conda-build                   3.18.11
conda-package-handling        1.7.2
configparser                  5.0.1
coverage                      5.0.4
cryptography                  3.4.6
cycler                        0.10.0
cymem                         2.0.5
Cython                        0.28.4
cytoolz                       0.9.0.1
dataclasses                   0.8
DataProperty                  0.46.4
decorator                     4.4.2
defusedxml                    0.6.0
dill                          0.2.9
docker-pycreds                0.4.0
docutils                      0.15.2
entrypoints                   0.3
filelock                      3.0.12
flake8                        3.7.9
Flask                         1.1.1
future                        0.18.2
GDAL                          2.2.3
gdown                         3.12.2
gitdb                         4.0.5
GitPython                     3.1.13
glob2                         0.7
google-auth                   1.11.3
google-auth-oauthlib          0.4.1
googledrivedownloader         0.4
gql                           0.2.0
graphql-core                  1.1
grpcio                        1.27.2
gviz-api                      1.9.0
h5py                          2.10.0
html2text                     2020.1.16
hydra-core                    0.11.3
hypothesis                    4.50.8
idna                          2.10
imageio                       2.8.0
imagesize                     1.2.0
importlib-metadata            1.5.0
inflect                       4.1.0
ipdb                          0.13.2
ipykernel                     5.2.0
ipympl                        0.6.3
ipython                       7.12.0
ipython-genutils              0.2.0
ipywidgets                    7.6.3
isodate                       0.6.0
itsdangerous                  1.1.0
jedi                          0.18.0
Jinja2                        2.11.3
jmespath                      0.9.5
joblib                        0.14.1
json5                         0.9.3
jsonpatch                     1.28
jsonpointer                   2.0
jsonschema                    3.2.0
jupyter-client                6.1.0
jupyter-core                  4.6.3
jupyter-tensorboard           0.2.0
jupyterlab                    2.2.9
jupyterlab-git                0.23.3
jupyterlab-server             1.2.0
jupyterlab-widgets            1.0.0
jupytext                      1.10.0
kaleido                       0.1.0
kiwisolver                    1.1.0
libarchive-c                  2.9
librosa                       0.6.3
llvmlite                      0.32.1
lmdb                          0.98
Mako                          1.1.2
Markdown                      3.2.1
markdown-it-py                0.6.2
MarkupSafe                    1.1.1
maskrcnn-benchmark            0.1
matplotlib                    3.3.4
mbstrdecoder                  0.8.4
mccabe                        0.6.1
mdit-py-plugins               0.2.5
MinkowskiEngine               0.5.1
mistune                       0.8.4
mlperf-compliance             0.0.10
mock                          4.0.1
more-itertools                8.2.0
msgfy                         0.0.7
msgpack                       0.6.1
msgpack-numpy                 0.4.3.2
murmurhash                    1.0.5
nbconvert                     5.6.1
nbdime                        2.1.0
nbformat                      5.0.4
networkx                      2.0
nltk                          3.4.5
notebook                      6.0.3
numba                         0.49.1
numpy                         1.19.5
nvidia-dali                   0.19.0
nvidia-ml-py3                 7.352.0
oauthlib                      3.1.0
omegaconf                     1.4.1
onnx                          1.6.0
open3d                        0.10.0.0
packaging                     20.3
pandas                        1.1.5
pandocfilters                 1.4.2
param                         1.10.1
parso                         0.8.1
pathvalidate                  2.2.1
pexpect                       4.8.0
pickleshare                   0.7.5
Pillow                        8.1.0
Pillow-SIMD                   5.3.0.post1
pip                           21.0.1
pkginfo                       1.7.0
plac                          0.9.6
plotly                        4.14.3
plotly-geo                    1.0.0
pluggy                        0.13.1
plyfile                       0.7.3
preshed                       2.0.1
progressbar                   2.5
prometheus-client             0.7.1
promise                       2.3
prompt-toolkit                3.0.8
protobuf                      3.11.3
psutil                        5.8.0
ptyprocess                    0.7.0
py                            1.8.1
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pybind11                      2.4.3
pycocotools                   2.0+nv0.4.0
pycodestyle                   2.5.0
pycosat                       0.6.3
pycparser                     2.20
pycuda                        2019.1.2
pydot                         1.4.1
pyflakes                      2.1.1
Pygments                      2.8.1
pyOpenSSL                     20.0.1
pyparsing                     2.4.6
pyrsistent                    0.16.0
PySocks                       1.7.1
pytablewriter                 0.50.0
pytest                        5.4.1
pytest-cov                    2.8.1
pytest-pythonpath             0.7.3
python-dateutil               2.8.1
python-hostlist               1.20
python-louvain                0.15
python-nvd3                   0.15.0
python-slugify                4.0.0
pytools                       2020.1
pytorch-metric-learning       0.9.97.dev2
pytorch-transformers          1.1.0
pytz                          2021.1
pyviz-comms                   2.0.1
PyWavelets                    1.1.1
PyYAML                        5.3
pyzmq                         19.0.0
rdflib                        5.0.0
regex                         2020.11.13
requests                      2.25.1
requests-oauthlib             1.3.0
resampy                       0.2.2
retrying                      1.3.3
revtok                        0.0.3
rsa                           4.0
ruamel-yaml                   0.15.87
s3transfer                    0.3.3
sacrebleu                     1.2.10
sacremoses                    0.0.35
scikit-image                  0.16.2
scikit-learn                  0.24.1
scipy                         1.5.4
Send2Trash                    1.5.0
sentencepiece                 0.1.85
sentry-sdk                    0.20.2
setuptools                    52.0.0.post20210125
shortuuid                     1.0.1
six                           1.15.0
sk-video                      1.1.10
smmap                         3.0.5
snowballstemmer               2.0.0
SoundFile                     0.10.3.post1
soupsieve                     2.2
sox                           1.3.7
spacy                         2.0.16
Sphinx                        2.4.4
sphinx-rtd-theme              0.4.3
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
SSD                           0.1
subprocess32                  3.5.4
subword-nmt                   0.3.3
tabledata                     1.1.0
tabulate                      0.8.7
tensorboard                   2.2.1
tensorboard-plugin-profile    2.4.0
tensorboard-plugin-wit        1.8.0
tensorrt                      7.0.0.11
terminado                     0.8.3
testpath                      0.4.4
text-unidecode                1.3
thinc                         6.12.1
threadpoolctl                 2.1.0
tifffile                      2020.9.3
toml                          0.10.0
toolz                         0.11.1
torch                         1.7.1
torch-cluster                 1.5.8
torch-geometric               1.6.3
torch-points-kernels          0.6.10
torch-points3d                1.2.0
torch-scatter                 2.0.5
torch-sparse                  0.6.8
torchfile                     0.1.0
torchnet                      0.0.4
torchsparse                   1.1.0
torchtext                     0.4.0
torchvision                   0.8.2
tornado                       6.0.4
tqdm                          4.59.0
traitlets                     4.3.3
typepy                        0.6.6
typing                        3.7.4.1
typing-extensions             3.7.4.1
ujson                         4.0.2
Unidecode                     1.1.1
urllib3                       1.26.3
visdom                        0.1.8.9
wandb                         0.8.36
watchdog                      2.0.0
wcwidth                       0.2.5
webencodings                  0.5.1
websocket-client              0.57.0
Werkzeug                      1.0.0
wheel                         0.36.2
widgetsnbextension            3.5.1
wrapt                         1.10.11
yacs                          0.1.6
zipp                          3.1.0

MinkowskiEngine is actually not essential to this project, you can skip this install, it should be fine. Let me know if this causes trouble later on.

This error seems related to jupyter-dash installation (I am not 100% from the logs). This package is useful for using plotly in jupyter. If this part of the install.sh does not setup properly, please refer to: https://plotly.com/python/getting-started/#jupyterlab-support.

Hope this helps !

altaykacan commented 1 year ago

Yes thank you so much it really helps!