Skip to content

OOM during global positioning on ~10k fisheye images (3.9M tracks) even with cuDSS #234

@DuVogel87

Description

@DuVogel87
  • Context: COLMAP DB ~34 GB; ~10,130 fisheye images (~3 GB total). Running glomap mapper (cuDSS build, CUDA 12.8) on Ubuntu, 64 GB RAM, GPU: NVIDIA GeForce RTX 3090.
  • Observed: After track establishment (10.3M → 3.885M filtered), global positioning begins, then the kernel OOM-kills glomap at ~42 GB RSS. Happens consistently. cuDSS is enabled; --GlobalPositioning.use_gpu/--BundleAdjustment.use_gpu are at defaults (1).
  • Logs/syslog snippet: Out of memory: Killed process XXXX (glomap) total-vm:~59G, anon-rss:~42G … right after “Solving the global positioner problem.”
  • Questions/requests:
    1. Recommended flags/workflow for large scenes to reduce peak RAM during global positioning/BA?
    2. Is there a built-in way to chunk/stream the solver (e.g., batch tracks/poses) or an out-of-core mode?
    3. Any known memory regressions/tunables for cuDSS builds in recent commits?
    4. Guidance on safe limits (tracks, matches, overlaps) for ~10k-image rigs?
  • Environment: glomap commit as of 2025-11-26 (COLMAP 3.13.0, cuDSS 0.7.1, CUDA 12.8), Ubuntu, 64 GB RAM, NVIDIA GeForce RTX 3090.
  • Repro command (example):
    glomap mapper \
      --database_path /path/to/database.db \
      --image_path /path/to/images \
      --output_path /path/to/glomap_out \
      --BundleAdjustment.optimize_intrinsics 1 \
      --BundleAdjustment.optimize_principal_point 0 \
      --BundleAdjustment.optimize_rig_poses 1 \
      --BundleAdjustment.max_num_iterations 300
    
    (Global positioning starts, then OOM.)

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