Add cuDSS as sparse Cholesky solver

cuDSS could be used as an alternative for SuiteSparse and EigenSparse
in case if CUDA capable GPU is available.

Change-Id: I7a567093ce91363478118153e181134ed5804573
This commit is contained in:
Mark Shachkov
2024-05-01 11:00:58 +02:00
parent e47a42c295
commit 6fb3dae4ee
43 changed files with 1982 additions and 44 deletions
+6
View File
@@ -47,6 +47,9 @@
#include "cuda_runtime.h"
#include "cusolverDn.h"
#include "cusparse.h"
#ifndef CERES_NO_CUDSS
#include "cudss.h"
#endif // CERES_NO_CUDSS
#endif // CERES_NO_CUDA
#include "ceres/thread_pool.h"
@@ -122,6 +125,9 @@ class CERES_NO_EXPORT ContextImpl final : public Context {
cusolverDnHandle_t cusolver_handle_ = nullptr;
cublasHandle_t cublas_handle_ = nullptr;
#ifndef CERES_NO_CUDSS
cudssHandle_t cudss_handle_ = nullptr;
#endif // CERES_NO_CUDSS
// Default stream.
// Kernel invocations and memory copies on this stream can be left without