pub enum Matching {
None,
Auto,
MaxDiagCount,
MaxMinDiag,
MaxMinDiagAlt,
MaxDiagSum,
MaxDiagProduct,
}Expand description
Specifies the matching algorithm (cuDSS only)
Important: Note that the default is Matching::None.
Note: It is recommended to select Matching::Auto when dealing with unsymmetric matrices containing some zero entries on their diagonal.
See: https://docs.nvidia.com/cuda/cudss/types.html#cudssmatchingalg-t
Variants§
None
No matching algorithm (default)
CUDSS_MATCHING_ALG_NONE
Auto
Automatic selection
Same as CUDSS_MATCHING_ALG_MAX_DIAG_PRODUCT (the most robust option). Matching with scaling; requires matrix values during analysis.
CUDSS_MATCHING_ALG_AUTO
MaxDiagCount
Column permutation to maximize the number of diagonal entries (values arbitrary). MC64 JOB=1. Does not use matrix values; not recommended unless justified.
CUDSS_MATCHING_ALG_MAX_DIAG_COUNT
MaxMinDiag
Column permutation to maximize the smallest value on the diagonal. MC64 JOB=2.
CUDSS_MATCHING_ALG_MAX_MIN_DIAG
MaxMinDiagAlt
Alternate algorithm to maximize the smallest value on the diagonal. MC64 JOB=3. May differ in performance from CUDSS_MATCHING_ALG_MAX_MIN_DIAG.
CUDSS_MATCHING_ALG_MAX_MIN_DIAG_ALT
MaxDiagSum
Column permutation to maximize the sum of diagonal entries. MC64 JOB=4.
CUDSS_MATCHING_ALG_MAX_DIAG_SUM
MaxDiagProduct
Column permutation to maximize the product of diagonal entries; also computes row/column scaling so that nonzero diagonal entries are 1 in absolute value and off-diagonal entries are ≤ 1. MC64 JOB=5. Most impactful for accuracy; requires matrix values during analysis.
CUDSS_MATCHING_ALG_MAX_DIAG_PRODUCT