Skip to content

Add CUDA bundle adjustment support - #1137

Open
Kusum-mrv20 wants to merge 6 commits into
borglab:masterfrom
Kusum-mrv20:feat/cuda-bundle-adjustment
Open

Add CUDA bundle adjustment support#1137
Kusum-mrv20 wants to merge 6 commits into
borglab:masterfrom
Kusum-mrv20:feat/cuda-bundle-adjustment

Conversation

@Kusum-mrv20

@Kusum-mrv20 Kusum-mrv20 commented Sep 4, 2026

Copy link
Copy Markdown

Summary

  • Add CUDA Sparse Levenberg-Marquardt bundle adjustment support through GTSAM PR #2761.
  • Expose PCG/CUDSS settings, fallback diagnostics, and a runnable CUDA config.
  • Add focused wrapper tests and documentation.
  • Add a slow Gerrard Hall CPU vs CUDA BA timing test for review.

Validation

  • uv run pytest tests/bundle/test_bundle_adjustment.py -q: 15 passed
  • Real GPU BA on bundled Dubrovnik examples: CUDA device backend, converged in 4 iterations.
  • dubrovnik-3-7-pre: error 691.0550 -> 0.3675
  • dubrovnik-3-7-18-pre: error 688.2935 -> 0.0092

Gerrard Hall timing (for review)

CPU vs CUDA Sparse LM on the Gerrard Hall COLMAP sparse model (~100 cameras, ~43k tracks), measured with:

bash .github/scripts/download_single_benchmark.sh gerrard-hall-100 wget
uv run pytest tests/bundle/test_cuda_ba_timing.py -m "slow and cuda" -s --no-cov

Representative local result on an RTX 3080 (PCG backend, reprojection-only graph, max_iterations=50):

Backend Optimize time Final error Notes
CPU LM ~99 s 21179.56 gtsam.LevenbergMarquardtOptimizer
CUDA Sparse LM ~13 s 21153.36 Device backend, no CPU fallback
Speedup ~7.7× within ~0.2% timed via _last_optimization_duration_sec

@Kusum-mrv20

Copy link
Copy Markdown
Author

@kathirgounder can you please provide some initial reviews on these changes, have done sanity tests on small datasets, but can do further tests after first reviews

Kusum Meda Ravi and others added 5 commits September 8, 2026 21:26
Expose optimizer duration and document ~7.7x Sparse LM speedup on the benchmark scene for review.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@Kusum-mrv20

Copy link
Copy Markdown
Author

Hi Prof. @dellaert
Got initial review from Kathir, requesting your review on this PR

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant