Programming Guide

Contents

oneMKL Usage

When using the DPC++ programming language interfaces, there are a few changes to consider:
  • oneMKL has a dependency on the
    Intel oneAPI
    DPC++/C++
    Compiler
    and Intel oneAPI DPC++ Library. Applications must be built with the
    Intel oneAPI
    DPC++/C++
    Compiler
    , the DPC++ headers made available, and the application linked with oneMKL using the DPC++ linker.
  • DPC++ interfaces in oneMKL use device-accessible Unified Shared Memory (USM) pointers for input data (vectors, matrices, etc.).
  • Many DPC++ interfaces in oneMKL also support the use of
    sycl::buffer
    objects in place of the device-accessible USM pointers for input data.
  • DPC++ interfaces in oneMKL are overloaded based on the floating point types. For example, there are several general matrix multiply APIs, accepting single precision real arguments (float), double precision real arguments (double), half precision real arguments (half), and complex arguments of different precision using the standard library types
    std::complex<float>
    ,
    std::complex<double>
    .
  • A two-level namespace structure for oneMKL is added for DPC++ interfaces:
Namespace
Description
oneapi::mkl
Contains common elements between various domains in oneMKL
oneapi::mkl::blas
Contains dense vector-vector, matrix-vector, and matrix-matrix low level operations
oneapi::mkl::lapack
Contains higher-level dense matrix operations like matrix factorizations and eigensolvers
oneapi::mkl::rng
Contains random number generators for various probability density functions
oneapi::mkl::stats
Contains basic statistical estimates for single and double precision multi-dimensional datasets
oneapi::mkl::vm
Contains vector math routines
oneapi::mkl::dft
Contains fast fourier transform operations
oneapi::mkl::sparse
Contains sparse matrix operations like sparse matrix-vector multiplication and sparse triangular solver

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.