Colin97 / OpenShape_code

official code of “OpenShape: Scaling Up 3D Shape Representation Towards Open-World Understanding”
https://colin97.github.io/OpenShape/
Apache License 2.0
236 stars 16 forks source link

install error #10

Closed StellarCheng closed 9 months ago

StellarCheng commented 1 year ago

Hello author, the guidance you provided "pip install -U git+https://github.com/NVIDIA/MinkowskiEngine" is not working for installation on the latest GPU A6000 with CUDA 12.1. Is there any way to install MinkowskiEngine on these new machines? Thanks!

Colin97 commented 1 year ago

No idea... Similar problems reported here: https://github.com/NVIDIA/MinkowskiEngine/issues/543.

StellarCheng commented 1 year ago

No idea... Similar problems reported here: NVIDIA/MinkowskiEngine#543.

So sad, So, is it means I need to run the code in a previous vision of CUDA? May I ask what GPU and CUDA versions you used in your project? Thanks

Colin97 commented 1 year ago

You can use the PointBERT backbone which doesn't need MinkowskiEngine.

We have tired various GPUs (e.g., A100, A10, RTX, etc) and CUDA versions (e.g., 11.3)

StellarCheng commented 1 year ago

You can use the PointBERT backbone which doesn't need MinkowskiEngine.

We have tired various GPUs (e.g., A100, A10, RTX, etc) and CUDA versions (e.g., 11.3)

Thanks for your quick reply~ Is the best performance model and the model you used in the demo from [pointbert-vitg14-rgb] which does not need MinkowskiEngine?

eliphatfs commented 1 year ago

The demo includes various models for different tasks (pointbert-vitg14/l14/b14-rgb), but they are all PointBERT models.

StellarCheng commented 1 year ago

The demo includes various models for different tasks (pointbert-vitg14/l14/b14-rgb), but they are all PointBERT models.

Thanks! Is there any example code using pointbert-vitg14/l14/b14-rgb to extract point clouds embedding from glb/obj file? Current example code is based on MinkowskiEngine

Colin97 commented 9 months ago

The demo includes various models for different tasks (pointbert-vitg14/l14/b14-rgb), but they are all PointBERT models.

Thanks! Is there any example code using pointbert-vitg14/l14/b14-rgb to extract point clouds embedding from glb/obj file? Current example code is based on MinkowskiEngine

Please refer to the demo code.

rayryeng commented 1 week ago

Hello - I just wanted to mention that the fix linked in the thread posted (https://github.com/NVIDIA/MinkowskiEngine/issues/543#issuecomment-1773458776) fixed the problem for me. I'm also using an A6000. The extra complication is that I'm also installing this all in a Docker container, so I used a Docker directive to insert the necessary headers in the required files, then build it. This works with PyTorch 2.3.1, CUDA 12.1 with the NVIDIA image as nvidia/cuda:12.1.1-devel-ubuntu20.04.

For posterity:

ENV CUDA_HOME=/usr/local/cuda
ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 6.2 7.0 7.2 7.5 8.0 8.6 8.9"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
RUN git clone https://github.com/NVIDIA/MinkowskiEngine.git /tmp/MinkowskiEngine \
    && cd /tmp/MinkowskiEngine \
    && sed -i '31i #include <thrust/execution_policy.h>' ./src/convolution_kernel.cuh \
    && sed -i '39i #include <thrust/unique.h>\n#include <thrust/remove.h>' ./src/coordinate_map_gpu.cu \
    && sed -i '38i #include <thrust/execution_policy.h>\n#include <thrust/reduce.h>\n#include <thrust/sort.h>' ./src/spmm.cu \
    && sed -i '38i #include <thrust/execution_policy.h>' ./src/3rdparty/concurrent_unordered_map.cuh \
    && python setup.py install --force_cuda --blas=openblas \
    && cd - \
    && rm -rf /tmp/MinkowskiEngine

Take special care that the architecture list needs to include 8.9 as 8.9 is specifically for Ada architectures (i.e. A6000). If you don't want to use Docker, this should work by just removing RUN and doing this in your native environment, and also replacing ENV with export. Thanks!

One last thing to take care of - I also had to change the way the DGL library was installed - conda install -y -c dglteam/label/th23_cu121 dgl. Because of the change from CUDA 11 to CUDA 12, the source of where I needed to get DGL also needed to change.