cuSOLVERMp Data Types#
Data types#
cusolverMpHandle_t#
ThecusolverMpHandle_tstructure holds the cuSOLVERMp library context (device properties, system information, etc.).The handle must be initialized and destroyed using cusolverMpCreate() and cusolverMpDestroy() functions respectively.
cusolverMpGrid_t#
ThecusolverMpGrid_tstructure holds information about the grid dimensions and stores the communicator associated to the grid of processes.It must be initialized and destroyed using cusolverMpCreateDeviceGrid() and cusolverMpDestroyGrid() functions respectively.
cusolverMpMatrixDescriptor_t#
ThecusolverMpMatrixDescriptor_tstructure captures the shape and characteristics of a distributed matrix.It must be initialized and destroyed using cusolverMpCreateMatrixDesc() and cusolverMpDestroyMatrixDesc() functions respectively.
cusolverMpNewtonSchulzDescriptor_t#
ThecusolverMpNewtonSchulzDescriptor_tstructure holds parameters that control the behavior of cusolverMpNewtonSchulz(), such as whether to normalize the input matrix.It must be initialized and destroyed using cusolverMpNewtonSchulzDescriptorCreate() and cusolverMpNewtonSchulzDescriptorDestroy() functions respectively.Attributes can be set and queried using cusolverMpNewtonSchulzDescriptorSetAttribute() and cusolverMpNewtonSchulzDescriptorGetAttribute().
cusolverMpPolarDescriptor_t#
ThecusolverMpPolarDescriptor_tstructure stores options and scalar diagnostics for cusolverMpPolar().It must be initialized and destroyed using cusolverMpPolarDescriptorCreate() and cusolverMpPolarDescriptorDestroy() functions respectively.Attributes can be set and queried using cusolverMpPolarDescriptorSetAttribute() and cusolverMpPolarDescriptorGetAttribute().ANULLdescriptor may be passed to cusolverMpPolar() and cusolverMpPolar_bufferSize() for default behavior.The descriptor must not be shared between concurrent cusolverMpPolar() calls.
cusolverMpGesvdDescriptor_t#
ThecusolverMpGesvdDescriptor_tstructure stores attributes and scalar diagnostics for cusolverMpGesvd().It must be initialized and destroyed using cusolverMpGesvdDescriptorCreate() and cusolverMpGesvdDescriptorDestroy() functions respectively.Input attributes can be set using cusolverMpGesvdDescriptorSetAttribute(). Input and output attributes can be queried using cusolverMpGesvdDescriptorGetAttribute().ANULLdescriptor may be passed to cusolverMpGesvd() and cusolverMpGesvd_bufferSize() to discard diagnostics.Descriptor input attributes that affect GESVD behavior are control-flow inputs and must be set identically on every rank for cusolverMpGesvd() and cusolverMpGesvd_bufferSize().The descriptor must not be shared between concurrent cusolverMpGesvd() calls.
Enumerators#
cusolverMpGridMapping_t#
Describes the ordering of the grid of processes.
Value |
Description |
|---|---|
CUSOLVERMP_GRID_MAPPING_ROW_MAJOR |
The grid of processes will be accessed in row-major ordering. |
CUSOLVERMP_GRID_MAPPING_COL_MAJOR |
The grid of processes will be accessed in column-major ordering. |
cusolverMpNewtonSchulzDescriptorAttribute_t#
Enumerates the attributes that can be set on a cusolverMpNewtonSchulzDescriptor_t.
Value |
Type |
Default |
Description |
|---|---|---|---|
CUSOLVERMP_NEWTON_SCHULZ_DESCRIPTOR_ATTRIBUTE_NORMALIZE |
int |
1 |
When set to 1, the input matrix is normalized by its Frobenius norm before iterations begin. Normalization is required for convergence; set to 0 only when the input is already normalized. |
CUSOLVERMP_NEWTON_SCHULZ_DESCRIPTOR_ATTRIBUTE_REDUCE_VIA_COMPUTE_TYPE |
int |
0 |
When set to 1, the distributed Gram-matrix reduction path may communicate/reduce intermediate |
cusolverMpPolarDescriptorAttribute_t#
Enumerates attributes stored on a cusolverMpPolarDescriptor_t.
Value |
Type |
Default |
Description |
|---|---|---|---|
CUSOLVERMP_POLAR_DESCRIPTOR_ATTRIBUTE_REQUESTED_KSI |
double |
0.0 |
Input attribute. Values greater than 0 request a diagonal perturbation in original unscaled units. Values less than or equal to 0 request no perturbation. |
CUSOLVERMP_POLAR_DESCRIPTOR_ATTRIBUTE_A_NORM_FROBENIUS |
double |
NaN |
Output attribute. Frobenius norm of the logical, unperturbed input submatrix before overwrite. For |
CUSOLVERMP_POLAR_DESCRIPTOR_ATTRIBUTE_RCOND_ESTIMATE |
double |
NaN |
Output attribute. Estimate of |
cusolverMpGesvdDescriptorAttribute_t#
Enumerates attributes stored on a cusolverMpGesvdDescriptor_t.
Value |
Type |
Default |
Description |
|---|---|---|---|
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_COMPUTE_RESIDUAL |
int |
0 |
Input attribute. When set to a nonzero value, successful non-empty cusolverMpGesvd() calls that request both |
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_SHAPE |
CUSOLVERMP_GESVD_OUTPUT_SHAPE_THIN |
Input attribute. Selects the singular-vector output shape. THIN returns |
|
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_A_NORM_FROBENIUS |
double |
NaN |
Output attribute. Frobenius norm of the original input submatrix before it is overwritten, or NaN if not computed. |
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_RCOND |
double |
NaN |
Output attribute. Implementation-provided reciprocal-condition estimate for the initial unperturbed input. This diagnostic is not guaranteed to equal the ratio of the smallest to largest singular value. NaN if not computed. |
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_RESIDUAL_FROBENIUS_ESTIMATE |
double |
NaN |
Output attribute. Absolute Frobenius norm of the SVD reconstruction residual, |
CUSOLVERMP_GESVD_DESCRIPTOR_ATTRIBUTE_NUM_SINGULAR_FOUND |
int64_t |
0 |
Output attribute. Number of singular values available in |
cusolverMpGesvdOutputShape_t#
Enumerates output shapes for cusolverMpGesvd() singular-vector factors.
Value |
Description |
|---|---|
CUSOLVERMP_GESVD_OUTPUT_SHAPE_THIN |
Default. Returns requested vector factors in economy shape: |
CUSOLVERMP_GESVD_OUTPUT_SHAPE_FULL |
Returns requested vector factors in full shape: |
cusolverMpLoggerCallback_t#
Function pointer type for cuSOLVERMp logging callbacks. The callback function is called by the library to report logging information.The callback can be set using cusolverMpLoggerSetCallback().The callback function takes the following parameters:
Parameter |
Type |
Description |
|---|---|---|
logLevel |
int |
The severity level of the log message. |
functionName |
const char* |
Name of the function generating the log message. |
message |
const char* |
The actual log message text. |