graphdeco-inria / gaussian-splatting

Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"
https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
Other
12.44k stars 1.55k forks source link

Failed building wheel for diff_gaussian_rasterization #865

Open wjmenu opened 1 week ago

wjmenu commented 1 week ago

Error Description: Hey, I have some issues with the installation of the submodule diff_gaussian_rasterization (and likewise simple_knn) occuring from installing the environment.yml .

CUDA 11.5 Ubuntu 22.04.4 RTX 4090 compute capability 8.9

There is a warning about the mismatch with the version that was used to compile PyTorch (11.6) and the detected CUDA version (11.5), but I do not think that this is the problem.

Error Output:


Installing pip dependencies: / Ran pip subprocess with arguments:                                                                                                                                                                   
['/home/willem/miniconda3/envs/gaussian_splatting/bin/python', '-m', 'pip', 'install', '-U', '-r', '/home/willem/gaussian-splatting/condaenv.rs78k5_m.requirements.txt', '--exists-action=b']                                       
Pip subprocess output:                                                                                                                                                                                                              
Processing ./submodules/diff-gaussian-rasterization                                                                                                                                                                                 
  Preparing metadata (setup.py): started                                                                                                                                                                                            
  Preparing metadata (setup.py): finished with status 'done'
Processing ./submodules/simple-knn
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: diff_gaussian_rasterization, simple_knn
  Building wheel for diff_gaussian_rasterization (setup.py): started
  Building wheel for diff_gaussian_rasterization (setup.py): finished with status 'error'
  Running setup.py clean for diff_gaussian_rasterization
  Building wheel for simple_knn (setup.py): started
  Building wheel for simple_knn (setup.py): finished with status 'error'
  Running setup.py clean for simple_knn
Failed to build diff_gaussian_rasterization simple_knn
Installing collected packages: simple_knn, diff_gaussian_rasterization
  Running setup.py install for simple_knn: started
  Running setup.py install for simple_knn: finished with status 'error'

Pip subprocess error:
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [109 lines of output]
      running bdist_wheel
      running build
      running build_py
      copying diff_gaussian_rasterization/__init__.py -> build/lib.linux-x86_64-cpython-37/diff_gaussian_rasterization
      running build_ext
      /home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py:813: UserWarning: The detected CUDA version (11.5) has a minor version mismatch with the version that was used to compile PyTorch (11.6). Most likely this shouldn't be a problem.
        warnings.warn(CUDA_MISMATCH_WARN.format(cuda_str_version, torch.version.cuda))
      /home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py:820: UserWarning: There are no g++ version bounds defined for CUDA version 11.5
        warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
      building 'diff_gaussian_rasterization._C' extension
      creating /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37
      creating /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer
      Emitting ninja build file /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/build.ninja...
      Compiling objects...
      Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
      [1/5] /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer/forward.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      [2/5] /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer/backward.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      [3/5] /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer/rasterizer_impl.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      FAILED: /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer/rasterizer_impl.o
      /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/cuda_rasterizer/rasterizer_impl.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:
        435 |         function(_Functor&& __f)
            |                                                                                                                                                 ^
      /usr/include/c++/11/bits/std_function.h:435:145: note:         ‘_ArgTypes’
      /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’:
        530 |         operator=(_Functor&& __f)
            |                                                                                                                                                  ^
      /usr/include/c++/11/bits/std_function.h:530:146: note:         ‘_ArgTypes’
      [4/5] c++ -MMD -MF /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/ext.o.d -pthread -B /home/willem/miniconda3/envs/gaussian_splatting/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/ext.cpp -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/ext.o -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -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/5] /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/rasterize_points.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/rasterize_points.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      FAILED: /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/rasterize_points.o
      /usr/bin/nvcc  -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/TH -I/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/THC -I/home/willem/miniconda3/envs/gaussian_splatting/include/python3.7m -c -c /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/rasterize_points.cu -o /home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/build/temp.linux-x86_64-cpython-37/rasterize_points.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'"'"'' -I/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_86,code=sm_86 -std=c++14
      /home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/c10/core/SymInt.h(84): warning #68-D: integer conversion resulted in a change of sign

      /home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/include/c10/core/SymInt.h(84): warning #68-D: integer conversion resulted in a change of sign

      /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:
        435 |         function(_Functor&& __f)
            |                                                                                                                                                 ^
      /usr/include/c++/11/bits/std_function.h:435:145: note:         ‘_ArgTypes’
      /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’:
        530 |         operator=(_Functor&& __f)
            |                                                                                                                                                  ^
      /usr/include/c++/11/bits/std_function.h:530:146: note:         ‘_ArgTypes’
      ninja: build stopped: subcommand failed.
      Traceback (most recent call last):
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1814, in _run_ninja_build
          env=env)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/subprocess.py", line 512, 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 36, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/home/willem/gaussian-splatting/submodules/diff-gaussian-rasterization/setup.py", line 32, in <module>
          'build_ext': BuildExtension
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 368, in run
          self.run_command("build")
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 88, in run
          _build_ext.run(self)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 765, in build_extensions
          build_ext.build_extensions(self)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
          self._build_extensions_serial()
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
          self.build_extension(ext)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 249, in build_extension
          _build_ext.build_extension(self, ext)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/setuptools/_distutils/command/build_ext.py", line 555, in build_extension
          depends=ext.depends,
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 595, in unix_wrap_ninja_compile
          with_cuda=with_cuda)
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1492, in _write_ninja_file_and_compile_objects
          error_prefix='Error compiling objects for extension')
        File "/home/willem/miniconda3/envs/gaussian_splatting/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1824, in _run_ninja_build
          raise RuntimeError(message) from e
      RuntimeError: Error compiling objects for extension
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for diff_gaussian_rasterization
  error: subprocess-exited-with-error

If anyone knows a fix for this, please let me know. Thanks in advance.

xli562 commented 4 days ago

Here's a summary I've made of all past issues relating to simple-knn and diff-gaussian-rasterization. It eventually worked for me after 4 hours, 10+ reboots, and back-rolling VS2022 Community to an earlier version.

Environment setup issue (github.com)

"diff-gaussian-rasterization" and "simple-knn" not installing properly.

Edit 2024-06-27:

Environment: Windows 11 home version CPU: Intel i7-12700H GPU: NVIDIA RTX 3070 16GB RAM x64 system Windows 11 home version

wjmenu commented 4 days ago

Thanks for your reply! I tried your tips, but sadly to no avail. However, this line caught my attention :

nvcc fatal   : Unsupported gpu architecture 'compute_89'

I believe I have to update the nvcc to a newer version, so that it supports my compute architecture. At the moment, this is not possible. When it does I'll let you know if it worked 👍

felixgeen commented 4 days ago

Here's a summary I've made of all past issues relating to simple-knn and diff-gaussian-rasterization. It eventually worked for me after 4 hours, 10+ reboots, and back-rolling VS2022 Community to an earlier version.

Environment setup issue (github.com)

"diff-gaussian-rasterization" and "simple-knn" not installing properly.

  • Always use the conda terminal and work under the git repo’s directory.
  • CUDA toolkit 11.7 was installed system-wide before all the following took place.
  • VS2022 v17.10.3 fails regardless, whilst v17.6.4 works.
  • Delete these before cloning the repo and creating conda environment again: C:\Users\YOURNAME.conda\envs\gaussian_splatting C:\Users\YOURNAME\gaussian-splatting
  • Make sure cloning is recursive (otherwise the hyperlinked folders in the github repo doesn’t get cloned): git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • Need “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64” to be in PATH for the build command to find cl.exe
  • Also need C++ devtools ticked in VS installer.
  • CUDA and PyTorch versions need to match: maybe use pip instead of conda. For example, for CUDA 11.7 (11.7.1 works): conda create -n gaussian_splatting python=3.7 conda activate gaussian_splatting conda install -c conda-forge vs2022_win-64 pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 (or alternatively? conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia) pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn pip install plyfile pip install tqdm
  • Note that cudatoolkit version in environment.yml is WRONG. Change it to be 11.7 or 11.8, not 11.6. Some reported problems using 11.8, but some succeeded with it.
  • Check if PyTorch can access CUDA: (gaussian_splatting) c:\dev\gaussian-splatting>python >>> import torch >>> torch.cuda.is_available() True (then press Ctrl+Z to exit)
  • To restart an aborted installation: conda env update --file environment.yml --name gaussian_splatting

Edit 2024-06-27:

Environment: Windows 11 home version CPU: Intel i7-12700H GPU: NVIDIA RTX 3070 16GB RAM x64 system Windows 11 home version

Thanks for this detailed description of your troubleshooting.

amballa commented 2 days ago

Here's a summary I've made of all past issues relating to simple-knn and diff-gaussian-rasterization. It eventually worked for me after 4 hours, 10+ reboots, and back-rolling VS2022 Community to an earlier version. Environment setup issue (github.com) "diff-gaussian-rasterization" and "simple-knn" not installing properly.

  • Always use the conda terminal and work under the git repo’s directory.
  • CUDA toolkit 11.7 was installed system-wide before all the following took place.
  • VS2022 v17.10.3 fails regardless, whilst v17.6.4 works.
  • Delete these before cloning the repo and creating conda environment again: C:\Users\YOURNAME.conda\envs\gaussian_splatting C:\Users\YOURNAME\gaussian-splatting
  • Make sure cloning is recursive (otherwise the hyperlinked folders in the github repo doesn’t get cloned): git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • Need “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64” to be in PATH for the build command to find cl.exe
  • Also need C++ devtools ticked in VS installer.
  • CUDA and PyTorch versions need to match: maybe use pip instead of conda. For example, for CUDA 11.7 (11.7.1 works): conda create -n gaussian_splatting python=3.7 conda activate gaussian_splatting conda install -c conda-forge vs2022_win-64 pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 (or alternatively? conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia) pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn pip install plyfile pip install tqdm
  • Note that cudatoolkit version in environment.yml is WRONG. Change it to be 11.7 or 11.8, not 11.6. Some reported problems using 11.8, but some succeeded with it.
  • Check if PyTorch can access CUDA: (gaussian_splatting) c:\dev\gaussian-splatting>python >>> import torch >>> torch.cuda.is_available() True (then press Ctrl+Z to exit)
  • To restart an aborted installation: conda env update --file environment.yml --name gaussian_splatting

Edit 2024-06-27: Environment: Windows 11 home version CPU: Intel i7-12700H GPU: NVIDIA RTX 3070 16GB RAM x64 system Windows 11 home version

Thanks for this detailed description of your troubleshooting.

  • Could you talk a bit about how you downgrade to VS2022 v17.6.4? I am unable to find a way to downgrade the software from anything other than v17.10.3 which it installs by default.
  • Could you also mention where you got the“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64” folder from? I am unable to add it to PATH since it doesn't exist on my computer.

Same issue here. It seems like Microsoft does not allow you to downgrade the Visual Studio C compiler without a paid subscription. v17.10.3 is the latest and that's all you get the Community bundle. If you have Visual Studio installed, there should be either a 2019 or 2022 folder at C:\Program Files (x86)\Microsoft Visual Studio\

Update: The rasterization submodule did build properly for me using the VS 2019 compiler here: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16

juny-park-95 commented 17 hours ago

Here's a summary I've made of all past issues relating to simple-knn and diff-gaussian-rasterization. It eventually worked for me after 4 hours, 10+ reboots, and back-rolling VS2022 Community to an earlier version.

Environment setup issue (github.com)

"diff-gaussian-rasterization" and "simple-knn" not installing properly.

  • Always use the conda terminal and work under the git repo’s directory.
  • CUDA toolkit 11.7 was installed system-wide before all the following took place.
  • VS2022 v17.10.3 fails regardless, whilst v17.6.4 works.
  • Delete these before cloning the repo and creating conda environment again: C:\Users\YOURNAME.conda\envs\gaussian_splatting C:\Users\YOURNAME\gaussian-splatting
  • Make sure cloning is recursive (otherwise the hyperlinked folders in the github repo doesn’t get cloned): git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • Need “C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64” to be in PATH for the build command to find cl.exe
  • Also need C++ devtools ticked in VS installer.
  • CUDA and PyTorch versions need to match: maybe use pip instead of conda. For example, for CUDA 11.7 (11.7.1 works): conda create -n gaussian_splatting python=3.7 conda activate gaussian_splatting conda install -c conda-forge vs2022_win-64 pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 (or alternatively? conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia) pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn pip install plyfile pip install tqdm
  • Note that cudatoolkit version in environment.yml is WRONG. Change it to be 11.7 or 11.8, not 11.6. Some reported problems using 11.8, but some succeeded with it.
  • Check if PyTorch can access CUDA: (gaussian_splatting) c:\dev\gaussian-splatting>python >>> import torch >>> torch.cuda.is_available() True (then press Ctrl+Z to exit)
  • To restart an aborted installation: conda env update --file environment.yml --name gaussian_splatting

Edit 2024-06-27:

Environment: Windows 11 home version CPU: Intel i7-12700H GPU: NVIDIA RTX 3070 16GB RAM x64 system Windows 11 home version

you are my hero