Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 3/22/2024
Public

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 Fortran Applications

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

  • Include mkl_direct_call.fi, to be preprocessed by the Fortran compiler preprocessor

    #     include "mkl_direct_call.fi"
          program   DGEMM_MAIN
    ....
    *      Call Intel MKL DGEMM
    ....
          call sub1()
          stop 1
          end
    
    *     A subroutine that calls DGEMM 
          subroutine sub1
    *      Call Intel MKL DGEMM
    
          end
    
  • For multi-threaded Intel® oneAPI Math Kernel Library (oneMKL), compile with-fpp option for Intel Fortran compiler and with MKL_DIRECT_CALL preprocessor macro:

    ifort –DMKL_DIRECT_CALL –fpp your_application.f -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 (oneMKL) in the sequential mode, compile with-fpp option for Intel Fortran compiler (or with -Mpreprocess for PGI compilers) and with MKL_DIRECT_CALL_SEQ preprocessor macro:

    ifort –DMKL_DIRECT_CALL_SEQ –fpp your_application.f -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 www.Intel.com/PerformanceIndex.

Notice revision #20201201