Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 10/31/2024
Public
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:

    ifx –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 and with MKL_DIRECT_CALL_SEQ preprocessor macro:

    ifx –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