hipblasgemmex Interface Reference

hipblasgemmex Interface Reference#

HIPFORT API Reference: hipfort_hipblas::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_t to rocblas_datatype_t happens 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: