DirectSolverOptions#

class nvmath.distributed.linalg.DirectSolverOptions(
*,
logger: ~logging.Logger = <factory>,
blocking: ~typing.Literal[True,
'auto'] = 'auto',
inplace_a: bool = True,
inplace_b: bool = True,
handle: int | None = None,
)[source]#

A data class for providing options to direct_solver() and DirectSolver.

logger#

Python Logger object. The root logger will be used if a logger object is not provided.

Type:

logging.Logger

blocking#

A flag specifying the behavior of the stream-ordered functions and methods. When blocking is True, the stream-ordered methods do not return until the operation is complete. When blocking is "auto", the methods may execute asynchronously when the inputs are on the GPU, depending on the problem specification and runtime conditions. The stream-ordered methods always block when the operands are on the CPU to ensure that the user doesn’t inadvertently use the result before it becomes available. The default is "auto".

Type:

Literal[True, ‘auto’]

inplace_a#

Whether the LU factorization overwrites the input left-hand side matrix a with the LU factors. The default is True.

This attribute is experimental and potentially subject to future changes.

Type:

bool

inplace_b#

Whether the solve overwrites the input right-hand side b with the solution x. The default is True.

This attribute is experimental and potentially subject to future changes.

Type:

bool

handle#

If None (the default), the required cuSOLVERMp library handle will be created automatically for the computation. If users wish to manage the library handle themselves, they may provide a cuSOLVERMp handle. The presence of a handle must be consistent across processes: either every process provides its own handle, or none do.

Type:

int | None