cuBLASMp Data Types#

Data types#

cublasMpHandle_t#

The cublasMpHandle_t structure holds the cuBLASMp library context (device properties, system information, etc.).
The handle must be initialized and destroyed using cublasMpCreate() and cublasMpDestroy() functions respectively.

cublasMpGrid_t#

The cublasMpGrid_t structure holds information about the grid dimensions and stores the communicator associated to the grid of processes.
It must be initialized and destroyed using cublasMpGridCreate() and cublasMpGridDestroy() functions respectively.

cublasMpMatrixDescriptor_t#

The cublasMpMatrixDescriptor_t structure captures the shape and characteristics of a distributed matrix.
It must be initialized and destroyed using cublasMpMatrixDescriptorCreate() and cublasMpMatrixDescriptorDestroy() functions respectively.

cublasMpMatmulDescriptor_t#

The cublasMpMatmulDescriptor_t structure captures the properties of a distributed matrix-matrix multiplication performed using cublasMpMatmul().
It must be initialized and destroyed using cublasMpMatmulDescriptorCreate() and cublasMpMatmulDescriptorDestroy() functions respectively.

Enumerators#

cublasMpStatus_t#

The type is used for function status returns. All cuBLASMp library functions return their status, which can have the following values.

Value

Meaning

CUBLASMP_STATUS_SUCCESS

The operation completed successfully.

CUBLASMP_STATUS_NOT_INITIALIZED

The cuBLASMp library was not initialized.

CUBLASMP_STATUS_ALLOCATION_FAILED

Resource allocation failed inside the cuBLASMp library.

CUBLASMP_STATUS_INVALID_VALUE

An unsupported value or parameter was passed to the function.

CUBLASMP_STATUS_ARCHITECTURE_MISMATCH

The function requires a feature absent from the device architecture.

CUBLASMP_STATUS_EXECUTION_FAILED

The GPU program failed to execute.

CUBLASMP_STATUS_INTERNAL_ERROR

An internal cuBLASMp operation failed.

CUBLASMP_STATUS_NOT_SUPPORTED

The functionality requested is not supported.

cublasMpGridLayout_t#

Describes the ordering of the grid of processes.

Value

Meaning

CUBLASMP_GRID_MAPPING_ROW_MAJOR

The grid of processes will be accessed in row-major ordering.

CUBLASMP_GRID_MAPPING_COL_MAJOR

The grid of processes will be accessed in column-major ordering.

cublasMpMatmulDescriptorAttribute_t#

Attributes of cublasMpMatmulDescriptor_t that can be set using cublasMpMatmulDescriptorAttributeSet() and queried using cublasMpMatmulDescriptorAttributeGet().

Value

Meaning

Type

CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_TRANSA

Indicates which operation needs to be performed with the dense matrix A.

cublasOperation_t

CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_TRANSB

Indicates which operation needs to be performed with the dense matrix B.

cublasOperation_t

CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_COMPUTE_TYPE

Indicates the compute type of the matrix multiplication.

cublasComputeType_t

CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_ALGO_TYPE

Hints the algorithm type to be used. If not supported, cuBLASMp will fallback to the default algorithm.

cublasMpMatmulAlgoType_t

CUBLASMP_MATMUL_DESCRIPTOR_ATTRIBUTE_COMMUNICATION_SM_COUNT

Indicates the number of SMs to be used for communication.

cublasMpMatmulAlgoType_t

cublasMpMatmulAlgoType_t#

Matrix-matrix multiplication algorithms types to be used. This is treated as a hint and it is not guaranteed that cuBLASMp will use the requested implementation.

Value

Meaning

CUBLASMP_MATMUL_ALGO_TYPE_DEFAULT

Default algorithm.

CUBLASMP_MATMUL_ALGO_TYPE_SPLIT_P2P

Use split matmul with p2p communication.

CUBLASMP_MATMUL_ALGO_TYPE_SPLIT_MULTICAST

Use split matmul with multicast communication.

CUBLASMP_MATMUL_ALGO_TYPE_ATOMIC_MULTICAST

Use atomic matmul with multicast communication.