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.

CUDA Sparse Direct Solver (part of Ceres Solver, used by Glomap) failed to allocate the necessary memory on the GPU during the bundle adjustment analysis phase. #191

Open

Description

@lanxinger

I compiled Ceres with cuDSS and compiled Colmap/Glomap with ceres/cudss and am now getting this error one one dataset when running glomap.

This was a 400 image dataset. My gpu has 24GB of vram. (nvidia 3090)

WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1745832035.277016 142780 levenberg_marquardt_strategy.cc:120] Linear solver fatal error: cudssExecute with CUDSS_PHASE_ANALYSIS failed Got error: CUDSS_STATUS_ALLOC_FAILED
E0000 00:00:1745832035.277055 142780 trust_region_minimizer.cc:97] Terminating: Linear solver failed due to unrecoverable non-numeric causes. Please see the error log for clues.
F0000 00:00:1745832035.320293 142780 cuda_buffer.h:72] Check failed: cudaFree(data_) == cudaSuccess (700 vs. 0)
*** Check failure stack trace: ***
*** Aborted at 1745832035 (unix time) try "date -d @1745832035" if you are using GNU date ***
PC: @ 0x0 (unknown)
*** SIGABRT (@0x3e800022dbc) received by PID 142780 (TID 0x787624d76000) from PID 142780; stack trace: ***
@ 0x78765702b206 (unknown)
@ 0x787624a45330 (unknown)
@ 0x787624a9eb2c pthread_kill
@ 0x787624a4527e gsignal
@ 0x787624a288ff abort
@ 0x60a0cb25f618 absl::lts_20240116::log_internal::LogMessage::FailWithoutStackTrace()
@ 0x60a0cb25f9b5 absl::lts_20240116::log_internal::LogMessage::Die()
@ 0x60a0cb25fd9f absl::lts_20240116::log_internal::LogMessageFatal::~LogMessageFatal()
@ 0x60a0cb043fae ceres::internal::CudaSparseCholeskyImpl<>::~CudaSparseCholeskyImpl()
@ 0x60a0cae628ca ceres::internal::SparseSchurComplementSolver::~SparseSchurComplementSolver()
@ 0x60a0cae629cd ceres::internal::SparseSchurComplementSolver::~SparseSchurComplementSolver()
@ 0x60a0cad4d26c ceres::internal::PreprocessedProblem::~PreprocessedProblem()
@ 0x60a0cad4bf58 ceres::Solver::Solve()
@ 0x60a0ca83d6fd glomap::BundleAdjuster::Solve()
@ 0x60a0ca81c841 glomap::GlobalMapper::Solve()
@ 0x60a0ca81366b glomap::RunMapper()
@ 0x60a0ca80dd83 main
@ 0x787624a2a1ca (unknown)
@ 0x787624a2a28b __libc_start_main
@ 0x60a0ca80ef35 _start
Error during GLOMAP reconstruction. Exiting.
W0000 00:00:1745832035.277016 142780 levenberg_marquardt_strategy.cc:120] Linear solver fatal error: cudssExecute with CUDSS_PHASE_ANALYSIS failed Got error: CUDSS_STATUS_ALLOC_FAILED

Activity

  1. changed the title [-]levenberg_marquardt_strategy.cc:120] Linear solver fatal error: cudssExecute[/-] [+]CUDA Sparse Direct Solver (part of Ceres Solver, used by Glomap) failed to allocate the necessary memory on the GPU during the bundle adjustment analysis phase.[/+] on Apr 28, 2025
  2. lpanaf commented on May 26, 2025

    @lpanaf
    Collaborator

    Hi @lanxinger, do you have a minimal example so we can reproduce the results? Sometimes the bug will be resolved by rerunning the code.

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