Preprocessor symbols (macros) substitute values in a program before it is compiled. The substitution is performed in the preprocessing phase.
The following preprocessor symbols are available:
Predefined Preprocessor Symbol |
Description |
---|---|
__INTEL_MKL__ |
Intel® oneAPI Math Kernel Library (oneMKL) major version |
__INTEL_MKL_MINOR__ |
The value of this macro is 0 for backward compatibility. |
__INTEL_MKL_UPDATE__ |
Intel® oneAPI Math Kernel Library (oneMKL) update version |
__INTEL_MKL_PATCH__ |
Intel® oneAPI Math Kernel Library (oneMKL) patch version |
INTEL_MKL_VERSION |
Intel® oneAPI Math Kernel Library (oneMKL) full version in the following format: INTEL_MKL_VERSION = (__INTEL_MKL__*100+__INTEL_MKL_UPDATE__)*100+__INTEL_MKL_PATCH__ |
These symbols enable conditional compilation of code that uses new features introduced in a particular version of the library.
To perform conditional compilation:
C/C++ compiler: |
mkl_version.h, or mkl.h, which includes mkl_version.h |
Intel® Fortran compiler: |
mkl.fi |
Any Fortran compiler with enabled preprocessing: |
mkl_version.h Read the documentation for your compiler for the option that enables preprocessing. |
Example
This example shows how to compile a code segment conditionally for a specific version of Intel® oneAPI Math Kernel Library (oneMKL). In this case, the version is 2025.0:
Intel® Fortran Compiler:
include "mkl.fi"
!DEC$IF DEFINED INTEL_MKL_VERSION
!DEC$IF INTEL_MKL_VERSION .EQ. 20250000
* Code to be conditionally compiled
!DEC$ENDIF
!DEC$ENDIF
C/C++ Compiler. Fortran Compiler with Enabled Preprocessing:
#include "mkl.h"
#ifdef INTEL_MKL_VERSION
#if INTEL_MKL_VERSION == 20250000
... Code to be conditionally compiled
#endif
#endif