libxsmm_gemm Interface

public interface libxsmm_gemm

Overloaded GEMM routines.


Contents


Module Procedures

public pure subroutine libxsmm_dgemm0(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_DOUBLE), intent(in), optional :: alpha
real(kind=C_DOUBLE), intent(in) :: a
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: lda
real(kind=C_DOUBLE), intent(in) :: b
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldb
real(kind=C_DOUBLE), intent(in), optional :: beta
real(kind=C_DOUBLE), intent(inout) :: c
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldc

public pure subroutine libxsmm_dgemm1(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_DOUBLE), intent(in), optional :: alpha
real(kind=C_DOUBLE), intent(in) :: a(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: lda
real(kind=C_DOUBLE), intent(in) :: b(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldb
real(kind=C_DOUBLE), intent(in), optional :: beta
real(kind=C_DOUBLE), intent(inout) :: c(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldc

public pure subroutine libxsmm_dgemm2(transa, transb, m, n, k, a, b, c, alpha, beta)

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_DOUBLE), intent(in) :: a(m,*)
real(kind=C_DOUBLE), intent(in) :: b(k,*)
real(kind=C_DOUBLE), intent(inout) :: c(m,*)
real(kind=C_DOUBLE), intent(in), optional :: alpha
real(kind=C_DOUBLE), intent(in), optional :: beta

public pure subroutine libxsmm_dgemm3(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (double-precision). This overload belongs to libxsmm_(d)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_DOUBLE), intent(in), optional :: alpha
real(kind=C_DOUBLE), intent(in) :: a(lda,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: lda
real(kind=C_DOUBLE), intent(in) :: b(ldb,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ldb
real(kind=C_DOUBLE), intent(in), optional :: beta
real(kind=C_DOUBLE), intent(inout) :: c(ldc,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ldc

public pure subroutine libxsmm_sgemm0(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_FLOAT), intent(in), optional :: alpha
real(kind=C_FLOAT), intent(in) :: a
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: lda
real(kind=C_FLOAT), intent(in) :: b
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldb
real(kind=C_FLOAT), intent(in), optional :: beta
real(kind=C_FLOAT), intent(inout) :: c
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldc

public pure subroutine libxsmm_sgemm1(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_FLOAT), intent(in), optional :: alpha
real(kind=C_FLOAT), intent(in) :: a(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: lda
real(kind=C_FLOAT), intent(in) :: b(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldb
real(kind=C_FLOAT), intent(in), optional :: beta
real(kind=C_FLOAT), intent(inout) :: c(*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional :: ldc

public pure subroutine libxsmm_sgemm2(transa, transb, m, n, k, a, b, c, alpha, beta)

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_FLOAT), intent(in) :: a(m,*)
real(kind=C_FLOAT), intent(in) :: b(k,*)
real(kind=C_FLOAT), intent(inout) :: c(m,*)
real(kind=C_FLOAT), intent(in), optional :: alpha
real(kind=C_FLOAT), intent(in), optional :: beta

public pure subroutine libxsmm_sgemm3(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

Auto-dispatched general dense MM (single-precision). This overload belongs to libxsmm_(s)gemm.

Arguments

Type IntentOptional Attributes Name
character, intent(in), optional :: transa
character, intent(in), optional :: transb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
real(kind=C_FLOAT), intent(in), optional :: alpha
real(kind=C_FLOAT), intent(in) :: a(lda,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: lda
real(kind=C_FLOAT), intent(in) :: b(ldb,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ldb
real(kind=C_FLOAT), intent(in), optional :: beta
real(kind=C_FLOAT), intent(inout) :: c(ldc,*)
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: ldc