ceres-solver / ceres-solver

A large scale non-linear optimization library

Home Page:http://ceres-solver.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows Cuda build is broken

sandwichmaker opened this issue · comments

Dmitry's patch 18ea7d1 broke the windows and linux build. I fixed the linux build in bea2477 which I thought would fix both builds, but the VisualStudio build is still broken.

https://github.com/ceres-solver/ceres-solver/actions/runs/6279749583/job/17055916387

and it seems to be related to not being able to find glog for the cuda kernels build target.

@sergiud can you please take a look?

cc: @DmitriyKorchemkin happy to assign this to you.

I have three solutions in mind:

  1. Add dependencies of ceres to ceres_cuda_kernels.
    Just adding dependencies via target_link_libraries does not resolve the problem completely (nvcc version that we have on windows does not support nested namespaces, and ContextImpl references lots of stuff via ThreadPool)
  2. Move cuda-related stuff from ContextImpl into a separate structure inside ceres_cuda_kernels, and add it as a field to ContextImpl
  3. Use implementation from the first version of patchset (with boolean flag instead of passing ContextImpl)

Which one makes more sense from your perspective?

I think (1) is going to be a pain.
(2) requires design, I'd rather do it in the 2.3 timeframe, and for now lets go back to (3) for now.

Fixed at head