![]() |
Ginkgo
Generated from pipelines/2662685947 branch based on develop. Ginkgo version 2.0.0
A numerical linear algebra library targeting many-core architectures
|
A direct solver using NVIDIA's cuDSS library. More...
#include <ginkgo/extensions/cuda/solver/cudss.hpp>
Classes | |
| class | Factory |
| struct | parameters_type |
Public Types | |
| using | value_type = ValueType |
| using | index_type = IndexType |
Public Member Functions | |
| const parameters_type & | get_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. | |
| Cudss & | operator= (const Cudss &) |
| Cudss & | operator= (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... | |
| LinOp & | operator= (const LinOp &)=default |
| Copy-assigns a LinOp. More... | |
| LinOp & | operator= (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 | |
| PolymorphicObject & | operator= (const PolymorphicObject &) |
| std::shared_ptr< const Executor > | get_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... | |
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.
| ValueType | the value type of the system matrix and vectors |
| IndexType | the index type of the system matrix |
|
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.
| 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.
| new_matrix | the updated system matrix (same sparsity pattern) |
1.8.16