Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Windows*

ID 766692
Date 3/22/2024
Public
Document Table of Contents

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.

Specifying the 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.

Specifying the Threading 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.

NOTE:

If you are using SDL, you cannot perform the replacement by linking the object file with your implementation of xerbla or mkl_progress.