Visible to Intel only — GUID: GUID-91213BCA-006C-486C-AFB7-7B1D7DE37CE8
Visible to Intel only — GUID: GUID-91213BCA-006C-486C-AFB7-7B1D7DE37CE8
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.
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. |