Skip to content

Update CUDA chol() implementation to new cuSolver API, and other cleanups

Ryan Curtin requested to merge rcurtin/bandicoot-code:chol-cuda-update into unstable

A couple cleanups here:

  • Adapt cuda::chol() and opencl::chol() to not throw exceptions, but instead return a std::tuple<bool, std::string>, like svd(), so that exceptions can be suppressed for some versions of chol() (like Armadillo).
  • Use cuSolverDnXpotrf() instead of deprecated type-specific versions.
  • Handle some memory leaks that could happen on failed cuSolver calls.
  • Check info code to ensure decomposition was successful, and print reasonable error messages if not.
  • Adapt tests to use TEMPLATE_TEST_CASE().

Merge request reports