| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- !===============================================================================
- ! Copyright 2010-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 95 interface for service routines
- !*******************************************************************************
- MODULE MKL_SERVICE
- IMPLICIT NONE
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DOMAIN_ALL = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DOMAIN_BLAS = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DOMAIN_FFT = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DOMAIN_VML = 3
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DOMAIN_PARDISO = 4
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DYNAMIC_TRUE = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_DYNAMIC_FALSE = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_SSE4_2 = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX2 = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_MIC = 3
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512 = 4
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_MIC_E1 = 5
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_E1 = 6
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_E2 = 7
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_E3 = 8
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_ENABLE_AVX512_E4 = 9
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_INTERFACE_LP64 = INT(Z"00000000")
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_INTERFACE_ILP64 = INT(Z"00000001")
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_INTERFACE_GNU = INT(Z"00000002")
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_THREADING_INTEL = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_THREADING_SEQUENTIAL = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_THREADING_PGI = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_THREADING_GNU = 3
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_THREADING_TBB = 4
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_BRANCH = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ALL = -1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_OFF = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_UNSET_ALL = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_BRANCH_OFF = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AUTO = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_COMPATIBLE = 3
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SSE2 = 4
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SSSE3 = 6
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SSE4_1 = 7
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SSE4_2 = 8
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX = 9
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX2 = 10
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX512_MIC = 11
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX512 = 12
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX512_MIC_E1 = 13
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_AVX512_E1 = 14
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_STRICT = 65536
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SUCCESS = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ERR_INVALID_SETTINGS = -1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ERR_INVALID_INPUT = -2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ERR_UNSUPPORTED_BRANCH = -3
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ERR_UNKNOWN_BRANCH = -4
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_ERR_MODE_CHANGE_FAILURE = -8
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_PEAK_MEM_DISABLE = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_PEAK_MEM_ENABLE = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_PEAK_MEM_RESET = -1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_PEAK_MEM = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_MEM_MCDRAM = 1
- INTERFACE
- SUBROUTINE MKL_GET_VERSION_STRING(BUF)
- CHARACTER*(*), INTENT(OUT) :: BUF
- END
- END INTERFACE
- INTERFACE
- DOUBLE PRECISION FUNCTION MKL_GET_CPU_FREQUENCY()
- END
- END INTERFACE
- INTERFACE
- DOUBLE PRECISION FUNCTION MKL_GET_MAX_CPU_FREQUENCY()
- END
- END INTERFACE
- INTERFACE
- DOUBLE PRECISION FUNCTION MKL_GET_CLOCKS_FREQUENCY()
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_GET_CPU_CLOCKS(CPU_CLOCKS)
- INTEGER(8), INTENT(OUT) :: CPU_CLOCKS
- END
- END INTERFACE
- ! Threading control functions
- INTERFACE
- INTEGER(4) FUNCTION MKL_GET_MAX_THREADS()
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_GET_NUM_STRIPES()
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_DOMAIN_GET_MAX_THREADS(DOMAIN)
- INTEGER(4), INTENT(IN) :: DOMAIN
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_NUM_THREADS_LOCAL(NTHRS)
- INTEGER(4), INTENT(IN) :: NTHRS
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_SET_NUM_THREADS(NTHRS)
- INTEGER(4), INTENT(IN) :: NTHRS
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_SET_NUM_STRIPES(NSTRP)
- INTEGER(4), INTENT(IN) :: NSTRP
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_DOMAIN_SET_NUM_THREADS(NTHRS,DOMAIN)
- INTEGER(4), INTENT(IN) :: NTHRS
- INTEGER(4), INTENT(IN) :: DOMAIN
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_GET_DYNAMIC()
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_SET_DYNAMIC(MKL_DYNAMIC)
- INTEGER(4), INTENT(IN) :: MKL_DYNAMIC
- END
- END INTERFACE
- ! oneMKL Memory functions
- INTERFACE
- FUNCTION MKL_MALLOC(SIZE,ALIGN)
- USE ISO_C_BINDING
- INTEGER(KIND=C_INTPTR_T) MKL_MALLOC
- INTEGER(KIND=C_SIZE_T) SIZE
- INTEGER(4) ALIGN
- END FUNCTION MKL_MALLOC
- END INTERFACE
- INTERFACE
- FUNCTION MKL_CALLOC(NUM,SIZE,ALIGN)
- USE ISO_C_BINDING
- INTEGER(KIND=C_INTPTR_T) MKL_CALLOC
- INTEGER(KIND=C_SIZE_T) NUM,SIZE
- INTEGER(4) ALIGN
- END FUNCTION MKL_CALLOC
- END INTERFACE
- INTERFACE
- FUNCTION MKL_REALLOC(PTR,SIZE)
- USE ISO_C_BINDING
- INTEGER(KIND=C_INTPTR_T) MKL_REALLOC,PTR
- INTEGER(KIND=C_SIZE_T) SIZE
- END FUNCTION MKL_REALLOC
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_FREE(PTR)
- USE ISO_C_BINDING
- INTEGER(KIND=C_INTPTR_T) PTR
- END SUBROUTINE MKL_FREE
- END INTERFACE
- INTERFACE
- INTEGER(8) FUNCTION MKL_MEM_STAT(N_BUFF)
- INTEGER(4), INTENT(OUT) :: N_BUFF
- END
- END INTERFACE
- INTERFACE
- INTEGER(8) FUNCTION MKL_PEAK_MEM_USAGE(RESET)
- INTEGER(4), INTENT(IN) :: RESET
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_FREE_BUFFERS()
- END
- END INTERFACE
- INTERFACE
- SUBROUTINE MKL_THREAD_FREE_BUFFERS()
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_DISABLE_FAST_MM()
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_MEMORY_LIMIT(MEM_TYPE,LIMIT)
- USE ISO_C_BINDING
- INTEGER(4), INTENT(IN) :: MEM_TYPE
- INTEGER(KIND=C_SIZE_T), INTENT(IN) :: LIMIT
- END
- END INTERFACE
- ! oneMKL Progress routine
- INTERFACE
- FUNCTION MKL_PROGRESS( THREAD, STEP, STAGE )
- INTEGER(4), INTENT(IN) :: THREAD,STEP
- CHARACTER*(*), INTENT(IN) :: STAGE
- INTEGER MKL_PROGRESS
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_ENABLE_INSTRUCTIONS(TYPE)
- INTEGER(4), INTENT(IN) :: TYPE
- END
- END INTERFACE
- ! oneMKL layer routines
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_INTERFACE_LAYER(MKL_INTERFACE)
- INTEGER(4), INTENT(IN) :: MKL_INTERFACE
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_THREADING_LAYER(MKL_THREADING)
- INTEGER(4), INTENT(IN) :: MKL_THREADING
- END
- END INTERFACE
- ! oneMKL CBWR routines
- INTERFACE
- INTEGER(4) FUNCTION MKL_CBWR_GET(MKL_CBWR)
- INTEGER(4), INTENT(IN) :: MKL_CBWR
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_CBWR_SET(MKL_CBWR)
- INTEGER(4), INTENT(IN) :: MKL_CBWR
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_CBWR_GET_AUTO_BRANCH()
- END
- END INTERFACE
- ! oneMKL MPI routines
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_BLACS_CUSTOM = 0
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_BLACS_MSMPI = 1
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_BLACS_INTELMPI = 2
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_BLACS_MPICH2 = 3
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_MPI(VENDOR, CUSTOM_LIBRARY_NAME)
- INTEGER(4), INTENT(IN) :: VENDOR
- CHARACTER*(*) :: CUSTOM_LIBRARY_NAME
- END
- END INTERFACE
- ! oneMKL verbose function
- INTERFACE
- INTEGER(4) FUNCTION MKL_VERBOSE(ENABLE)
- INTEGER(4), INTENT(IN) :: ENABLE
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_VERBOSE_OUTPUT_FILE(FILE_PATH)
- CHARACTER*(*), INTENT(IN) :: FILE_PATH
- END
- END INTERFACE
- INTERFACE
- INTEGER(4) FUNCTION MKL_SET_ENV_MODE(MODE)
- INTEGER(4), INTENT(IN) :: MODE
- END
- END INTERFACE
- ! Obsolete names and routines
- INTEGER (KIND=4), PARAMETER, PUBLIC :: MKL_CBWR_SSE3 = 5
- !*******************************************************************************
- END MODULE MKL_SERVICE
|