Eigen-Contrib  5.0.1
 
Loading...
Searching...
No Matches
Eigen::gpu::SparseSolverConfig Struct Reference

#include <contrib/Eigen/src/GPU/GpuSparseSolverBase.h>

Detailed Description

Pass-through configuration for the cuDSS-backed sparse direct solvers (SparseLLT, SparseLDLT, SparseLU). Fields left at their defaults keep the corresponding cuDSS default, which is tuned for performance rather than maximum robustness (e.g. matching is off). Non-default fields require cuDSS >= 0.8, whose cudssReorderingAlg_t etc. name the algorithms with stable values; earlier versions declare no algorithm enumerator and accept only a default config, which EIGEN_HAS_CUDSS_SOLVER_CONFIG reports.

Public Member Functions

bool isDefault () const
 

Public Attributes

bool hybridExecute
 
bool hybridMemory
 
int64_t hybridMemoryDeviceLimit
 
double pivotEpsilon
 
double pivotThreshold
 
int refinementSteps
 
double refinementTolerance
 

Member Function Documentation

◆ isDefault()

bool Eigen::gpu::SparseSolverConfig::isDefault ( ) const
inline

True when every field keeps the cuDSS default.

Member Data Documentation

◆ hybridExecute

bool Eigen::gpu::SparseSolverConfig::hybridExecute

Split factorization/solve work between host and device. cuDSS requires this before analysis, which it changes — set it before analyzePattern().

◆ hybridMemory

bool Eigen::gpu::SparseSolverConfig::hybridMemory

Let factor data spill to host memory when device memory is insufficient. Changes what analyzePattern() builds — set it before that phase.

◆ hybridMemoryDeviceLimit

int64_t Eigen::gpu::SparseSolverConfig::hybridMemoryDeviceLimit

Device-memory budget in bytes for hybridMemory; negative keeps the cuDSS default heuristic, which is what cuDSS itself spells as -1. Zero is a budget of its own and is passed through.

◆ pivotEpsilon

double Eigen::gpu::SparseSolverConfig::pivotEpsilon

Perturbation applied to near-zero pivots; negative keeps the cuDSS default.

◆ pivotThreshold

double Eigen::gpu::SparseSolverConfig::pivotThreshold

Pivot admissibility threshold in [0, 1]; negative keeps the cuDSS default.

◆ refinementSteps

int Eigen::gpu::SparseSolverConfig::refinementSteps

Iterative-refinement steps during solve(); negative keeps the cuDSS default (0).

◆ refinementTolerance

double Eigen::gpu::SparseSolverConfig::refinementTolerance

Iterative-refinement stopping tolerance; negative keeps the cuDSS default.


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