| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- !===============================================================================
- ! Copyright 2014-2022 Intel Corporation.
- !
- ! This software and the related documents are Intel copyrighted materials, and
- ! your use of them is governed by the express license under which they were
- ! provided to you (License). Unless the License provides otherwise, you may not
- ! use, modify, copy, publish, distribute, disclose or transmit this software or
- ! the related documents without Intel's prior written permission.
- !
- ! This software and the related documents are provided as is, with no express
- ! or implied warranties, other than those that are expressly stated in the
- ! License.
- !===============================================================================
- ! Content:
- ! Intel(R) oneAPI Math Kernel Library (oneMKL) FORTRAN macros for MKL_DIRECT_CALL
- !*******************************************************************************
- #if defined MKL_DIRECT_CALL_SEQ_JIT
- #ifndef MKL_DIRECT_CALL_JIT
- #define MKL_DIRECT_CALL_JIT
- #endif
- #ifndef MKL_DIRECT_CALL_SEQ
- #define MKL_DIRECT_CALL_SEQ
- #endif
- #endif
- #if defined MKL_DIRECT_CALL_SEQ || defined MKL_DIRECT_CALL_JIT
- #ifndef MKL_DIRECT_CALL
- #define MKL_DIRECT_CALL
- #endif
- #endif
- #ifdef MKL_DIRECT_CALL
- #if defined MKL_DIRECT_CALL_SEQ
- #define MKL_DIRECT_CALL_FLAG 1
- #else
- #define MKL_DIRECT_CALL_FLAG 0
- #endif
- #define dgemm DGEMM
- #define sgemm SGEMM
- #define zgemm ZGEMM
- #define cgemm CGEMM
- #ifdef MKL_DIRECT_CALL_JIT
- #define DGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) MKL_DGEMM_DIRECT_JIT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define SGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) MKL_SGEMM_DIRECT_JIT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define CGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) MKL_CGEMM_DIRECT_JIT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define ZGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) MKL_ZGEMM_DIRECT_JIT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #else
- #define DGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) DGEMM_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define SGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) SGEMM_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define CGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) CGEMM_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define ZGEMM(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) ZGEMM_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #endif
- #define zgemm3m ZGEMM3M
- #define cgemm3m CGEMM3M
- #define CGEMM3M(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) CGEMM3M_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define ZGEMM3M(ta, tb, m, n, k, alpha, A, LDA, B, LDB, beta, C, LDC) ZGEMM3M_DIRECT(ta,tb,m,n,k,alpha,A,LDA,B,LDB,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define dtrsm DTRSM
- #define strsm STRSM
- #define ztrsm ZTRSM
- #define ctrsm CTRSM
- #define DTRSM(sa, su, st, sd, m, n, alpha, a, lda, b, ldb) DTRSM_DIRECT(sa,su,st,sd,m,n,alpha,a,lda,b,ldb,INT(MKL_DIRECT_CALL_FLAG))
- #define STRSM(sa, su, st, sd, m, n, alpha, a, lda, b, ldb) STRSM_DIRECT(sa,su,st,sd,m,n,alpha,a,lda,b,ldb,INT(MKL_DIRECT_CALL_FLAG))
- #define CTRSM(sa, su, st, sd, m, n, alpha, a, lda, b, ldb) CTRSM_DIRECT(sa,su,st,sd,m,n,alpha,a,lda,b,ldb,INT(MKL_DIRECT_CALL_FLAG))
- #define ZTRSM(sa, su, st, sd, m, n, alpha, a, lda, b, ldb) ZTRSM_DIRECT(sa,su,st,sd,m,n,alpha,a,lda,b,ldb,INT(MKL_DIRECT_CALL_FLAG))
- #define dsyrk DSYRK
- #define ssyrk SSYRK
- #define zsyrk ZSYRK
- #define csyrk CSYRK
- #define DSYRK(ul, tr, n, k, alpha, A, LDA, beta, C, LDC) DSYRK_DIRECT(ul,tr,n,k,alpha,A,LDA,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define SSYRK(ul, tr, n, k, alpha, A, LDA, beta, C, LDC) SSYRK_DIRECT(ul,tr,n,k,alpha,A,LDA,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define CSYRK(ul, tr, n, k, alpha, A, LDA, beta, C, LDC) CSYRK_DIRECT(ul,tr,n,k,alpha,A,LDA,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define ZSYRK(ul, tr, n, k, alpha, A, LDA, beta, C, LDC) ZSYRK_DIRECT(ul,tr,n,k,alpha,A,LDA,beta,C,LDC,INT(MKL_DIRECT_CALL_FLAG))
- #define daxpy DAXPY
- #define saxpy SAXPY
- #define caxpy CAXPY
- #define zaxpy ZAXPY
- #define DAXPY(n, alpha, x, incx, y, incy) DAXPY_DIRECT(n,alpha,x,incx,y,incy,INT(MKL_DIRECT_CALL_FLAG))
- #define SAXPY(n, alpha, x, incx, y, incy) SAXPY_DIRECT(n,alpha,x,incx,y,incy,INT(MKL_DIRECT_CALL_FLAG))
- #define CAXPY(n, alpha, x, incx, y, incy) CAXPY_DIRECT(n,alpha,x,incx,y,incy,INT(MKL_DIRECT_CALL_FLAG))
- #define ZAXPY(n, alpha, x, incx, y, incy) ZAXPY_DIRECT(n,alpha,x,incx,y,incy,INT(MKL_DIRECT_CALL_FLAG))
- #define ddot DDOT_DIRECT
- #define sdot SDOT_DIRECT
- #define DDOT DDOT_DIRECT
- #define SDOT SDOT_DIRECT
- #endif
|