Visible to Intel only — GUID: GUID-849FC7EF-5E34-4799-BB4B-8836AA444E0B
Visible to Intel only — GUID: GUID-849FC7EF-5E34-4799-BB4B-8836AA444E0B
Overview of Intel® oneAPI Math Kernel Library (oneMKL) Sparse BLAS for DPC++
The following pages describe the oneMKL Sparse BLAS computational routines for DPC++ in detail. These routines, along with other helper routines (see Sparse BLAS Routines for the full list), are declared in the header file oneapi/mkl/spblas.hpp.
Several conventions are used throughout this document:
All oneMKL DPC++ functions and data types are inside the mkl namespace.
For brevity, the 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 sycl::buffer<float,1> &A.
The routines are overloaded on precision. Each routine has a table detailing the supported precisions.
Device Support
DPC++ supports several types of devices:
CPU device: Performs computations on a CPU using OpenCL™.
GPU device: Performs computations on a GPU using OpenCL™ or Level Zero.
Each routine details the device types that are currently supported.
In the current release of oneMKL DPC++ Sparse BLAS, all listed routines support use on CPU and GPU devices (unless otherwise noted) with the Compressed Sparse Row (CSR) matrix format. Limited support with the Coordinate (COO) matrix format is also available, specified in the documentation of each API.
Routine |
Data Types |
Description |
---|---|---|
Level 2: |
||
float, double, std::complex<float>, std::complex<double> |
General sparse matrix-dense vector product |
|
float, double, std::complex<float>, std::complex<double> |
General sparse matrix-dense vector product with fused dot product |
|
float, double, std::complex<float>, std::complex<double> |
Symmetric sparse matrix-dense vector product |
|
float, double, std::complex<float>, std::complex<double> |
Triangular sparse matrix-dense vector product |
|
float, double, std::complex<float>, std::complex<double> |
Triangular solve of sparse matrix against a dense vector. |
|
Level 3: |
||
float, double, std::complex<float>, std::complex<double> |
General sparse matrix-dense matrix product with dense matrix output |
|
float, double, std::complex<float>, std::complex<double> |
General sparse matrix-sparse matrix product with sparse matrix output. |