Overview of Intel® oneAPI Math Kernel Library (oneMKL) LAPACK for DPC++

The following pages describe the Intel® oneMKL LAPACK routines for DPC++ in detail, all of which are declared in the header file mkl_lapack_sycl.hpp.

Several conventions are used throughout this document:

  • All Intel® oneMKL for DPC++ functions and data types are inside the mkl namespace.

  • For brevity, the cl::sycl namespace is omitted from DPC++ object types, such as buffers and queues. For example a single-precision, 1D buffer A would be written buffer<float,1> &A instead of cl::sycl::buffer<float,1> &A.

  • A question mark (?) in a routine name stands for one or more characters (typically one of s, d, c, z) specifying the precision of the operation. Each routine has a table detailing the supported precisions and associated routine names.

Device Support

DPC++ supports several types of devices:

  • Host device: Performs computations directly on the current CPU.

  • CPU device: Performs computations on a CPU using OpenCL™.

  • GPU device: Performs computations on a GPU.

Each routine details the device types are currently supported.

In the current release of Intel® oneMKL LAPACK for DPC++, all routines support at least the host and CPU devices. GPU devices are supported in the current release only for the following routines:


getrf (all precisions)

getrs (all precisions)

trtrs (all precisions)

potrf (real precisions)

potrs (real precisions)

getri (real precisions)