hipblasgemmex Interface Reference#
hipfort_hipblas::hipblasgemmex Interface Reference
BLAS EX API. More...
Public Member Functions | |
| integer(kind(hipblas_status_success)) function | hipblasgemmex_ (handle, transa, transb, m, n, k, alpha, a, atype, lda, b, btype, ldb, beta, c, ctype, ldc, computetype, algo) |
Detailed Description
BLAS EX API.
The gemmEx functions perform one of the matrix-matrix operations:
C = alpha*op( A )*op( B ) + beta*C,
where op( X ) is one of:
op( X ) = X or op( X ) = X**T or op( X ) = X**H,
alpha and beta are scalars, and A, B, and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix, and C an m by n matrix.
- Supported types are determined by the backend. See the cuBLAS documentation for cuBLAS backend information. For the rocBLAS backend, conversion from
hipblasComputeType_ttorocblas_datatype_thappens within hipBLAS. Supported types are as follows:
| aType | bType | cType | computeType |
|---|---|---|---|
| HIP_R_16F | HIP_R_16F | HIP_R_16F | HIPBLAS_COMPUTE_16F |
| HIP_R_16F | HIP_R_16F | HIP_R_16F | HIPBLAS_COMPUTE_32F |
| HIP_R_16F | HIP_R_16F | HIP_R_32F | HIPBLAS_COMPUTE_32F |
| HIP_R_16BF | HIP_R_16BF | HIP_R_16BF | HIPBLAS_COMPUTE_32F |
| HIP_R_16BF | HIP_R_16BF | HIP_R_32F | HIPBLAS_COMPUTE_32F |
| HIP_R_32F | HIP_R_32F | HIP_R_32F | HIPBLAS_COMPUTE_32F |
| HIP_R_64F | HIP_R_64F | HIP_R_64F | HIPBLAS_COMPUTE_64F |
| HIP_R_8I | HIP_R_8I | HIP_R_32I | HIPBLAS_COMPUTE_32I |
| HIP_C_32F | HIP_C_32F | HIP_C_32F | HIPBLAS_COMPUTE_32F |
| HIP_C_64F | HIP_C_64F | HIP_C_64F | HIPBLAS_COMPUTE_64F |
hipblasGemmExWithFlags is also available. This is identical to hipblasGemmEx with the addition of a flags parameter which controls the flags used in Tensile to control gemm algorithms with the rocBLAS backend. When using a cuBLAS backend, this parameter is ignored.
- Parameters
-
[in] handle - [hipblasHandle_t] handle to the hipBLAS library context queue. [in] transA - [hipblasOperation_t] specifies the form of op( A ). [in] transB - [hipblasOperation_t] specifies the form of op( B ). [in] m - [int] matrix dimension m. [in] n - [int] matrix dimension n. [in] k - [int] matrix dimension k. [in] alpha - [const void *] device pointer or host pointer specifying the scalar alpha. Same datatype as computeType. [in] A - [void *] device pointer storing matrix A. [in] aType [hipDataType] specifies the datatype of matrix A. [in] lda - [int] specifies the leading dimension of A. [in] B - [void *] device pointer storing matrix B. [in] bType [hipDataType] specifies the datatype of matrix B. [in] ldb - [int] specifies the leading dimension of B. [in] beta - [const void *] device pointer or host pointer specifying the scalar beta. Same datatype as computeType. [in] C - [void *] device pointer storing matrix C. [in] cType [hipDataType] specifies the datatype of matrix C. [in] ldc - [int] specifies the leading dimension of C. [in] computeType [hipblasComputeType_t] specifies the datatype of computation. [in] algo - [hipblasGemmAlgo_t] enumerant specifying the algorithm type.
Member Function/Subroutine Documentation
◆ hipblasgemmex_()
| integer(kind(hipblas_status_success)) function hipfort_hipblas::hipblasgemmex::hipblasgemmex_ | ( | type(c_ptr), value | handle, |
| integer(kind(hipblas_op_n)), value | transa, | ||
| integer(kind(hipblas_op_n)), value | transb, | ||
| integer(c_int), value | m, | ||
| integer(c_int), value | n, | ||
| integer(c_int), value | k, | ||
| type(c_ptr), value | alpha, | ||
| type(c_ptr), value | a, | ||
| integer(kind(hip_r_32f)), value | atype, | ||
| integer(c_int), value | lda, | ||
| type(c_ptr), value | b, | ||
| integer(kind(hip_r_32f)), value | btype, | ||
| integer(c_int), value | ldb, | ||
| type(c_ptr), value | beta, | ||
| type(c_ptr), value | c, | ||
| integer(kind(hip_r_32f)), value | ctype, | ||
| integer(c_int), value | ldc, | ||
| integer(kind(hipblas_compute_16f)), value | computetype, | ||
| integer(kind(hipblas_gemm_default)), value | algo | ||
| ) |
The documentation for this interface was generated from the following file: