Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Windows*

ID 766692
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

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.

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

SEQUENTIAL

MKL_THREADING_SEQUENTIAL

PGI threading

PGI

MKL_THREADING_PGI

Intel TBB threading

TBB

MKL_THREADING_TBB

Not supported by the SDL for Intel® Many Integrated Core Architecture.

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