Hi Sameer,
thank you for the hint. I added using ceres::CUDA
and have the following solver options:
Solver::Summary summary;
Solver::Options options;
options.dense_linear_algebra_library_type = CUDA;
options.linear_solver_type = ceres::DENSE_QR
options.minimizer_progress_to_stdout = true;
Solve(options, &problem, &summary);
I went through your test_files to find some additional hints, and I also tried searching github.
Is there some easy minimal example of ceres with CUDA that I missed?
This is the output of the summary:
Residual blocks 8000 8000
Residuals 8000 8000
Minimizer TRUST_REGION
Dense linear algebra library CUDA
Trust region strategy LEVENBERG_MARQUARDT
Given Used
Linear solver DENSE_QR DENSE_QR
Threads 1 1
Linear solver ordering AUTOMATIC 2
Cost:
Initial 4.769645e+07
Final 1.834855e+02
Change 4.769627e+07
Minimizer iterations 6
Successful steps 6
Unsuccessful steps 0
Time (in seconds):
Preprocessor 0.669198
Residual only evaluation 0.014601 (6)
Jacobian & residual evaluation 4.412829 (6)
Linear solver 0.017282 (6)
Minimizer 4.450352
Postprocessor 0.000144
Total 5.119694
Termination: CONVERGENCE (Function tolerance reached. |cost_change|/cost: 1.087332e-09 <= 1.000000e-06)
This one was pretty fast, but my other models are more complicated and running them takes up to two days,.
I guess the problem is that the no of threads is 1? What to do about this?
Thank you for your help,
Ursela