Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 12/16/2022

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

Document Table of Contents

Using MKL_DIRECT_CALL in C Applications

The following examples of code and link lines show how to activate direct calls to Intel® oneAPI Math Kernel Library kernels in C applications:

  • Include the mkl.h header file:

    #include "mkl.h" 
    int main(void) {
    // Call Intel MKL DGEMM 
    return 0;
  • For multi-threaded Intel® oneAPI Math Kernel Library, compile withMKL_DIRECT_CALL preprocessor macro:

    icc –DMKL_DIRECT_CALL -std=c99 your_application.c -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a 
    $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread –lm -openmp -I$(MKLROOT)/include
  • To use Intel® oneAPI Math Kernel Library in the sequential mode, compile withMKL_DIRECT_CALL_SEQ preprocessor macro:

    icc –DMKL_DIRECT_CALL_SEQ -std=c99 your_application.c -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a 
    $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_sequential.a -Wl,--end-group -lpthread –lm -I$(MKLROOT)/include

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at

Notice revision #20201201

Did you find the information on this page useful?

Characters remaining:

Feedback Message