Developer Guide
Developer Guide for Intel® oneAPI Math Kernel Library Windows*
A newer version of this document is available. Customers should click here to go to the newest version.
Dynamically Selecting the Interface and Threading Layer
The Single Dynamic Library (SDL) enables you to dynamically select the interface and threading layer for Intel® oneAPI Math Kernel Library (oneMKL).
Setting the Interface Layer
To set the interface layer at run time, use the mkl_set_interface_layer function or the MKL_INTERFACE_LAYER environment variable.
Available interface layers depend on the architecture of your system.
On systems based on the Intel® 64 architecture, LP64 and ILP64 interfaces are available. The following table provides values to be used to set each interface layer.
Interface Layer |
Value of MKL_INTERFACE_LAYER |
Value of the Parameter of mkl_set_interface_layer |
---|---|---|
Intel LP64, default |
LP64 |
MKL_INTERFACE_LP64 |
Intel ILP64 |
ILP64 |
MKL_INTERFACE_ILP64 |
If the mkl_set_interface_layer function is called, the environment variable MKL_INTERFACE_LAYER is ignored.
On systems based on the IA-32 architecture, the cdecl interface is available.
Setting the Threading Layer
To set the threading layer at run time, use the mkl_set_threading_layer function or the MKL_THREADING_LAYER environment variable. The following table lists available threading layers along with the values to be used to set each layer.
Threading Layer |
Value of MKL_THREADING_LAYER |
Value of the Parameter of mkl_set_threading_layer |
---|---|---|
Intel threading, default |
INTEL |
MKL_THREADING_INTEL |
Sequential mode of Intel® oneAPI Math Kernel Library (oneMKL) |
SEQUENTIAL |
MKL_THREADING_SEQUENTIAL |
PGI threading (DEPRECATED) |
PGI |
MKL_THREADING_PGI |
Intel TBB threading |
TBB |
MKL_THREADING_TBB |
If the mkl_set_threading_layer function is called, the environment variable MKL_THREADING_LAYER is ignored.
Replacing Error Handling and Progress Information Routines
You can replace the Intel® oneAPI Math Kernel Library (oneMKL) error handling routinexerbla or progress information routine mkl_progress with your own function. If you are using SDL, to replace xerbla or mkl_progress, call the mkl_set_xerbla and mkl_set_progress function, respectively.
If you are using SDL, you cannot perform the replacement by linking the object file with your implementation of xerbla or mkl_progress.