Visible to Intel only — GUID: GUID-25EA8F03-1E87-4A6B-BD1D-0724ED18BA45
Visible to Intel only — GUID: GUID-25EA8F03-1E87-4A6B-BD1D-0724ED18BA45
mkl_jit_get_?gemm_ptr
Return the GEMM kernel associated with a jitter previously created with mkl_jit_create_?gemm.
sgemm_jit_kernel_t mkl_jit_get_sgemm_ptr(const void* jitter);
dgemm_jit_kernel_t mkl_jit_get_dgemm_ptr(const void* jitter);
cgemm_jit_kernel_t mkl_jit_get_cgemm_ptr(const void* jitter);
zgemm_jit_kernel_t mkl_jit_get_zgemm_ptr(const void* jitter);
- mkl.h
The mkl_jit_get_?gemm_ptr functions belong to a set of related routines that enable use of just-in-time code generation.
The mkl_jit_get_?gemm_ptr functions take as input a jitter previously created with mkl_jit_create_?gemm, and return the GEMM kernel associated with that jitter. The returned GEMM kernel computes a scalar-matrix-matrix product and adds the result to a scalar-matrix product, with general matrices. The operation is defined as follows:
C := alpha*op(A)*op(B) + beta*C
Where:
- op(X) is one of op(X) = X or op(X) = XT or op(X) = XH
- alpha and beta are scalars
- A, B, and C are matrices
- op(A) is an m-by-k matrix
- op(B) is a k-by-n matrix
- C is an m-by-n matrix
Generating a new kernel with mkl_jit_create_?gemm involves moderate runtime overhead. To benefit from JIT code generation, use this feature when you need to call the generated kernel many times (for example, several hundred calls).
jitter |
Handle to the code generator. |
func |
If the jitter input is not NULL, returns a function pointer to a GEMM kernel. The GEMM kernel is called with four parameters: the jitter and the three matrices a, b, and c. Otherwise, returns NULL. |
If layout, transa, transb, m, n, k, lda, ldb, and ldc are the parameters used during the creation of the input jitter, then:
a |
|
|||||||||
b |
|
|||||||||
c |
|