.. _overview-of-intel-oneapi-math-kernel-library-onemkl-lapack-for-dpcpp: Overview of Intel® oneAPI Math Kernel Library (oneMKL) LAPACK for DPC++ ======================================================================= The following pages describe the |O-MKL| LAPACK routines for DPC++ in detail, all of which are declared in the header file ``oneapi/mkl/lapack.hpp``. Several conventions are used throughout this document: - All |O-MKL| 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 &A`` instead of ``cl::sycl::buffer &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 |O-MKL| 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: .. list-table:: :header-rows: 1 * - Routines * - ``getrf`` (all precisions) * - ``getrs`` (all precisions) * - ``trtrs`` (all precisions) * - ``potrf`` (real precisions) * - ``potrs`` (real precisions) * - ``getri`` (real precisions)