Giter Club home page Giter Club logo

torchsparse's Introduction

TorchSparse

TorchSparse is a high-performance neural network library for point cloud processing.

Introduction

Point cloud computation has become an increasingly more important workload for autonomous driving and other applications. Unlike dense 2D computation, point cloud convolution has sparse and irregular computation patterns and thus requires dedicated inference system support with specialized high-performance kernels. While existing point cloud deep learning libraries have developed different dataflows for convolution on point clouds, they assume a single dataflow throughout the execution of the entire model. In this work, we systematically analyze and improve existing dataflows. Our resulting system, TorchSparse, achieves 2.9x, 3.3x, 2.2x and 1.7x measured end-to-end speedup on an NVIDIA A100 GPU over the state-of-the-art MinkowskiEngine, SpConv 1.2, TorchSparse (MLSys) and SpConv v2 in inference respectively.

News

[2023/11] TorchSparse++ has been adopted by One-2-3-45++ from Prof. Hao Su's lab (UCSD) for 3D object generation!

[2023/10] We present TorchSparse++ at 56th IEEE/ACM International Symposium on Microarchitecture (MICRO 2023). We also fully release the source code of TorchSparse++.

[2023/6] TorchSparse++ has been adopted by One-2-3-45 from Prof. Hao Su's lab (UCSD) for 3D mesh reconstruction!

[2023/6] TorchSparse++ has been released and presented at CVPR 2023 workshops on autonomous driving. It achieves 1.7-2.9x inference speedup over previous state-of-the-art systems.

[2023/1] Argoverse 2 dataset implements their baseline detector with TorchSparse.

[2022/8] TorchSparse is presented at MLSys 2022. Talk video is available here.

[2022/6] TorchSparse has been adopted by SparseNeuS for neural surface reconstruction.

[2022/1] TorchSparse has been accepted to MLSys 2022, featuring adaptive matrix multiplication grouping and locality-aware memory access.

[2021/6] TorchSparse v1.4 has been released.

Installation

We provide pre-built torchsparse v2.1.0 packages (recommended) with different PyTorch and CUDA versions to simplify the building for the Linux system.

  1. Ensure at least PyTorch 1.9.0 is installed:

    python -c "import torch; print(torch.__version__)"
    >>> 1.10.0
  2. If you want to use TorchSparse with gpus, please ensure PyTorch was installed with CUDA:

    python -c "import torch; print(torch.version.cuda)"
    >>> 11.3
  3. Then the right TorchSparse wheel can be found and installed by running the installation script:

    python -c "$(curl -fsSL https://raw.githubusercontent.com/mit-han-lab/torchsparse/master/install.py)"

If Pypi server does not work as expected, no worries, you can still manually download the wheels. The wheels are listed in this website. One can utilize our installation script to automatically determine the version number used to index the wheels. For example, if you use PyTorch 1.11.0, CUDA 11.5, the version number will end up to be 2.1.0+torch111cu115. You can then select the proper wheel according to your Python version.

You may also alternatively install our library from source via:

python setup.py install

in the repository, or using

pip install git+https://github.com/mit-han-lab/torchsparse.git

without the need to clone the repository.

Benchmarks

Inference benchmarks

eval_benchmark.png

TorchSparse significantly outperforms existing point cloud inference engines in both 3D object detection and LiDAR segmentation benchmarks across three generations of GPU architecture (Pascal, Turing and Ampere) and all precisions (FP16, TF32, FP32). It is up to 1.7x faster than state-of-the-art SpConv 2.3.5 and is up to 2.2x faster than
TorchSparse-MLsys on cloud GPUs. It also improves the latency of SpConv 2.3.5 by 1.25× on Orin.

Training benchmarks

train_benchmark.png

TorchSparse achieves superior mixed-precision training speed compared with MinkowskiEngine, TorchSparse-MLSys and SpConv 2.3.5. Specifically, it is 1.16x faster on Tesla A100, 1.27x faster on RTX 2080 Ti than state-of-the-art SpConv 2.3.5. It also significantly outperforms MinkowskiEngine by 4.6-4.8x across seven benchmarks on A100 and 2080 Ti. Measured with batch size = 2.

You may find our benchmarks from this link. To access preprocessed datasets, please contact the authors. We cannot publicly release raw data from SemanticKITTI, nuScenes and Waymo due to license requirements.

Team

TorchSparse is developed by the following wonderful team:

  • Haotian Tang: Ph.D. student (2020-) at MIT EECS, project lead, v2.0 and v2.1 lead;
  • Shang Yang: Ph.D. student (2023-) at MIT EECS, project lead, v2.1 lead;
  • Zhijian Liu: Ph.D. student (2018-) at MIT EECS, project lead, v2.0 lead;
  • Xiuyu Li: Ph.D. student (2022-) at UC Berkeley EECS, v2.0 lead;
  • Ke Hong: Graduate student (2021-) at Tsinghua University EE, v2.1 core developer, authored PCEngine kernels;
  • Zhongming Yu: Ph.D. student (2022-) at UCSD CS, v2.1 core developer, authored PCEngine kernels;
  • Yujun Lin: Ph.D. student (2018-) at MIT EECS, v2.0 core developer;
  • Yingqi Cao: Undergrad student at UC San Diego, currently working on the TorchSparse++ integration into algorithm frameworks;
  • Guohao Dai: Associate Professor at Shanghai Jiao Tong University, mentor of the project;
  • Yu Wang: Professor at Tsinghua University, mentor of the project;
  • Song Han: Associate Professor at MIT EECS, mentor of the project.

Citation

If you use TorchSparse, please use the following BibTeX entries to cite:

TorchSparse++ (TorchSparse v2.1) is presented at MICRO 2023:

@inproceedings{tangandyang2023torchsparse,  
  title={TorchSparse++: Efficient Training and Inference Framework for Sparse Convolution on GPUs},  
  author={Tang, Haotian and Yang, Shang and Liu, Zhijian and Hong, Ke and Yu, Zhongming and Li, Xiuyu and Dai, Guohao and Wang, Yu and Han, Song},  
  booktitle={IEEE/ACM International Symposium on Microarchitecture (MICRO)},  
  year={2023}
}

Preliminary version of TorchSparse++ (TorchSparse v2.1) is presented at CVPR Workshops 2023:

@inproceedings{tangandyang2023torchsparse++,
  title = {{TorchSparse++: Efficient Point Cloud Engine}},
  author = {Tang, Haotian and Yang, Shang and Liu, Zhijian and Hong, Ke and Yu, Zhongming and Li, Xiuyu and Dai, Guohao and Wang, Yu and Han, Song},
  booktitle = {Computer Vision and Pattern Recognition Workshops (CVPRW)},
  year = {2023}
}

TorchSparse is presented at MLSys 2022:

@inproceedings{tang2022torchsparse,
  title = {{TorchSparse: Efficient Point Cloud Inference Engine}},
  author = {Tang, Haotian and Liu, Zhijian and Li, Xiuyu and Lin, Yujun and Han, Song},
  booktitle = {Conference on Machine Learning and Systems (MLSys)},
  year = {2022}
}

Initial version of TorchSparse is part of the SPVNAS paper at ECCV 2020:

@inproceedings{tang2020searching,
  title = {{Searching Efficient 3D Architectures with Sparse Point-Voxel Convolution}},
  author = {Tang, Haotian and Liu, Zhijian and Zhao, Shengyu and Lin, Yujun and Lin, Ji and Wang, Hanrui and Han, Song},
  booktitle = {European Conference on Computer Vision (ECCV)},
  year = {2020}
}

PCEngine paper is accepted by MLSys 2023:

@inproceedings{hong2023pcengine,
  title={{Exploiting Hardware Utilization and Adaptive Dataflow for Efficient Sparse Convolution in 3D Point Clouds}},
  author={Hong, Ke and Yu, Zhongming and Dai, Guohao and Yang, Xinhao and Lian, Yaoxiu and Liu, Zehao and Xu, Ningyi and Wang, Yu},
  booktitle={Sixth Conference on Machine Learning and Systems (MLSys)},
  year={2023}
}

Acknowledgement

We thank Yan Yan from TuSimple for helpful discussions. Please also have a look at the dgSparse library, which is designed for fast and efficient sparse computation on graphs and point clouds. The work from PCEngine (MLSys 2023) team is also highly related to us.

TorchSparse is inspired by many existing open-source libraries, including (but not limited to) MinkowskiEngine, SECOND and SparseConvNet.

We also thank AttributeDict for providing an elegant way to manage the kernel/model configurations.

torchsparse's People

Contributors

ccinc avatar digital-idiot avatar gyes00205 avatar ioeddk avatar kentang-mit avatar noahstier avatar resuly avatar sandeepnmenon avatar snuffle-px avatar tonylianlong avatar victoryc avatar wangg12 avatar xiuyu-li avatar ys-2020 avatar zhijian-liu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

torchsparse's Issues

ERROR: bucket overflow

I occasionally get the following error for the code that normally works. Any idea what causes this error?

526/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
512/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
514/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
516/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
528/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
530/512 ERROR: bucket overflow! (n=823, bucket_num=2/4, key=0)
...

An observation that may or may not be relevant: I noticed that this error seems to occur when the number of coordinates in the sparse tensor is small. The same code ran fine without producing the above error when a bigger input with more coordinates was fed.

GroupNorm

Seems like GroupNorm isn't currently available in the library. Would it be easy to add one? Any guidance on implementing it would be helpful.

Installation Error

Hi, I'm facing this error while installing, could you please advise

Building wheels for collected packages: torchsparse
  Building wheel for torchsparse (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/ubuntu/anaconda3/envs/torchsparse/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-fabr4lz5
       cwd: /tmp/pip-req-build-u2gq55qz/
  Complete output (127 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.6
  creating build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/point_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/sparse_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse
  creating build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/helpers.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/kernel_region.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  creating build/lib.linux-x86_64-3.6/torchsparse/nn
  copying torchsparse/nn/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn
  creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/crop.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/norm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  creating build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/downsample.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/devox.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/count.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/hash.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/voxelize.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/crop.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  running build_ext
  building 'torchsparse_cuda' extension
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation
  creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/others
  Emitting ninja build file /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/build.ninja...
  Compiling objects...
  Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
  [1/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  FAILED: /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o
  c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp:3:10: fatal error: THC/THCBlas.h: No such file or directory
   #include <THC/THCBlas.h>
            ^~~~~~~~~~~~~~~
  compilation terminated.
  [2/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  FAILED: /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o
  c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  In file included from /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp:9:0:
  /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_gpu.h:5:10: fatal error: THC/THCBlas.h: No such file or directory
   #include <THC/THCBlas.h>
            ^~~~~~~~~~~~~~~
  compilation terminated.
  [3/25] /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o.d -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_gpu.cu -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
  [4/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/hash/hash_cpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [5/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/hash/hash.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [6/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_cpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  ninja: build stopped: subcommand failed.
  Traceback (most recent call last):
    File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1673, in _run_ninja_build
      env=env)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/subprocess.py", line 438, in run
      output=stdout, stderr=stderr)
  subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

  The above exception was the direct cause of the following exception:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-req-build-u2gq55qz/setup.py", line 73, in <module>
      zip_safe=False,
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
      return distutils.core.setup(**attrs)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 79, in run
      _build_ext.run(self)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 339, in run
      self.build_extensions()
    File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions
      build_ext.build_extensions(self)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
      self._build_extensions_serial()
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
      self.build_extension(ext)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 196, in build_extension
      _build_ext.build_extension(self, ext)
    File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
      depends=ext.depends)
    File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 538, in unix_wrap_ninja_compile
      with_cuda=with_cuda)
    File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1359, in _write_ninja_file_and_compile_objects
      error_prefix='Error compiling objects for extension')
    File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1683, in _run_ninja_build
      raise RuntimeError(message) from e
  RuntimeError: Error compiling objects for extension
  ----------------------------------------
  ERROR: Failed building wheel for torchsparse
  Running setup.py clean for torchsparse
Failed to build torchsparse
Installing collected packages: torchsparse
    Running setup.py install for torchsparse ... error
    ERROR: Command errored out with exit status 1:
     command: /home/ubuntu/anaconda3/envs/torchsparse/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-wl6r8_0a/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m/torchsparse
         cwd: /tmp/pip-req-build-u2gq55qz/
    Complete output (129 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/point_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/sparse_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse
    creating build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/helpers.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/kernel_region.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    creating build/lib.linux-x86_64-3.6/torchsparse/nn
    copying torchsparse/nn/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/crop.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/norm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/downsample.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/devox.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/count.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/hash.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/voxelize.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/crop.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    running build_ext
    building 'torchsparse_cuda' extension
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation
    creating /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/others
    Emitting ninja build file /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/build.ninja...
    Compiling objects...
    Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
    [1/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    FAILED: /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o
    c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    In file included from /tmp/pip-req-build-u2gq55qz/torchsparse/src/torchsparse_bindings_gpu.cpp:9:0:
    /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_gpu.h:5:10: fatal error: THC/THCBlas.h: No such file or directory
     #include <THC/THCBlas.h>
              ^~~~~~~~~~~~~~~
    compilation terminated.
    [2/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    FAILED: /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o
    c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution.cpp:3:10: fatal error: THC/THCBlas.h: No such file or directory
     #include <THC/THCBlas.h>
              ^~~~~~~~~~~~~~~
    compilation terminated.
    [3/25] /usr/local/cuda/bin/nvcc --generate-dependencies-with-compile --dependency-output /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o.d -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_gpu.cu -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
    [4/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/convolution/convolution_cpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [5/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/hash/hash_cpu.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [6/25] c++ -MMD -MF /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o.d -pthread -B /home/ubuntu/anaconda3/envs/torchsparse/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/TH -I/home/ubuntu/.local/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m -c -c /tmp/pip-req-build-u2gq55qz/torchsparse/src/hash/hash.cpp -o /tmp/pip-req-build-u2gq55qz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    ninja: build stopped: subcommand failed.
    Traceback (most recent call last):
      File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1673, in _run_ninja_build
        env=env)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/subprocess.py", line 438, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-u2gq55qz/setup.py", line 73, in <module>
        zip_safe=False,
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 79, in run
        _build_ext.run(self)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 339, in run
        self.build_extensions()
      File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions
        build_ext.build_extensions(self)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 448, in build_extensions
        self._build_extensions_serial()
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 473, in _build_extensions_serial
        self.build_extension(ext)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 196, in build_extension
        _build_ext.build_extension(self, ext)
      File "/home/ubuntu/anaconda3/envs/torchsparse/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
        depends=ext.depends)
      File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 538, in unix_wrap_ninja_compile
        with_cuda=with_cuda)
      File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1359, in _write_ninja_file_and_compile_objects
        error_prefix='Error compiling objects for extension')
      File "/home/ubuntu/.local/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1683, in _run_ninja_build
        raise RuntimeError(message) from e
    RuntimeError: Error compiling objects for extension
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/ubuntu/anaconda3/envs/torchsparse/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-u2gq55qz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-wl6r8_0a/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/anaconda3/envs/torchsparse/include/python3.6m/torchsparse Check the logs for full command output.

Comparison to SparseConvNet

From the point of view of 3D semantic labeling and instance segmentation, how does this library compare to SparseConvNet? I understand this library is faster. But, are there any other pros/cons? Is there is implication on performance (i.e., measures such as IOU, mAP etc.)?
Thanks.

Runtime error and CUDA version

If I copy and paste your example.py I get the following error:

root@cb8599ff5efb:/working_dir# python -m sparseUnet.example_test
Starting dummy training...
<torchsparse.sparse_tensor.SparseTensor object at 0x7f27fab94e80>
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/working_dir/sparseUnet/example_test.py", line 71, in <module>
    dummy_train(device)
  File "/working_dir/sparseUnet/example_test.py", line 63, in dummy_train
    loss.backward()
  File "/usr/local/lib/python3.6/dist-packages/torch/tensor.py", line 185, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "/usr/local/lib/python3.6/dist-packages/torch/autograd/__init__.py", line 127, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError

I'm running this in CPU mode inside my Docker container with the specifications provided, I have provided to you my Dockerfile in the attachment

Dockerfile.zip

Also, running the performance.py I get another error:

root@04efb3781b40:/working_dir# python -m sparseUnet.example_test2
DEVICE:  cpu
Starting dummy_train_3x1 ...
[W record_function.cpp:154] Exception in RecordFunction callback: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version , for the range profiler::_record_function_enter
[W record_function.cpp:154] Exception in RecordFunction callback: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version , for the range profiler::_record_function_enter
[W record_function.cpp:154] Exception in RecordFunction callback: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version , for the range model_inference
[W record_function.cpp:154] Exception in RecordFunction callback: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version , for the range model_inference
Traceback (most recent call last):
  File "/working_dir/sparseUnet/example_test2.py", line 97, in dummy_train_3x1
    with profiler.record_function("model_inference"):
  File "/usr/local/lib/python3.6/dist-packages/torch/autograd/profiler.py", line 419, in __enter__
    self.handle = torch.ops.profiler._record_function_enter(self.name)
RuntimeError: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/working_dir/sparseUnet/example_test2.py", line 119, in <module>
    dummy_train_3x1(device)
  File "/working_dir/sparseUnet/example_test2.py", line 106, in dummy_train_3x1
    optimizer.step()
  File "/usr/local/lib/python3.6/dist-packages/torch/autograd/profiler.py", line 326, in __exit__
    records = torch.autograd._disable_profiler()
RuntimeError: /pytorch/torch/csrc/autograd/profiler_cuda.cpp:36: CUDA driver version is insufficient for CUDA runtime version

I have already changed to cuda 10.2 but the error remains. I am on Mac OS but Inside Docker

torchsparse_cuda issue

Hello, I am having the following issue with torchsparse which arises when torchsparse_cuda calls hash_forward():

AttributeError: module 'torchsparse_cuda' has no attribute 'hash_forward'

I believe the root of the problem is due to the process of torchsparse installation. On my machine I do not have CUDA installed system-wide. Instead I use conda virtual environments and install cudatoolkit and cudnn as required. In the torchsparse setup.py it is checking for CUDA_HOME != None which I think eventually causes the problem.

Altogether I suppose my question/issue is that I would like to use torchsparse without having to change my exisiting CUDA installation process. Is this possible?

Random seed, repeatability

I am noticing that repeated runs of the same code with same data is producing somewhat different results. Is there something we need to do get repeatable pseudo-random behavior with TorchSparse?

I am calling the following at the beginning of my script to ensure repeatability as far as PyTorch is considered.

        torch.manual_seed(manual_seed)
        torch.backends.cudnn.deterministic = True
        torch.backends.cudnn.benchmark = False

AttributeError: 'torchsparse_backend' has no attribute 'kernel_hash_forward'

I built the Docker image for training a network using torchsparse. When it starts, I get the following error. Any idea about the cause?

AttributeError: module 'torchsparse_backend' has no attribute 'kernel_hash_forward'

Thanks.

Callstack:

...
File "/root/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/root/miniconda3/lib/python3.8/site-packages/torchsparse-1.2.0-py3.8-linux-x86_64.egg/torchsparse/nn/modules/conv.py", line 72, in forward
    return conv3d(inputs,
  File "/root/miniconda3/lib/python3.8/site-packages/torchsparse-1.2.0-py3.8-linux-x86_64.egg/torchsparse/nn/functional/conv.py", line 142, in conv3d
    hash_query = sphash(coords, kOffset)
  File "/root/miniconda3/lib/python3.8/site-packages/torchsparse-1.2.0-py3.8-linux-x86_64.egg/torchsparse/nn/functional/hash.py", line 41, in sphash
    return KernelHashGPU.apply(idx, koffset)
  File "/root/miniconda3/lib/python3.8/site-packages/torchsparse-1.2.0-py3.8-linux-x86_64.egg/torchsparse/nn/functional/hash.py", line 24, in forward
    return torchsparse_backend.kernel_hash_forward(
AttributeError: module 'torchsparse_backend' has no attribute 'kernel_hash_forward'

Supporting PointTensor in sparse_collate_fn

Hello
Is there a reason for not supporting PointTensor object types as SparseTensor in sparse_collate_fn. By support I mean adding the batch index to for each point coordinate same as SparseTensor.

Thanks.

Exception on certain convolution configurations

Related to #16

I think this is a bug. If not, a clearer error message might be helpful.

Both of these test cases raise the same exception:

import torchsparse
import torchsparse.nn
import torch


def test(coords, stride):
    feat_depth_in = 3
    feat_depth_out = 1
    kernel_size = 2
    feats = torch.randn(len(coords), feat_depth_in).to(torch.float32)
    inputs = torchsparse.SparseTensor(feats, coords)
    conv = torchsparse.nn.Conv3d(
        feat_depth_in, feat_depth_out, kernel_size=kernel_size, stride=stride
    )
    conv(inputs)


coords = torch.Tensor(
    [
        [76, 74, 4, 0],
        [77, 74, 4, 0],
        [76, 75, 4, 0],
        [76, 74, 5, 0],
        [77, 75, 4, 0],
        [76, 75, 5, 0],
        [77, 74, 5, 0],
        [77, 75, 5, 0],
    ]
).to(torch.int32)

test(coords, 2)
test(coords[:1], 1)

backtrace:

ValueError                                Traceback (most recent call last)
<ipython-input-2-ebdce6b86d44> in <module>
     31     ]
     32 ).to(torch.int32)
---> 33 test(coords, 2)

<ipython-input-2-ebdce6b86d44> in test(coords, stride)
     16         feat_depth_in, feat_depth_out, kernel_size=kernel_size, stride=stride
     17     )
---> 18     conv(inputs)
     19 
     20 

~/miniconda3/lib/python3.8/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
    887             result = self._slow_forward(*input, **kwargs)
    888         else:
--> 889             result = self.forward(*input, **kwargs)
    890         for hook in itertools.chain(
    891                 _global_forward_hooks.values(),

~/miniconda3/lib/python3.8/site-packages/torchsparse/nn/modules/conv.py in forward(self, inputs)
     70 
     71     def forward(self, inputs):
---> 72         return conv3d(inputs,
     73                       self.kernel,
     74                       kernel_size=self.kernel_size,

~/miniconda3/lib/python3.8/site-packages/torchsparse/nn/functional/conv.py in conv3d(inputs, kernel, kernel_size, bias, stride, dilation, transpose)
    116             hash_target = sphash(coords)
    117             idx_query = sphashquery(hash_query, hash_target)
--> 118             idx_query = list(convert_neighbor_map_gpu(idx_query))
    119             idx_query[1] = idx_query[1].to('cpu')
    120             sizes = (features.shape[0], new_coords.shape[0])

~/miniconda3/lib/python3.8/site-packages/torchsparse/nn/functional/convert_neighbor_map.py in forward(ctx, neighbor_map)
      7     @staticmethod
      8     def forward(ctx, neighbor_map):
----> 9         idx_batch, idx_point = torch.where(neighbor_map != -1)
     10         if 'cuda' in str(neighbor_map.device):
     11             map_converted = torchsparse_backend.convert_map_forward(

ValueError: not enough values to unpack (expected 2, got 1)

Documentation

Some functionalities this library provides aren't always intuitive therefore some docstrings would be very helpful.

Can torchsparse process batch-wise point cloud data?

Hi,

Thanks for your useful torchsparse. I notices that in tutorials, torchsparse can only be used to process single scene data. If I want to process multiple scene point cloud data with shape [B, N, 4], what should I do? I can't find document about this.

Sincerely thanks for your reply!

Best regards,

Hilbert Xu

Voxelization with specified spatial extent

torchsparse/torchsparse/nn/functional/voxelize.py

If I understood it correctly, the voxelization performed by the function torchsparse/torchsparse/nn/functional/voxelize.py is according to the extent of the provided point cloud (tensor). However extent derived from the point cloud may not represent the actual spatial extent due to sparsity of points. In that case how can these methods be adopted where min and max extent for each dimension can be specified. For example, the implementation of points_to_voxel function here: https://github.com/traveller59/spconv/blob/master/spconv/utils/__init__.py .


To explain it better, I attach the following figure:

Voxelization

This figure shows the issue for 2D case. Here, the orange grid represents the voxels generated from the extent derived from the point cloud itself. The gray grid represents the voxels genrated if custom extents are specified. My intention is to generate the voxels in gray instead of the orange voxels.

RuntimeError: CUDA error: CUBLAS_STATUS_INTERNAL_ERROR when calling `cublasCreate(handle)`

Hi, I followed the instructions in README
torchpack dist-run -np 1 python evaluate.py configs/semantic_kitti/default.yaml --name SemanticKITTI_val_SPVNAS@65GMACs
I wonder if there is any step I missed. There are some error messages:

Downloading: "https://hanlab.mit.edu/files/SPVNAS/spvnas_specialized/SemanticKITTI_val_SPVNAS@65GMACs/net.config" to .torch/spvnas_specialized/SemanticKITTI_val_SPVNAS@65GMACs/net.config
Traceback (most recent call last):
  File "evaluate.py", line 146, in <module>
    main()
  File "evaluate.py", line 65, in main
    model = spvnas_specialized(args.name)
  File "/home/roger/workspace/e3d/spvnas/model_zoo.py", line 50, in spvnas_specialized
    model = model.determinize()
  File "/home/roger/workspace/e3d/spvnas/core/models/semantic_kitti/spvnas.py", line 311, in determinize
    x = self.forward(x)
  File "/home/roger/workspace/e3d/spvnas/core/models/semantic_kitti/spvnas.py", line 331, in forward
    x0 = self.stem(x0)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torch/nn/modules/container.py", line 119, in forward
    input = module(input)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torchsparse/nn/modules/conv.py", line 78, in forward
    transpose=self.t)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torchsparse/nn/functional/conv.py", line 151, in conv3d
    idx_query[1], sizes, transpose)
  File "/home/roger/anaconda3/envs/e3d/lib/python3.6/site-packages/torchsparse/nn/functional/conv.py", line 40, in forward
    transpose)
RuntimeError: CUDA error: CUBLAS_STATUS_INTERNAL_ERROR when calling cublasCreate(handle)

I ran it on Anaconda environment, and my environment information is as follow:

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
absl-py                   0.12.0                   pypi_0    pypi
aiocontextvars            0.2.2                    pypi_0    pypi
ca-certificates           2021.1.19            h06a4308_1  
cached-property           1.5.2                    pypi_0    pypi
cachetools                4.2.1                    pypi_0    pypi
certifi                   2020.12.5        py36h06a4308_0  
chardet                   4.0.0                    pypi_0    pypi
contextvars               2.4                      pypi_0    pypi
cudatoolkit               10.2.89              hfd86e86_1  
dataclasses               0.8                      pypi_0    pypi
google-auth               1.28.0                   pypi_0    pypi
google-auth-oauthlib      0.4.3                    pypi_0    pypi
grpcio                    1.36.1                   pypi_0    pypi
h5py                      3.1.0                    pypi_0    pypi
idna                      2.10                     pypi_0    pypi
immutables                0.15                     pypi_0    pypi
importlib-metadata        3.7.3                    pypi_0    pypi
ld_impl_linux-64          2.33.1               h53a641e_7  
libffi                    3.3                  he6710b0_2  
libgcc-ng                 9.1.0                hdf63c60_0  
libstdcxx-ng              9.1.0                hdf63c60_0  
llvmlite                  0.36.0                   pypi_0    pypi
loguru                    0.5.3                    pypi_0    pypi
markdown                  3.3.4                    pypi_0    pypi
mpi4py                    3.0.3                    pypi_0    pypi
msgpack                   1.0.2                    pypi_0    pypi
msgpack-numpy             0.4.7.1                  pypi_0    pypi
multimethod               1.5                      pypi_0    pypi
ncurses                   6.2                  he6710b0_1  
numba                     0.53.0                   pypi_0    pypi
numpy                     1.19.5                   pypi_0    pypi
oauthlib                  3.1.0                    pypi_0    pypi
opencv-python             4.5.1.48                 pypi_0    pypi
openssl                   1.1.1j               h27cfd23_0  
pillow                    8.1.2                    pypi_0    pypi
pip                       21.0.1           py36h06a4308_0  
protobuf                  3.15.6                   pypi_0    pypi
psutil                    5.8.0                    pypi_0    pypi
pyasn1                    0.4.8                    pypi_0    pypi
pyasn1-modules            0.2.8                    pypi_0    pypi
python                    3.6.13               hdb3f193_0  
pyyaml                    5.4.1                    pypi_0    pypi
pyzmq                     22.0.3                   pypi_0    pypi
readline                  8.1                  h27cfd23_0  
requests                  2.25.1                   pypi_0    pypi
requests-oauthlib         1.3.0                    pypi_0    pypi
rsa                       4.7.2                    pypi_0    pypi
scipy                     1.5.4                    pypi_0    pypi
setuptools                52.0.0           py36h06a4308_0  
six                       1.15.0                   pypi_0    pypi
sqlite                    3.35.1               hdfb4753_0  
tabulate                  0.8.9                    pypi_0    pypi
tdqm                      0.0.1                    pypi_0    pypi
tensorboard               2.4.1                    pypi_0    pypi
tensorboard-plugin-wit    1.8.0                    pypi_0    pypi
tensorboardx              2.1                      pypi_0    pypi
tensorpack                0.11                     pypi_0    pypi
termcolor                 1.1.0                    pypi_0    pypi
tk                        8.6.10               hbc83047_0  
torch                     1.8.0                    pypi_0    pypi
torchaudio                0.8.0                    pypi_0    pypi
torchpack                 0.3.0                    pypi_0    pypi
torchsparse               1.1.0                    pypi_0    pypi
torchvision               0.9.0                    pypi_0    pypi
tqdm                      4.59.0                   pypi_0    pypi
typing-extensions         3.7.4.3                  pypi_0    pypi
urllib3                   1.26.4                   pypi_0    pypi
werkzeug                  1.0.1                    pypi_0    pypi
wheel                     0.36.2             pyhd3eb1b0_0  
xz                        5.2.5                h7b6447c_0  
zipp                      3.4.1                    pypi_0    pypi
zlib                      1.2.11               h7b6447c_3 

Thank you!

ubuntu 2020 error

when i run ' pip install --upgrade git+https://github.com/mit-han-lab/torchsparse.git'
i got error.

ERROR: Command errored out with exit status 1:
   command: /home/ubantu/anaconda3/envs/py36/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-wmsoy7cl
       cwd: /tmp/pip-req-build-rwngglkz/
  Complete output (177 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.6
  creating build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/point_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse
  copying torchsparse/sparse_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
  creating build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/helpers.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  copying torchsparse/utils/kernel_region.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
  creating build/lib.linux-x86_64-3.6/torchsparse/nn
  copying torchsparse/nn/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn
  creating build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/sparseconv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/voxelize.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/count.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/devox.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/hash.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  copying torchsparse/nn/functional/downsample.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
  creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/batchnorm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
  running build_ext
  building 'torchsparse_cuda' extension
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation
  creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others
  Emitting ninja build file /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/build.ninja...
  Compiling objects...
  Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
  [1/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp: In member function ‘int HashTableCPU::insert_vals(const int64_t*, const int64_t*, int)’:
  /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp:37:1: warning: no return statement in function returning non-void [-Wreturn-type]
   }
   ^
  [2/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [3/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [4/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [5/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [6/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [7/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [8/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [9/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
  [10/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o
  c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp: In function ‘at::Tensor deterministic_devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp:14:7: warning: unused variable ‘b’ [-Wunused-variable]
     int b = feat.size(0);
         ^
  c++: internal compiler error: 已杀死 (program cc1plus)
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
  [11/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o
  c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp: In function ‘at::Tensor cpu_devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp:14:7: warning: unused variable ‘b’ [-Wunused-variable]
     int b = feat.size(0);
         ^
  c++: internal compiler error: 已杀死 (program cc1plus)
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
  [12/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o
  c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  c++: internal compiler error: 已杀死 (program cc1plus)
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
  [13/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [14/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [15/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [16/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [17/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp: In function ‘at::Tensor devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
  /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp:15:7: warning: unused variable ‘b’ [-Wunused-variable]
     int b = feat.size(0);
         ^
  [18/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [19/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [20/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [21/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [22/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  [23/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp: In function ‘at::Tensor cpu_insertion_backward(at::Tensor, at::Tensor, at::Tensor, int)’:
  /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp:39:7: warning: unused variable ‘N1’ [-Wunused-variable]
     int N1 = counts.size(0);
         ^~
  ninja: build stopped: subcommand failed.
  Traceback (most recent call last):
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1400, in _run_ninja_build
      check=True)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/subprocess.py", line 438, in run
      output=stdout, stderr=stderr)
  subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-req-build-rwngglkz/setup.py", line 70, in <module>
      zip_safe=False,
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/__init__.py", line 163, in setup
      return distutils.core.setup(**attrs)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/wheel/bdist_wheel.py", line 290, in run
      self.run_command('build')
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 87, in run
      _build_ext.run(self)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
      _build_ext.build_ext.run(self)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build_ext.py", line 339, in run
      self.build_extensions()
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 580, in build_extensions
      build_ext.build_extensions(self)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 194, in build_extensions
      self.build_extension(ext)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 208, in build_extension
      _build_ext.build_extension(self, ext)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
      depends=ext.depends)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 423, in unix_wrap_ninja_compile
      with_cuda=with_cuda)
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1140, in _write_ninja_file_and_compile_objects
      error_prefix='Error compiling objects for extension')
    File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1413, in _run_ninja_build
      raise RuntimeError(message)
  RuntimeError: Error compiling objects for extension
  ----------------------------------------
  ERROR: Failed building wheel for torchsparse
  Running setup.py clean for torchsparse
Failed to build torchsparse
DEPRECATION: Could not build wheels for torchsparse which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: torchsparse
    Running setup.py install for torchsparse ... error
    ERROR: Command errored out with exit status 1:
     command: /home/ubantu/anaconda3/envs/py36/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-dl_tmugw/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubantu/anaconda3/envs/py36/include/python3.6m/torchsparse
         cwd: /tmp/pip-req-build-rwngglkz/
    Complete output (179 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/point_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/sparse_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    creating build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/helpers.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/kernel_region.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    creating build/lib.linux-x86_64-3.6/torchsparse/nn
    copying torchsparse/nn/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/sparseconv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/voxelize.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/count.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/devox.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/hash.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/downsample.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/batchnorm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    running build_ext
    building 'torchsparse_cuda' extension
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation
    creating /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others
    Emitting ninja build file /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/build.ninja...
    Compiling objects...
    Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
    [1/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp: In member function ‘int HashTableCPU::insert_vals(const int64_t*, const int64_t*, int)’:
    /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap_cpu.cpp:37:1: warning: no return statement in function returning non-void [-Wreturn-type]
     }
     ^
    [2/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [3/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hashmap/hashmap.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hashmap/hashmap.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [4/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [5/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [6/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [7/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [8/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [9/25] /usr/local/cuda-10.1/bin/nvcc -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_gpu.cu -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_gpu.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -O3 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_75,code=sm_75 -std=c++14
    [10/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o
    c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    c++: internal compiler error: 已杀死 (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
    [11/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o
    c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/torchsparse_bindings_gpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    c++: internal compiler error: 已杀死 (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
    [12/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    FAILED: /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o
    c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/convolution/convolution.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/convolution/convolution.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    c++: internal compiler error: 已杀死 (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
    [13/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [14/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp: In function ‘at::Tensor cpu_devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_cpu.cpp:14:7: warning: unused variable ‘b’ [-Wunused-variable]
       int b = feat.size(0);
           ^
    [15/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox_deterministic.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp: In function ‘at::Tensor deterministic_devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox_deterministic.cpp:14:7: warning: unused variable ‘b’ [-Wunused-variable]
       int b = feat.size(0);
           ^
    [16/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [17/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/hash/hash.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/hash/hash.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [18/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/interpolation/devox.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp: In function ‘at::Tensor devoxelize_forward(at::Tensor, at::Tensor, at::Tensor)’:
    /tmp/pip-req-build-rwngglkz/torchsparse/src/interpolation/devox.cpp:15:7: warning: unused variable ‘b’ [-Wunused-variable]
       int b = feat.size(0);
           ^
    [19/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [20/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/convert_neighbor_map_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/convert_neighbor_map_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [21/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/count_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/count_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    [22/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_cpu.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp: In function ‘at::Tensor cpu_insertion_backward(at::Tensor, at::Tensor, at::Tensor, int)’:
    /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion_cpu.cpp:39:7: warning: unused variable ‘N1’ [-Wunused-variable]
       int N1 = counts.size(0);
           ^~
    [23/25] c++ -MMD -MF /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion.o.d -pthread -B /home/ubantu/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/TH -I/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/ubantu/anaconda3/envs/py36/include/python3.6m -c -c /tmp/pip-req-build-rwngglkz/torchsparse/src/others/insertion.cpp -o /tmp/pip-req-build-rwngglkz/build/temp.linux-x86_64-3.6/torchsparse/src/others/insertion.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    ninja: build stopped: subcommand failed.
    Traceback (most recent call last):
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1400, in _run_ninja_build
        check=True)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/subprocess.py", line 438, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-rwngglkz/setup.py", line 70, in <module>
        zip_safe=False,
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/__init__.py", line 163, in setup
        return distutils.core.setup(**attrs)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 87, in run
        _build_ext.run(self)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
        _build_ext.build_ext.run(self)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build_ext.py", line 339, in run
        self.build_extensions()
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 580, in build_extensions
        build_ext.build_extensions(self)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 194, in build_extensions
        self.build_extension(ext)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/setuptools/command/build_ext.py", line 208, in build_extension
        _build_ext.build_extension(self, ext)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/distutils/command/build_ext.py", line 533, in build_extension
        depends=ext.depends)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 423, in unix_wrap_ninja_compile
        with_cuda=with_cuda)
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1140, in _write_ninja_file_and_compile_objects
        error_prefix='Error compiling objects for extension')
      File "/home/ubantu/anaconda3/envs/py36/lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 1413, in _run_ninja_build
        raise RuntimeError(message)
    RuntimeError: Error compiling objects for extension
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/ubantu/anaconda3/envs/py36/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-rwngglkz/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-dl_tmugw/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubantu/anaconda3/envs/py36/include/python3.6m/torchsparse Check the logs for full command output.

wish your help please

Memory efficiency issue about the kernel map

Hi, I am curious about the implementations of the kernel map. Say we have 8192 valid convolution kernels, and the number of occupied voxels in each kernel is 8, then the total size of input in the kernel map is 8192*8*C_in, and the corresponding kernel is 8192*8*C_in*C_out. When C_in=32 and C_out=64, the total memory expense is 512MB for the current input instance, and when it comes to the batch of size 16, the total memory expense is huge. May I know how did you overcome this issue? Thanks.

Are there any suggestions for installing Google's sparse hash map project, if I am not a root user.

Are there any suggestions for installing Google's sparse hash map project, if I am not a root user.
When I was trying to compile and install it locally, I still encountered permission issues. Can you give me some suggestions?

make install-am
make[1]: Entering directory '/home/lijiale/envs_openpcdet2/sparsehash'
make[2]: Entering directory '/home/lijiale/envs_openpcdet2/sparsehash'
test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib"
test -z "/usr/local/share/doc/sparsehash-2.0.2" || /bin/mkdir -p "/usr/local/share/doc/sparsehash-2.0.2"
/bin/mkdir: cannot create directory ‘/usr/local/share/doc/sparsehash-2.0.2’: Permission denied
Makefile:692: recipe for target 'install-dist_docDATA' failed
make[2]: *** [install-dist_docDATA] Error 1
make[2]: Leaving directory '/home/lijiale/envs_openpcdet2/sparsehash'
Makefile:1144: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/home/lijiale/envs_openpcdet2/sparsehash'
Makefile:1138: recipe for target 'install' failed
make: *** [install] Error 2

Thanks.

Trouble with running on CPU

Hi,
Awesome library! I am in the process of adding it to Torch Points3d but I am having troubles getting to run on CPU. For example running the example you provide by forcing the model to be on CPU gives the following:

(torch-points3d-AKCjwQtX-py3.7) ChauletN@air4:~/torchsparse/examples$ python example.py 
Starting dummy training...
Traceback (most recent call last):
  File "example.py", line 74, in <module>
    dummy_train(device)
  File "example.py", line 66, in dummy_train
    loss.backward()
  File "/home/ChauletN/.cache/pypoetry/virtualenvs/torch-points3d-AKCjwQtX-py3.7/lib/python3.7/site-packages/torch/tensor.py", line 185, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "/home/ChauletN/.cache/pypoetry/virtualenvs/torch-points3d-AKCjwQtX-py3.7/lib/python3.7/site-packages/torch/autograd/__init__.py", line 127, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError

All works great on gpu, any idea what might be wrong?

Issues with sphash

Hi,

Thanks for the great paper and library.

I was testing this library out today and had some issues using sphash.

I first generate a set of random coordinates on a 32x32x32 grid, using:

occupied = torch.floor(torch.rand(1000) * 32 * 32 * 32).int()

Then, I generate a set of random points to do intersection tests against the 'occupied' cells:

queries = torch.floor(torch.rand(100) * 32 * 32 * 32).int()

Then, I follow the steps to use the hashmap:

tgt = sF.sphash(occupied)
src = sF.sphash(queries)
idx = sF.sphashquery(src, tgt)

This gives me an idx array with a bunch of -1 (which I assume are misses) and some positive integers, which I assume are the corresponding index on the occupied array. However, when I check the coords against the occupied array, they don't match up. I also expect that, if an idx array has 2 hits with the same indices, they should be the same value, but they are not.

Am I understanding the library usage wrong? Thanks in advance!

Having trouble on calculating gradient of the network output w.r.t. input

Hello Haotian, thanks for this amazing library!

I'm currently working on a project with a need to calculate the gradient of the network output with respect to the network input explicitly. However, torch.autograd failed to do so and complaining mm(): functions with out=... arguments don't support automatic differentiation, but one of the arguments requires grad. I can't find anywhere in the library that calls torch.mm(out=...). Do you have any idea how this issue is caused? The following snippet can be used to reproduce this error.

import torch
import torchsparse
import torch.nn as nn
import torchsparse.nn as spnn
import numpy as np
from torchsparse import SparseTensor
from torchsparse.utils import sparse_quantize, sparse_collate_fn


def generate_random_point_cloud(size=100000, voxel_size=0.2):
    pc = np.random.randn(size, 4)
    pc[:, :3] = pc[:, :3] * 10
    rounded_pc = np.round(pc[:, :3] / voxel_size).astype(np.int32)
    labels = np.random.choice(10, size)
    inds, _, inverse_map = sparse_quantize(
        rounded_pc,
        pc,
        labels,
        return_index=True,
        return_invs=True
    )
    
    voxel_pc = rounded_pc[inds]
    voxel_feat = pc[inds]
    voxel_labels = labels[inds]
    
    sparse_tensor = SparseTensor(voxel_feat, voxel_pc)
    label_tensor = SparseTensor(voxel_labels, voxel_pc)
    
    feed_dict = {
        'lidar': sparse_tensor,
        'targets': label_tensor
    }
    
    return feed_dict


def generate_batched_random_point_clouds(
    size=10000, 
    voxel_size=0.2,
    batch_size=2):
    batch = []
    for i in range(batch_size):
        batch.append(generate_random_point_cloud(size, 
                                                 voxel_size))
    return sparse_collate_fn(batch)

device = 'cuda'

model = nn.Sequential(
    spnn.Conv3d(4, 32, kernel_size=3, stride=1),
    spnn.BatchNorm(32),
    spnn.ReLU(True),
).to(device)

feed_dict = generate_batched_random_point_clouds()
inputs = feed_dict['lidar'].to(device)
targets = feed_dict['targets'].F.to(device).long()
outputs = model(inputs)

coords = inputs.C.float()
sdf = outputs.F

coords = torch.autograd.Variable(coords, requires_grad=True)
grad = torch.autograd.grad(outputs=sdf, inputs=coords, 
                           grad_outputs=torch.ones(sdf.size(), device=sdf.device), 
                           create_graph=True, retain_graph=True, only_inputs=True)

Thanks a lot for your time!

3D UNet with TorchSparse

By chance, has anyone implemented 3D UNet with TorchSparse? If so, I would appreciate a link.

The specific issue I am currently pondering about is how to concatenate the features at a level with the up-sampled features from lower level. I looked to see whether there is a built-in function to do that. The functions I saw didn't seem to be right fits.

Things I saw:

  • The add function in SparseTensor: This assumes that the coordinates in the two tensors are identical, i.e., the ".C" field is the same in the two tensors. But, this need not be the situation in the UNet case.
  • sparse_collate_tensors function in helpers.py : Seems to be for the purpose of creating a tensor where in multiple tensors are added into a batch (?).
    Is there a function that would be a better fit?

Thanks.

RuntimeError @"return hash_gpu(idx)" in torchsparse/nn/functional/hash.py

Hi,

Thanks for the impressive work. When I try to run the following command on my Pascal machine, I am getting an error.
Command:
torchpack dist-run -np 1 python evaluate.py configs/semantic_kitti/default.yaml --name SemanticKITTI_val_SPVNAS@65GMACs

Error:

Traceback (most recent call last):
  File "evaluate.py", line 148, in <module>
    main()
  File "evaluate.py", line 66, in main
    model = spvnas_specialized(args.name)
  File "/root/hostCurUser/e3d/spvnas/model_zoo.py", line 50, in spvnas_specialized
    model = model.determinize()
  File "/root/hostCurUser/e3d/spvnas/core/models/semantic_kitti/spvnas.py", line 311, in determinize
    x = self.forward(x)
  File "/root/hostCurUser/e3d/spvnas/core/models/semantic_kitti/spvnas.py", line 329, in forward
    x0 = point_to_voxel(x, z)
  File "/root/hostCurUser/e3d/spvnas/core/models/utils.py", line 49, in point_to_voxel
    sparse_hash = spf.sphash(x.C)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torchsparse-1.1.0-py3.8-linux-x86_64.egg/torchsparse/nn/functional/hash.py", line 45, in sphash
    return hash_gpu(idx)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torchsparse-1.1.0-py3.8-linux-x86_64.egg/torchsparse/nn/functional/hash.py", line 12, in forward
    print(idx.contiguous())
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torch/tensor.py", line 179, in __repr__
    return torch._tensor_str._str(self)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torch/_tensor_str.py", line 374, in _str
    return _str_intern(self)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torch/_tensor_str.py", line 354, in _str_intern
    tensor_str = _tensor_str(self, indent)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torch/_tensor_str.py", line 241, in _tensor_str
    formatter = _Formatter(get_summarized_data(self) if summarize else self)
  File "/root/miniconda3/envs/3D-prj/lib/python3.8/site-packages/torch/_tensor_str.py", line 274, in get_summarized_data
    print(torch.stack([get_summarized_data(x) for x in (start + end)]))
RuntimeError: CUDA error: invalid device function
Segmentation fault (core dumped)

When I installed the torchsparse package, I also got the same error as mit-han-lab/e3d#23. I run the following codes as showed in the pervious issue mit-han-lab/e3d#23.

export FORCE_CUDA="1"
export TORCH_CUDA_ARCH_LIST=“Pascal”

Environment details:
python 3.8
pytorch 1.7.1
Cuda 10.1
miniconda3
GPU TITAN Xp

Could you help with the problem? Thanks!

It seem there is some problem while using torchsparse with nn.DataParallel

Hi all,

Thanks for your amazing torchsparse library!

I am currently deploy a large model for 3D object detection, and my GPU(RTX Titan) does not have enough memory to train my model, so i want to use nn.DataParallel to distribute my model on two RTX Titan. However, part of my model uses torchsparse and it returns erro like this:

AssertionError: Caught AssertionError in replica 0 on device 0.
Original Traceback (most recent call last):
File "/home/user/anaconda3/envs/cupcl/lib/python3.7/site-packages/torchsparse/nn/functional/sparseconv.py", line 173, in conv3d
kOffset = kRegion.get_kernel_offset().cuda()
RuntimeError: CUDA error: an illegal memory access was encountered

Since this is the first time I use nn.DataParallel in my project, I dont know how to solve this problem. I simply modified .to(feature.device) to .cuda() but makes no different. Waiting for your help, thanks!

About the order of coordinates and features after convolution

Hi, thank you for you excellent work. I have found in this issue that Stride=1 version is the submanifold convolution. So in this case the output has the same shape as the input. My questions is whether the order of coordinates and features of the output have the same order as those in the input? If not, is there any way to convert the order of the output into the order of the input? Hope I make myself clear. Thank you!

TorchSparse vs Minkowski Benchmarking

Hi,

You mentioned

[New] 2020/09/20: We released torchsparse v1.1, which is significantly faster than our torchspare v1.0 and is also achieves 1.9x speedup over MinkowskiEngine v0.5 alpha when running MinkUNet18C!

We were curious if you were able to provide the benchmarking code, which networks were used, or some latency values.

Thanks!

If cuda version can not degrade to 10.2,how to reproduce your network?

My machine's GPU is RTX3090,which is based on Ampere architecture and just support 11.0 as the oldest version of cuda.So is there any way to us CPU to reproduce your work?
The error log I tried to install on my machine is shown as below

python setup.py install
running install
running bdist_egg
running egg_info
writing torchsparse.egg-info/PKG-INFO
writing dependency_links to torchsparse.egg-info/dependency_links.txt
writing top-level names to torchsparse.egg-info/top_level.txt
/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/utils/cpp_extension.py:339: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
  warnings.warn(msg.format('we could not find ninja.'))
reading manifest file 'torchsparse.egg-info/SOURCES.txt'
writing manifest file 'torchsparse.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
building 'torchsparse_backend' extension
gcc -pthread -B /home/gz/anaconda3/envs/pc/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/include -I/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/include/TH -I/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/include/THC -I:/usr/local/cuda/include -I/home/gz/anaconda3/envs/pc/include/python3.8 -c torchsparse/src/torchsparse_bindings_gpu.cpp -o build/temp.linux-x86_64-3.8/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_backend -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from torchsparse/src/convolution/convolution_gpu.h:4,
                 from torchsparse/src/torchsparse_bindings_gpu.cpp:9:
/home/gz/anaconda3/envs/pc/lib/python3.8/site-packages/torch/include/ATen/cuda/CUDAContext.h:5:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
    5 | #include <cuda_runtime_api.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1

Thks!

Mixed precision or FP16 support!

Great Work! Do you have a plan to add support for FP16 mode or conversion to TensorRT to improve the performance?
It will be great if we can convert the SparseTensor to a lower precision like Pytorch tensors.

Distributed Training!

Thanks for your nice work!
How to use SyncBatchNorm when distirbuted training and could you give some guide about MultiGPU training?

fatal error: cublas_v2.h

Trying to install torchparse using the command
pip install --upgrade git+https://github.com/mit-han-lab/torchsparse.git
Getting the following error

Running setup.py clean for torchsparse
Failed to build torchsparse
Installing collected packages: torchsparse
    Running setup.py install for torchsparse ... error
    ERROR: Command errored out with exit status 1:
     command: /home/sandeep-gpu/venv-e3d/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7ihj2vrd/install-record.txt --single-version-externally-managed --compile --install-headers /home/sandeep-gpu/venv-e3d/include/site/python3.6/torchsparse
         cwd: /tmp/pip-req-build-7zzpe7jk/
    Complete output (55 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/sparse_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    copying torchsparse/point_tensor.py -> build/lib.linux-x86_64-3.6/torchsparse
    creating build/lib.linux-x86_64-3.6/torchsparse/nn
    copying torchsparse/nn/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn
    creating build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/kernel_region.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    copying torchsparse/utils/helpers.py -> build/lib.linux-x86_64-3.6/torchsparse/utils
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/voxelize.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/downsample.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/devox.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/detection.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/sparseconv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/batchnorm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/detection.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    running build_ext
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/utils/cpp_extension.py:339: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
      warnings.warn(msg.format('we could not find ninja.'))
    building 'torchsparse_cuda' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/torchsparse
    creating build/temp.linux-x86_64-3.6/torchsparse/src
    creating build/temp.linux-x86_64-3.6/torchsparse/src/convolution
    creating build/temp.linux-x86_64-3.6/torchsparse/src/hash
    creating build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
    creating build/temp.linux-x86_64-3.6/torchsparse/src/others
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/TH -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/sandeep-gpu/venv-e3d/include -I/usr/include/python3.6m -c torchsparse/src/torchsparse_bindings_gpu.cpp -o build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    In file included from torchsparse/src/convolution/convolution_gpu.h:4:0,
                     from torchsparse/src/torchsparse_bindings_gpu.cpp:9:
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/ATen/cuda/CUDAContext.h:7:10: fatal error: cublas_v2.h: No such file or directory
     #include <cublas_v2.h>
              ^~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/sandeep-gpu/venv-e3d/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7ihj2vrd/install-record.txt --single-version-externally-managed --compile --install-headers /home/sandeep-gpu/venv-e3d/include/site/python3.6/torchsparse Check the logs for full command output.
x86_64-3.6/torchsparse/src/interpolation
    creating build/temp.linux-x86_64-3.6/torchsparse/src/others
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/TH -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/sandeep-gpu/venv-e3d/include -I/usr/include/python3.6m -c torchsparse/src/torchsparse_bindings_gpu.cpp -o build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    In file included from torchsparse/src/convolution/convolution_gpu.h:4:0,
                     from torchsparse/src/torchsparse_bindings_gpu.cpp:9:
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/ATen/cuda/CUDAContext.h:7:10: fatal error: cublas_v2.h: No such file or directory
     #include <cublas_v2.h>
              ^~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/sandeep-gpu/venv-e3d/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7ihj2vrd/install-record.txt --single-version-externally-managed --compile --install-headers /home/sandeep-gpu/venv-e3d/include/site/python3.6/torchsparse Check the logs for full command output.
nctional/count.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/hash.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/detection.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/sparseconv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/convert_neighbor_map.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/query.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    copying torchsparse/nn/functional/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/functional
    creating build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/__init__.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/activation.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/batchnorm.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/detection.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/pooling.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    copying torchsparse/nn/modules/conv.py -> build/lib.linux-x86_64-3.6/torchsparse/nn/modules
    running build_ext
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/utils/cpp_extension.py:339: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
      warnings.warn(msg.format('we could not find ninja.'))
    building 'torchsparse_cuda' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/torchsparse
    creating build/temp.linux-x86_64-3.6/torchsparse/src
    creating build/temp.linux-x86_64-3.6/torchsparse/src/convolution
    creating build/temp.linux-x86_64-3.6/torchsparse/src/hash
    creating build/temp.linux-x86_64-3.6/torchsparse/src/hashmap
    creating build/temp.linux-x86_64-3.6/torchsparse/src/others
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/TH -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/sandeep-gpu/venv-e3d/include -I/usr/include/python3.6m -c torchsparse/src/torchsparse_bindings_gpu.cpp -o build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    In file included from torchsparse/src/convolution/convolution_gpu.h:4:0,
                     from torchsparse/src/torchsparse_bindings_gpu.cpp:9:
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/ATen/cuda/CUDAContext.h:7:10: fatal error: cublas_v2.h: No such file or directory
     #include <cublas_v2.h>
              ^~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/sandeep-gpu/venv-e3d/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7ihj2vrd/install-record.txt --single-version-externally-managed --compile --install-headers /home/sandeep-gpu/venv-e3d/include/site/python3.6/torchsparse Check the logs for full command output.
x86_64-3.6/torchsparse/src/interpolation
    creating build/temp.linux-x86_64-3.6/torchsparse/src/others
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/TH -I/home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-10.1/include -I/home/sandeep-gpu/venv-e3d/include -I/usr/include/python3.6m -c torchsparse/src/torchsparse_bindings_gpu.cpp -o build/temp.linux-x86_64-3.6/torchsparse/src/torchsparse_bindings_gpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=torchsparse_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
    In file included from torchsparse/src/convolution/convolution_gpu.h:4:0,
                     from torchsparse/src/torchsparse_bindings_gpu.cpp:9:
    /home/sandeep-gpu/venv-e3d/lib/python3.6/site-packages/torch/include/ATen/cuda/CUDAContext.h:7:10: fatal error: cublas_v2.h: No such file or directory
     #include <cublas_v2.h>
              ^~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/sandeep-gpu/venv-e3d/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-7zzpe7jk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-7ihj2vrd/install-record.txt --single-version-externally-managed --compile --install-headers /home/sandeep-gpu/venv-e3d/include/site/python3.6/torchsparse Check the logs for full command output.

My torch installation is working fine. I verified if it is using the gpu and if it is cuda .

>>> torch.cuda.get_device_name(0)
'Tesla K80'
>>> torch.cuda.is_available()
True

Environment details
Python 3.6.9
Torch 1.7.0+cu101
Cuda 10.1
GPU Tesla K80

About torchsparse library

Do you have a document for the library? How to use other functions such as maxpooling an so on?

Thank you.

Does torchsparse supports 16-bit training ?

Dear All,

I am currently adding Pytorch Lightning support to TorchPoints3d.

If TorchSparse was to support 16-bit and be scriptable, we could have a pretty decent speed up and people would have strong reason to use torchsparse for production.

Here is the PR: https://github.com/nicolas-chaulet/torch-points3d/pull/528

Also, here are updates from our previous release. We support ME and torchsparse backends + possible conversion between them.

Screenshot 2021-01-02 at 13 00 37

Best regards,
Thomas Chaton.

Exception in tensor Deepcopy

I am getting an exception with the following callstack. Any idea what may be the reason? I noticed that inputs.kernel_maps is empty.

Exception has occurred: KeyError
140070548366080
File "/home/username/anaconda3/envs/myproj/lib/python3.8/copy.py", line 253, in _keep_alive
memo[id(memo)].append(x)
File "/home/username/anaconda3/envs/myproj/lib/python3.8/copy.py", line 177, in deepcopy
_keep_alive(x, memo) # Make sure x lives at least as long as d
File "/home/username/projects/detect3d/myproj/torchsparse/torchsparse/nn/functional/conv.py", line 156, in conv3d
output_tensor.kernel_maps = copy.deepcopy(inputs.kernel_maps)
File "/home/username/projects/detect3d/myproj/torchsparse/torchsparse/nn/modules/conv.py", line 72, in forward
return conv3d(inputs,
File "/home/username/anaconda3/envs/myproj/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/username/anaconda3/envs/myproj/lib/python3.8/site-packages/torch/nn/modules/container.py", line 119, in forward
input = module(input)
File "/home/username/anaconda3/envs/myproj/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/username/anaconda3/envs/myproj/lib/python3.8/site-packages/torch/nn/modules/container.py", line 119, in forward
input = module(input)

Problem with torchsparse.nn.functional spvoxelize

Hey!
First of all thank you for your amazing work!

I am trying to install torchsparse to use it for a 3d object detection network.
I am using pytorch 1.7 with cuda 11.0 and i have cuda 11.1 installed separately.
(I use cuda 11.1 because i am using a 3090 and lower versions of cuda are not supported).
I am also using ubuntu 20.04 and i have downgraded the gcc compiler to version 7.5.

My problem is that although i manage to successfully install torchsparse when using spf.spvoxelize the output tensor is filled with zeros.

I tried running the example on /examples/example.py and it runs just fine. I also trained it on a single input to see if the network converges and it does.

Is there something i could do to fix this?

Thank you in advance!

MaxPooling

Torch's maxpooling inputs a kernel. Looks like torchsparse maxpooling performs on the entire dimension. It that correct? Is there any way to use torchsparse's maxpooling with a kernel?

Matching downsampled voxels with sphashquery

Thanks for the great work! I have a question with matching downsampled points. Assuming there are two SparseTensors x0 and x1 which shares the same voxel coordinate (i.e. x0.C = x1.C). Now x0 is passed through a subsampling layer

conv = spnn.Conv3d(ks=4, stride=4)
x0 = conv(x0)

The downsampled x0 will have less points than x1 (i.e. x0.C.shape[0] < x1.C.shape[0]). My question is how to find the matching points of x0 in x1. Is there a way to get the matching indices inds such that x1.C[inds] = x0.C?

I've played with sphash and sphashquery with code below, but there are points with no match.

h0 = sphash(x0.C)
c1 = x1.C.clone()
c1[:, :3] = torch.floor(c1[:, :3].float() / 4) * 4
h1 = sphash(c1)
sphashquery(h0, h1)  # always contains a few -1 (most points are matched) 

conv3d with empty kernel_map

Applying convolution transpose with conv3d sometimes returns an error due to the empty of kernel_map.
The reason is that sparseconv_op is called without checking kernel_map is empty or not.

Installation in Windows 10

Hi,

I have Windows 10 and I have been trying to install torchsparse, but no success.

When I run pip things compile, but linkage fails. It says:
Creating library C:\Users\WeizmanL\AppData\Local\Temp\pip-req-build-6qzmrtnx\build\temp.win-amd64-3.8\Release\torchsparse/src\torchsparse_cuda.cp38-win_amd64.lib and object C:\Users\WeizmanL\AppData\Local\Temp\pip-req-build-6qzmrtnx\build\temp.win-amd64-3.8\Release\torchsparse/src\torchsparse_cuda.cp38-win_amd64.exp
hash_cpu.obj : error LNK2001: unresolved external symbol "public: long * __cdecl at::Tensor::data_ptr(void)const " (??$data_ptr@J@Tensor@at@@QEBAPEAJXZ)
build\lib.win-amd64-3.8\torchsparse_cuda.cp38-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29333\bin\HostX86\x64\link.exe' failed with exit status 1120

Any ideas?

Thank you

How to provide asymmetrical kernels in torchsparse.nn.Conv3d

On checking the code for the Conv3d feature

kernel_size: int = 3,

I see that the kernel size is an integer.
Is it possible to give asymmetric kernels. eg of shape=3×1×3, 1×3×3 etc
From latest literature, I see that

asymmetric kernels significantly reduces the computational cost of conventional 3D convolutional kernels. Specifically,
using a convolution with kernel=3×1×3 followed by a 1×3×3 convolution is equivalent to sliding
a two layer network with the same receptive field as in a 3D convolution with kernel= 3 × 3 × 3, but
it has 33% cheaper computational cost than a 3 × 3 × 3 convolution with same number of output
filters.

Also, it has some other properties that I wanted to explore.
I am using the torchsparse library to build my model and did not see the option to give a tuple as the kernel size like in this example of the library spconv.
Is this functionality supported? If not, is it in your roadmap?

Thank you

How much can your code speed up SECOND?

SECOND uses spconv to do sparse conv. How much can your code speed up SECOND? I did not find this information in your paper.

Your paper mentioned that you reimplement SECOND. Will this repo be available? If I want to reimplement SECOND using your 3d conv API, will it be easy? How can I do this?

Does this repo have similar interface like spconv.utils.VoxelGenerator in spconv to do voxelization?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.