NVIDIA / MinkowskiEngine

Minkowski Engine is an auto-diff neural network library for high-dimensional sparse tensors
https://nvidia.github.io/MinkowskiEngine
Other
2.43k stars 360 forks source link

Pip install with "error: command '/usr/bin/gcc' failed with exit code 1" #498

Closed zichunxx closed 1 year ago

zichunxx commented 1 year ago

Hi!

When I follow the tutorial to install this eigine and perform the following steps:


conda create -n py3-mink python=3.8

conda activate py3-mink

conda install openblas-devel -c anaconda

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

export CUDA_HOME=/usr/local/cuda-11.3

pip install -U git+https://github.com/NVIDIA/MinkowskiEngine -v --no-deps --install-option="--blas_include_dirs=${CONDA_PREFIX}/include" --install-option="--blas=openblas"

I met this error:

  gcc -pthread -B /home/xzc/anaconda3/envs/py38-mink/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/xzc/anaconda3/envs/py38-mink/lib/python3.8/site-packages/torch/include -I/home/xzc/anaconda3/envs/py38-mink/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/xzc/anaconda3/envs/py38-mink/lib/python3.8/site-packages/torch/include/TH -I/home/xzc/anaconda3/envs/py38-mink/lib/python3.8/site-packages/torch/include/THC -I/tmp/pip-req-build-i42ez7_d/src -I/tmp/pip-req-build-i42ez7_d/src/3rdparty -I/home/xzc/anaconda3/envs/py38-mink/include -I/home/xzc/anaconda3/envs/py38-mink/include/python3.8 -c /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp -o build/temp.linux-x86_64-cpython-38/tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.o -fopenmp -O3 -DCPU_ONLY -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  In file included from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:28:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In function ‘std::vector<at::Tensor> minkowski::detail::interpolation_map_weight_kernel(uint32_t, uint32_t, const Dtype*, const MapType&, const stride_type&)’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:160:54: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    160 |   std::for_each(num_used.begin(), num_used.end(), [](auto &i) { i = 0; });
        |                                                      ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘minkowski::CoordinateMapCPU<coordinate_type, TemplatedAllocator>::self_type minkowski::CoordinateMapCPU<coordinate_type, TemplatedAllocator>::origin() const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:496:22: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    496 |                   [](auto &i) { i = 0; });
        |                      ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:504:46: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    504 |     std::for_each(dst.begin(), dst.end(), [](auto &i) { i = 0; });
        |                                              ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘minkowski::cpu_kernel_map minkowski::CoordinateMapCPU<coordinate_type, TemplatedAllocator>::kernel_map(const self_type&, const minkowski::cpu_kernel_region<coordinate_type>&) const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:581:56: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    581 |     std::for_each(num_used.begin(), num_used.end(), [](auto &i) { i = 0; });
        |                                                        ^~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/coordinate.hpp:30,
                   from /tmp/pip-req-build-i42ez7_d/src/coordinate_map.hpp:29,
                   from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:27:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘minkowski::cpu_kernel_map minkowski::CoordinateMapCPU<coordinate_type, TemplatedAllocator>::origin_map(const self_type&) const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:729:27: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    729 |                        [](auto const &i) { return i == 0; }),
        |                           ^~~~
  /tmp/pip-req-build-i42ez7_d/src/utils.hpp:143:11: note: in definition of macro ‘ASSERT’
    143 |     if (!(condition)) {                                                        \
        |           ^~~~~~~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:28:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:756:48: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    756 |       std::for_each(dst.begin(), dst.end(), [](auto &i) { i = 0; });
        |                                                ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘void minkowski::CoordinateFieldMapCPU<coordinate_field_type, coordinate_int_type, TemplatedAllocator>::quantize_coordinates(coordinate_int_type*, const stride_type&) const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:998:72: error: wrong number of template arguments (0, should be 1)
    998 |         tensor_stride.begin(), tensor_stride.end(), 1, std::multiplies<>());
        |                                                                        ^
  In file included from /usr/include/c++/9/string:48,
                   from /usr/include/c++/9/bits/locale_classes.h:40,
                   from /usr/include/c++/9/bits/ios_base.h:41,
                   from /usr/include/c++/9/ios:42,
                   from /usr/include/c++/9/ostream:38,
                   from /usr/include/c++/9/iostream:39,
                   from /tmp/pip-req-build-i42ez7_d/src/utils.hpp:29,
                   from /tmp/pip-req-build-i42ez7_d/src/coordinate.hpp:30,
                   from /tmp/pip-req-build-i42ez7_d/src/coordinate_map.hpp:29,
                   from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:27:
  /usr/include/c++/9/bits/stl_function.h:187:12: note: provided for ‘template<class _Tp> struct std::multiplies’
    187 |     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
        |            ^~~~~~~~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:28:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘minkowski::CoordinateFieldMapCPU<coordinate_field_type, coordinate_int_type, TemplatedAllocator>::coordinate_map_type minkowski::CoordinateFieldMapCPU<coordinate_field_type, coordinate_int_type, TemplatedAllocator>::origin() const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:1045:22: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
   1045 |                   [](auto &i) { i = 0; });
        |                      ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:1055:46: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
   1055 |     std::for_each(dst.begin(), dst.end(), [](auto &i) { i = 0; });
        |                                              ^~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/coordinate.hpp:30,
                   from /tmp/pip-req-build-i42ez7_d/src/coordinate_map.hpp:29,
                   from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:27:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp: In member function ‘minkowski::cpu_kernel_map minkowski::CoordinateFieldMapCPU<coordinate_field_type, coordinate_int_type, TemplatedAllocator>::origin_map(const coordinate_map_type&) const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:1073:27: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
   1073 |                        [](auto const &i) { return i == 0; }),
        |                           ^~~~
  /tmp/pip-req-build-i42ez7_d/src/utils.hpp:143:11: note: in definition of macro ‘ASSERT’
    143 |     if (!(condition)) {                                                        \
        |           ^~~~~~~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:28:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_cpu.hpp:1100:48: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
   1100 |       std::for_each(dst.begin(), dst.end(), [](auto &i) { i = 0; });
        |                                                ^~~~
  In file included from /tmp/pip-req-build-i42ez7_d/src/broadcast_cpu.cpp:30:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_manager.hpp: In function ‘minkowski::type_wrapper<unsigned int, int, float>::stride_type minkowski::detail::_fill_vec(size_t)’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_manager.hpp:77:44: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
     77 |   std::for_each(vec.begin(), vec.end(), [](auto &i) { i = V; });
        |                                            ^~~~
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_manager.hpp: In member function ‘minkowski::kernel_map_key_type minkowski::CoordinateMapManager<coordinate_type, coordinate_field_type, TemplatedAllocator, CoordinateMapType>::origin_map_key(const coordinate_map_key_type&) const’:
  /tmp/pip-req-build-i42ez7_d/src/coordinate_map_manager.hpp:512:56: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
    512 |     std::for_each(zero_vec.begin(), zero_vec.end(), [](auto &i) { i = 0; });
        |                                                        ^~~~
  error: command '/usr/bin/gcc' failed with exit code 1
  error: subprocess-exited-with-error

  × Running setup.py install for MinkowskiEngine did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

Has anyone experienced the same problem?

CUDA version : 11.3

python: 3.8

pytorch: 1.4.0

gcc g++: 10