libxsmm_dispatch Interface

public interface libxsmm_dispatch

Construct JIT-code depending on given argument set.


Contents


Module Procedures

public subroutine libxsmm_dmmdispatch(kernel, m, n, k, lda, ldb, ldc, alpha, beta, flags, prefetch)

Query or JIT-generate an SMM-kernel (double-precision).

Arguments

Type IntentOptional Attributes Name
type(LIBXSMM_DMMFUNCTION), intent(out) :: kernel
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: lda
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: ldb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: ldc
real(kind=C_DOUBLE), intent(in), optional, TARGET :: alpha
real(kind=C_DOUBLE), intent(in), optional, TARGET :: beta
integer(kind=C_INT), intent(in), optional, TARGET :: flags
integer(kind=C_INT), intent(in), optional, TARGET :: prefetch

public subroutine libxsmm_smmdispatch(kernel, m, n, k, lda, ldb, ldc, alpha, beta, flags, prefetch)

Query or JIT-generate an SMM-kernel (single-precision).

Arguments

Type IntentOptional Attributes Name
type(LIBXSMM_SMMFUNCTION), intent(out) :: kernel
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: m
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: n
integer(kind=LIBXSMM_BLASINT_KIND), intent(in) :: k
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: lda
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: ldb
integer(kind=LIBXSMM_BLASINT_KIND), intent(in), optional, TARGET :: ldc
real(kind=C_FLOAT), intent(in), optional, TARGET :: alpha
real(kind=C_FLOAT), intent(in), optional, TARGET :: beta
integer(kind=C_INT), intent(in), optional, TARGET :: flags
integer(kind=C_INT), intent(in), optional, TARGET :: prefetch