Skip to content
This repository was archived by the owner on Mar 9, 2026. It is now read-only.
This repository was archived by the owner on Mar 9, 2026. It is now read-only.

Can someone please write a definitive guide on how to avoid "Ceres was compiled without CUDA/cuDSS support" error on Windows 11 #213

Open

Description

@okj-okj

Hello,

I very much would like to be able to run the bundle adjustment on my GPU. I followed several guides, none of them worked out for me. I'm on Windows 11 and I have a 30 series RTX Nvidia GPU. Please if you know or happen to know someone who knows how to do this, don't hesitate and reply to this issue.

Thanks in advance,

okj

Activity

  1. okj-okj commented on Sep 15, 2025

    @okj-okj
    Author

    OK, I figured it out, here's my guide. I switched to Ubuntu 25.04 as I got frustrated with Win11. Happy Glomapping on the GPU!

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y build-essential curl zip unzip tar git pkg-config

    ================================================================================================

    sudo apt-get install cmake
    sudo apt-get install libgoogle-glog-dev libgflags-dev
    sudo apt-get install libatlas-base-dev
    sudo apt-get install libeigen3-dev
    sudo apt-get install libsuitesparse-dev

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install cuda-toolkit

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get -y install cudss

    sudo apt-get install libabsl-dev

    git clone https://github.com/ceres-solver/ceres-solver.git
    cd ceres-solver
    mkdir build
    cd build
    cmake .. -DCMAKE_CUDA_ARCHITECTURES="native" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF
    make -j4

    #in ceres-solver/cmakelists.txt after cmake before project
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    sudo mkdir -p /usr/include/absl/log
    sudo ln -s /usr/include/glog/vlog_is_on.h /usr/include/absl/log/vlog_is_on.h

    #include "glog/logging.h"

    find internal/ceres/ -name ".cc" -exec grep -l "VLOG" {} ; |
    xargs grep -L "glog/logging.h" |
    while read file; do
    sed -i '/^#include.
    $/a #include "glog/logging.h"' "$file"
    done

    make -j4
    sudo make install

    ================================================================================================

    sudo apt-get install
    git
    cmake
    ninja-build
    build-essential
    libboost-program-options-dev
    libboost-graph-dev
    libboost-system-dev
    libeigen3-dev
    libfreeimage-dev
    libmetis-dev
    libgoogle-glog-dev
    libgtest-dev
    libgmock-dev
    libsqlite3-dev
    libglew-dev
    qtbase5-dev
    libqt5opengl5-dev
    libcgal-dev
    libceres-dev
    libcurl4-openssl-dev
    libmkl-full-dev

    git clone https://github.com/colmap/colmap.git
    cd colmap
    mkdir build
    cd build
    cmake .. -GNinja -DBLA_VENDOR=Intel10_64lp -DCMAKE_CUDA_ARCHITECTURES="86" -DCMAKE_BUILD_TYPE=Release

    #put this in cmakelists before project after cmake
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    sudo ninja
    sudo ninja install

    ================================================================================================

    sudo apt install libflann-dev

    #remove -werror in glomap/glomap/cmakelists.txt
    -werror in glomap/build/_deps/poselib-src/cmakelists.txt

    Clone GLOMAP

    git clone https://github.com/colmap/glomap.git
    cd glomap
    mkdir build
    cd build
    sudo cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=native

    #put this in cmakelists before project after cmake
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    sudo ninja && sudo ninja install

  2. okj-okj commented on Sep 17, 2025

    @okj-okj
    Author

    UPDATED GUIDE

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y build-essential curl zip unzip tar git pkg-config

    ================================================================================================

    sudo apt-get install cmake
    sudo apt-get install libgoogle-glog-dev libgflags-dev
    sudo apt-get install libatlas-base-dev
    sudo apt-get install libeigen3-dev
    sudo apt-get install libsuitesparse-dev

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install cuda-toolkit

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get -y install cudss

    sudo apt-get install libabsl-dev

    git clone https://github.com/ceres-solver/ceres-solver.git
    cd ceres-solver
    mkdir build
    cd build
    cmake .. -DCMAKE_CUDA_ARCHITECTURES="native" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF
    make -j4

    #in ceres-solver/cmakelists.txt after cmake before project
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    cd ..

    find internal/ceres/ -name ".cc" -exec grep -l "VLOG" {} +
    | xargs grep -L 'glog/logging.h'
    | while read -r file; do
    sed -i '/^#include[[:space:]]
    [<"].*[>"]/a #include "glog/logging.h"' "$file"
    done

    sudo mkdir -p /usr/include/absl/log
    sudo ln -s /usr/include/glog/vlog_is_on.h /usr/include/absl/log/vlog_is_on.h

    make -j4
    sudo make install

    ================================================================================================

    sudo apt-get install git cmake ninja-build build-essential libboost-program-options-dev libboost-graph-dev libboost-system-dev libeigen3-dev libfreeimage-dev libmetis-dev libgoogle-glog-dev libgtest-dev libgmock-dev libsqlite3-dev libglew-dev qtbase5-dev libqt5opengl5-dev libcgal-dev libceres-dev libcurl4-openssl-dev libmkl-full-dev

    git clone https://github.com/colmap/colmap.git
    cd colmap
    mkdir build
    cd build
    cmake .. -GNinja -DBLA_VENDOR=Intel10_64lp -DCMAKE_CUDA_ARCHITECTURES="86" -DCMAKE_BUILD_TYPE=Release -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.6 -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.6/bin/nvcc

    #put this in cmakelists before project after cmake
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    sudo apt install libcublas12

    sudo ninja
    sudo ninja install

    ================================================================================================

    sudo apt install libflann-dev

    #remove -werror in glomap/glomap/cmakelists.txt
    -werror in glomap/build/_deps/poselib-src/cmakelists.txt

    git clone https://github.com/colmap/glomap.git
    cd glomap
    mkdir build
    cd build
    sudo cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=native

    #put this in cmakelists before project after cmake
    set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)

    sudo ninja
    sudo ninja install

  3. bossowl33 commented on Nov 16, 2025

    @bossowl33

    im not great at linux, could you add a bit of additional info? mainly how do i run all of these commands, do i copy and paste the entire command list to a single .sh file? Everytime i have run it, even on a clean ubuntu 25.04 install it fails for one or two different reasons, i don't expect you to debug it for me i just want to know if im doing it right in the first place.

  4. Kation commented on Dec 6, 2025

    @Kation

    Why windows cuda release not work?

  5. rlesac commented on Dec 26, 2025

    @rlesac

    Same issue here, downloaded the 1.2.0 from Oct 31.

    I20251226 15:54:05.091052 77596 global_positioning.cc:52] Setting up the global positioner problem
    W20251226 15:54:08.770196 77596 global_positioning.cc:512] Requested to use GPU for bundle adjustment, but Ceres was compiled without CUDA support. Falling back to CPU-based dense solvers.
    W20251226 15:54:08.770573 77596 global_positioning.cc:529] Requested to use GPU for bundle adjustment, but Ceres was compiled without cuDSS support. Falling back to CPU-based sparse solvers.
    

    Obviously I downloaded glomap-x64-windows-cuda.zip

  6. DuVogel87 commented on Jan 21, 2026

    @DuVogel87

    Look here for some guidance:
    #179 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions