Input / Output Format#
Value Format#
BLAS::a_value_type
BLAS::b_value_type
BLAS::c_value_type
For complex numbers of every precision, the first value in a complex number is the real part and the second is the imaginary part.
For real numbers, BLAS::<a/b/c>_value_type is the same as P in Precision<PA, PB, PC> used to describe BLAS (or the default precision).
Input/Output Data Format#
This section describes the input and output data format (layout) required for correct calculations.
The tensor API for general matrix multiplication (execute()) and triangular solve (execute() and execute()) are execution descriptor methods which expect matrices represented using (cublasdx::tensor). They both accept matrices represented by tensors with arbitrary layouts. Since the tensor object carries all the information about the dimensions, the memory location and layout of a matrix, no other implicit assumptions are needed.
The dimensions of the matrices must match the dimensions defined by Size operator. See also Get Memory Layout and Suggested shared memory Layout sections for using optimized layouts.
The pointer API methods for general matrix multiplication (#2 and #3 overloads of execute())
and triangular solve (#2 and #3 overloads of execute() and execute()) assume that
values in input matrices matrix_a, matrix_b (and optionally matrix_c for GEMM) are stored as defined by the Arrangement
operator added to the description (by default it’s row-major format for matrix_a, column-major for matrix_b, and column-major for matrix_c).