Successfully installed on Windows 11 with Nvidia RTX 5090 + CUDA 12.8

Author: DebbyX3Created Apr 28, 2025Updated Aug 17, 2026

Update guide - From 9th june 2026 on

As of now, the old installation guide no longer works due to PyTorch conflicts and build isolation issues.

I fixed the guide using newer compatible versions when possible - see below for further information

Complete installation

CUDA Toolkit 12.8 Install

  • Check in terminal if you already have a previous version of CUDA Toolkit installed, nvcc --version
  • In any case, install CUDA Toolkit 12.8 on your system here
    • If you had a previous version, you need to update your environment variables to make 12.8 the current version
    • As explained here:
      • Open env. variables
      • In System vars, change/create the env var CUDA_PATH with value pointing to the CUDA Toolkit 12.8 install folder, e.g. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
      • In System vars, create a new var called CUDA_PATH_V12_8 with the same value said above (CUDA 12.8 folder)
      • In System vars, move the two entries referring to CUDA 12.8 to the top of the list. In my case, they are C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp and C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin.
      • In my case the above entries did not exist, so I had to create them
    • Close all terminals, reopen one and check your nvcc version again: nvcc --version
    • If successfull, the version now should be 12.8

GS repository

  • Clone repo: git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • From #923 , I edited submodules/simple-knn/simple-knn.cu to include float.h: #include <float.h>. I did not have to make the other changes listed
  • There are some part of the process that needs to be done manually, so I skipped installation using a .env file.
  • Using Anaconda for the rest of the process:
    • conda create -n "gaussian-splatting" python=3.10 ipython
    • conda activate gaussian-splatting
    • set DISTUTILS_USE_SDK=1
  • Below, the list and version of packages (some of them inspired by #923), and the commands to manually install them
    • cuda-toolkit=12.4 install: conda install cuda-toolkit=12.4 -c conda-forge
    • plyfile install: conda install -c conda-forge plyfile
    • tqdm install: conda install tqdm
    • torch, torchvision, torchaudio, install: pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128) - important: do not change versions here
    • opencv-python, install: pip install opencv-python
    • joblib, install: pip install joblib
  • Before installing submodules, follow this guide I wrote here in issue #833, otherwise wheel will fail because it can't find VS19 Build Tools
  • Finally, install submodules with --no-build-isolation:
    • cd to cloned folder
    • submodules/diff-gaussian-rasterization, install: pip install submodules/diff-gaussian-rasterization --no-build-isolation
    • submodules/simple-knn, install: pip install submodules/simple-knn --no-build-isolation
    • submodules/fused-ssim, install: pip install submodules/fused-ssim --no-build-isolation

Finished!


Note

In my process, when I tried to execute train.py I encountered this error:

OMP: Error #15: Initializing libiomp5md.dll, but found mk2iomp5md.dll already initialized.

OMP: Hint: This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

To solve this:

  • in train.py add the following environment variable like the error suggests:
    import os
    os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

Alternatively (this might break your environment):

  • Go to your anaconda3/miniconda3 user folder. In my case: C:\Users\User\miniconda3
  • Go to envs/YourEnvName\Library\bin folder
  • Delete libiomp5md.dll

More info

PyTorch compatibility

Beware: do not use CUDA 13.0 and PyTorch for CUDA 13.0! I´m referring to pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu130 which also requires Python 3.10

I was trying to install Gauss Splat using the latest PyTorch version (as now: 2.12), but when compiling submodules, it throws the following error:

C:/Users/User/miniconda3/envs/gaussian-splatting/lib/site-packages/torch/include\torch/csrc/dynamo/compiled_autograd.h(1134): error C2872: 'std': ambiguous symbol

It seems a compatibility issue regarding PyTorch and the standard C++ libraries in Visual Studio, as stated in

You will encounter this error on PyTorch version 2.9 (included) and above

Using PyTorch 2.8 with Python 3.10, everything works, as hinted here:

--no-build-isolation

When compiling submodules, the installation fails with an error saying PyTorch is missing (ModuleNotFoundError: No module named 'torch'), even though PyTorch is correctly installed in the environment

Modern pip uses Build Isolation by default, creating a temporary sandbox to compile the package, which doesn't inherit the PyTorch installation from the active environment

To solve, bypass isolation using the --no-build-isolation flag


Old guide - before 9th june 2026 (for reference)

Old guide

CUDA Toolkit 12.8 Install

  • Check in terminal if you already have a previous version of CUDA Toolkit installed, nvcc --version
  • In any case, install CUDA Toolkit 12.8 on your system here
    • If you had a previous version, you need to update your environment variables to make 12.8 the current version
    • As explained here:
      • Open env. variables
      • In System vars, change/create the env var CUDA_PATH with value pointing to the CUDA Toolkit 12.8 install folder, e.g. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
      • In System vars, create a new var called CUDA_PATH_V12_8 with the same value said above (CUDA 12.8 folder)
      • In System vars, move the two entries referring to CUDA 12.8 to the top of the list. In my case, they are C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp and C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin.
      • In my case the above entries did not exist, so I had to create them
    • Close all terminals, reopen one and check your nvcc version again: nvcc --version
    • If successfull, the version now should be 12.8

GS repository

  • Clone repo: git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • From #923 , I edited submodules/simple-knn/simple-knn.cu to include float.h: #include <float.h>. I did not have to make the other changes listed
  • There are some part of the process that needs to be done manually, so I skipped installation using a .env file.
  • Using Anaconda for the rest of the process:
    • conda create -n "gaussian-splatting" python=3.9 ipython (python 3.9 is the minimum required version for torch here)
    • conda activate gaussian-splatting
  • Below, the list and version of packages (some of them inspired by #923), and the commands to manually install them
    • cuda-toolkit=12.4 install: conda install -c nvidia cuda-toolkit=12.4
    • plyfile install: conda install -c conda-forge plyfile
    • tqdm install: conda install tqdm
    • torch, torchvision, torchaudio, install: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 (you can also specify the versions: pip install torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu128)
    • opencv-python, install: pip install opencv-python
    • joblib, install: pip install joblib
  • Before installing submodules, follow this guide I wrote here in issue #833, otherwise wheel will fail because it can't find VS19 Build Tools
  • Finally, install submodules:
    • cd to cloned folder
    • submodules/diff-gaussian-rasterization, install: pip install submodules/diff-gaussian-rasterization
    • submodules/simple-knn, install: pip install submodules/simple-knn
    • submodules/fused-ssim, install: pip install submodules/fused-ssim

Finished!


Note

In my process, when I tried to execute train.py I encountered this error:

OMP: Error #15: Initializing libiomp5md.dll, but found mk2iomp5md.dll already initialized.

OMP: Hint: This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

To solve this:

  • Go to your anaconda3/miniconda3 user folder. In my case: C:\Users\User\miniconda3
  • Go to envs/YourEnvName\Library\bin folder
  • Delete libiomp5md.dll

Feel free to comment if you have improvements!

Source: graphdeco-inria/gaussian-splatting