Execution Traits#
Execution traits can be retrieved directly from a Solver function descriptor, if the description is complete execution. The available execution traits may depend on the operator used to build the descriptor. Right now, Block Operator is the only available execution operator.
Block Traits#
Block traits can be retrieved from descriptors built with Block Operator.
Trait |
Default value |
Description |
---|---|---|
|
Type of input and output data |
|
Determined by the problem size or set via LeadingDimension Operator |
Leading dimensions of matrices |
|
Determined by the problem size and set leading dimensions. |
Number of elements in |
|
Set via Arrangement Operator |
Memory layout for |
|
Set via FillMode Operator |
Fill mode for symmetric or Hermitian matrix |
|
Determined by the problem size, leading dimensions, batches per block and function type. |
The size of the shared memory in bytes required to allocate input and output matrices. |
|
Base on heuristic or set via BlockDim Operator |
Value of type |
Block traits can be retrieved from descriptors built with Block Operator.
Data Type Trait#
Solver::a_data_type
Data type for matrices A
, X
, and B
. Determined by Precision Operator and Type Operator.
cuSolverDx does not support mixed data type currently, so matrices A
, B
and X
are required to be the same data type. The limitation may be lifted in the future release.
Leading Dimension Trait#
// unsigned int
Solver::lda
Solver::ldb
Leading dimensions of matrices A
and B
. See LeadingDimension Operator.
Matrix Size Trait#
// unsigned int
Solver::a_size
Solver::b_size
Number of elements in A
and B
matrices, determined by the padding determined by the leading dimensions and the arrangement operator.
Arrangement Trait#
// cusolverdx::arrangement
Solver::a_arrangement
Solver::b_arrangement
Number of elements in A
and B
matrices. See Arrangement Operator.
Fill Mode Trait#
// cusolverdx::fill_mode
Solver::fill_mode
Fill Mode of A
matrix. See FillMode Operator.
Batches Per Block Trait#
// unsigned int
Solver::batches_per_block
Number of batches to execute in parallel in a single CUDA thread block. See BatchesPerBlock Operator.
Note
If BatchesPerBlock operator is not used in a Solver
description, the default value of Solver::batches_per_block
is 1, not Solver::suggested_batches_per_block.
Block Dim Trait#
// dim3
Solver::block_dim
cusolverdx::block_dim<Solver>::value
cusolverdx::block_dim_v<Sovler>
Value of type dim3
representing number of threads that will be used to perform requested Solver function. See BlockDim Operator.
Note
If BlockDim is not used in Solver
description, the default value of Solver::block_dim
is equal to Solver::suggested_block_dim.