Ginkgo  Generated from pipelines/2662685947 branch based on develop. Ginkgo version 2.0.0
A numerical linear algebra library targeting many-core architectures
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
gko::ext::cuda::solver::Cudss< ValueType, IndexType > Class Template Reference

A direct solver using NVIDIA's cuDSS library. More...

#include <ginkgo/extensions/cuda/solver/cudss.hpp>

Inheritance diagram for gko::ext::cuda::solver::Cudss< ValueType, IndexType >:
[legend]
Collaboration diagram for gko::ext::cuda::solver::Cudss< ValueType, IndexType >:
[legend]

Classes

class  Factory
 
struct  parameters_type
 

Public Types

using value_type = ValueType
 
using index_type = IndexType
 

Public Member Functions

const parameters_typeget_parameters () const
 
 Cudss (const Cudss &)
 Creates a copy of the solver (shares factorization state).
 
 Cudss (Cudss &&) noexcept
 Moves from the given solver, leaving it empty.
 
Cudssoperator= (const Cudss &)
 
Cudssoperator= (Cudss &&) noexcept
 
void refactorize (std::shared_ptr< const LinOp > new_matrix)
 Re-run the numeric factorization with updated matrix values. More...
 
- Public Member Functions inherited from gko::LinOp
void apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
 Applies a linear operator to a vector (or a sequence of vectors). More...
 
void apply (ptr_param< const LinOp > alpha, ptr_param< const LinOp > b, ptr_param< const LinOp > beta, ptr_param< LinOp > x) const
 Performs the operation x = alpha * op(b) + beta * x. More...
 
const dim< 2 > & get_size () const noexcept
 Returns the size of the operator. More...
 
virtual bool apply_uses_initial_guess () const
 Returns true if the linear operator uses the data given in x as an initial guess. More...
 
LinOpoperator= (const LinOp &)=default
 Copy-assigns a LinOp. More...
 
LinOpoperator= (LinOp &&other)
 Move-assigns a LinOp. More...
 
 LinOp (const LinOp &)=default
 Copy-constructs a LinOp. More...
 
 LinOp (LinOp &&other)
 Move-constructs a LinOp. More...
 
- Public Member Functions inherited from gko::PolymorphicObject
PolymorphicObjectoperator= (const PolymorphicObject &)
 
std::shared_ptr< const Executorget_executor () const noexcept
 Returns the Executor of the object. More...
 
- Public Member Functions inherited from gko::log::EnableLogging< PolymorphicObject >
void add_logger (std::shared_ptr< const Logger > logger) override
 
void remove_logger (const Logger *logger) override
 
void remove_logger (ptr_param< const Logger > logger)
 
const std::vector< std::shared_ptr< const Logger > > & get_loggers () const override
 
void clear_loggers () override
 
- Public Member Functions inherited from gko::log::Loggable
void remove_logger (ptr_param< const Logger > logger)
 

Static Public Member Functions

static auto build () -> decltype(Factory ::create())
 
static parameters_type parse (const config::pnode &config, const config::registry &context, const config::type_descriptor &td_for_child=config::make_type_descriptor< ValueType, IndexType >())
 Parse parameters from a configuration property tree.
 
static config::configuration_map get_config_map ()
 Returns a configuration_map for registering this type with a config::registry. More...
 

Detailed Description

template<typename ValueType, typename IndexType = int32>
class gko::ext::cuda::solver::Cudss< ValueType, IndexType >

A direct solver using NVIDIA's cuDSS library.

This solver is only supported on the CudaExecutor. It wraps the cuDSS sparse direct solver, performing analysis, factorization, and solve phases. The factorization is computed during construction (generate) and reused across apply calls.

The solver is opaque — factorization data is stored internally in cuDSS-native format and cannot be extracted.

Template Parameters
ValueTypethe value type of the system matrix and vectors
IndexTypethe index type of the system matrix

Member Function Documentation

◆ get_config_map()

template<typename ValueType , typename IndexType = int32>
static config::configuration_map gko::ext::cuda::solver::Cudss< ValueType, IndexType >::get_config_map ( )
static

Returns a configuration_map for registering this type with a config::registry.

Users can pass this to the registry constructor to enable JSON/YAML configuration of Cudss.

◆ refactorize()

template<typename ValueType , typename IndexType = int32>
void gko::ext::cuda::solver::Cudss< ValueType, IndexType >::refactorize ( std::shared_ptr< const LinOp new_matrix)

Re-run the numeric factorization with updated matrix values.

The new matrix must have the same sparsity pattern (dimensions and number of non-zeros) as the matrix used in generate(). Only the numeric factorization phase is re-executed; the symbolic analysis from the initial generate() is reused.

Parameters
new_matrixthe updated system matrix (same sparsity pattern)

The documentation for this class was generated from the following file: