Visible to Intel only — GUID: GUID-B8E88837-4756-4DD1-8F58-85E6ED520D8B
What's New
oneMKL Initialization on GPU
Introduction to the Intel® oneAPI Math Kernel Library (oneMKL) BLAS and LAPACK with DPC++
Overview of Intel® oneMKL BLAS Routines for Data Parallel C++
Overview of Intel® oneAPI Math Kernel Library (oneMKL) Sparse BLAS for DPC++
Overview of Intel® oneMKL LAPACK Routines for Data Parallel C++
Data Types
Matrix Storage
Scalar Arguments
Error Handling
BLAS Routines
Sparse BLAS Routines
LAPACK Routines
Vector Mathematical Functions
Random Number Generators
Summary Statistics
Fourier Transform Functions
Data Fitting
Bibliography
Appendix A: oneMKL Functionality
Notices and Disclaimers
Sparse BLAS Matrix Handle Contract between User and Library
Sparse BLAS Supported Data and Integer Types
Sparse Storage Formats
oneapi::mkl::sparse::init_matrix_handle
oneapi::mkl::sparse::release_matrix_handle
oneapi::mkl::sparse::set_csr_data
oneapi::mkl::sparse::set_coo_data
oneapi::mkl::sparse::set_matrix_property
oneapi::mkl::sparse::optimize_gemv
oneapi::mkl::sparse::optimize_trmv
oneapi::mkl::sparse::optimize_trsv
oneapi::mkl::sparse::optimize_trsm
oneapi::mkl::sparse::gemv
oneapi::mkl::sparse::gemvdot
oneapi::mkl::sparse::symv
oneapi::mkl::sparse::trmv
oneapi::mkl::sparse::trsv
oneapi::mkl::sparse::gemm
oneapi::mkl::sparse::trsm
oneapi::mkl::sparse::init_matmat_descr
oneapi::mkl::sparse::set_matmat_data
oneapi::mkl::sparse::get_matmat_data
oneapi::mkl::sparse::release_matmat_descr
oneapi::mkl::sparse::matmat
oneapi::mkl::sparse::omatcopy
oneapi::mkl::sparse::sort_matrix
oneapi::mkl::sparse::update_diagonal_values
gebrd
gebrd (USM Version)
gebrd_scratchpad_size
geinv_batch (Group Version)
geinv_batch_scratchpad_size (Group Version)
gels_batch (Buffer Strided Version)
gels_batch (USM Strided Version)
gels_batch_scratchpad_size (Strided Version)
geqrf
geqrf (USM Version)
geqrf_batch (Buffer Strided Version)
geqrf_batch (Group Version)
geqrf_batch (USM Strided Version)
geqrf_batch_scratchpad_size (Group Version)
geqrf_batch_scratchpad_size (Strided Version)
geqrf_scratchpad_size
gerqf
gerqf (USM Version)
gerqf_scratchpad_size
gesv (USM Version)
gesv_scratchpad_size
gesvd
gesvd (USM Version)
gesvd_scratchpad_size
gesvda_batch (Buffer Strided Version)
gesvda_batch (USM Strided Version)
gesvda_batch_scratchpad_size (Strided Version)
getrf
getrf (USM Version)
getrf_batch (Buffer Strided Version)
getrf_batch (Group Version)
getrf_batch (USM Strided Version)
getrf_batch_scratchpad_size (Group Version)
getrf_batch_scratchpad_size (Strided Version)
getrf_scratchpad_size
getrfnp
getrfnp (USM Version)
getrfnp_scratchpad_size
getrfnp_batch (Buffer Strided Version)
getrfnp_batch (Group Version)
getrfnp_batch (USM Strided Version)
getrfnp_batch_scratchpad_size (Group Version)
getrfnp_batch_scratchpad_size (Strided Version)
getri
getri (USM Version)
getri_batch (Buffer Strided Version)
getri_batch (Group Version)
getri_batch (USM Strided Version)
getri_batch_scratchpad_size (Group Version)
getri_batch_scratchpad_size (Strided Version)
getri_batch (Out-of-place, Buffer Strided Version)
getri_batch (Out-of-place, USM Strided Version)
getri_batch_scratchpad_size (Strided Version)
getri_scratchpad_size
getrs
getrs (USM Version)
getrs_batch (Buffer Strided Version)
getrs_batch (Group Version)
getrs_batch (USM Strided Version)
getrs_batch_scratchpad_size (Group Version)
getrs_batch_scratchpad_size (Strided Version)
getrs_scratchpad_size
getrsnp_batch (Buffer Strided Version)
getrsnp_batch (USM Strided Version)
getrsnp_batch_scratchpad_size (Strided Version)
heevd
heevd (USM Version)
heevd_scratchpad_size
hegvd
hegvd (USM Version)
hegvd_scratchpad_size
hetrd
hetrd (USM Version)
hetrd_scratchpad_size
hetrf
hetrf (USM Version)
hetrf_scratchpad_size
orgbr
orgbr (USM Version)
orgbr_scratchpad_size
orgqr
orgqr (USM Version)
orgqr_batch (Buffer Strided Version)
orgqr_batch (Group Version)
orgqr_batch (USM Strided Version)
orgqr_batch_scratchpad_size (Group Version)
orgqr_batch_scratchpad_size (Strided Version)
orgqr_scratchpad_size
orgtr
orgtr (USM Version)
orgtr_scratchpad_size
ormqr
ormqr (USM Version)
ormqr_scratchpad_size
ormrq
ormrq (USM Version)
ormrq_scratchpad_size
ormtr
ormtr (USM Version)
ormtr_scratchpad_size
potrf
potrf (USM Version)
potrf_batch (Buffer Strided Version)
potrf_batch (Group Version)
potrf_batch (USM Strided Version)
potrf_batch_scratchpad_size (Group Version)
potrf_batch_scratchpad_size (Strided Version)
potrf_scratchpad_size
potri
potri (USM Version)
potri_scratchpad_size
potrs
potrs (USM Version)
potrs_batch (Buffer Strided Version)
potrs_batch (Group Version)
potrs_batch (USM Strided Version)
potrs_batch_scratchpad_size (Group Version)
potrs_batch_scratchpad_size (Strided Version)
potrs_scratchpad_size
syevd
syevd (USM Version)
syevd_scratchpad_size
sygvd
sygvd (USM Version)
sygvd_scratchpad_size
sytrd
sytrd (USM Version)
sytrd_scratchpad_size
sytrf
sytrf (USM Version)
sytrf_scratchpad_size
trtri (USM Version)
trtri_scratchpad_size
trtrs
trtrs (USM Version)
trtrs_scratchpad_size
ungbr
ungbr (USM Version)
ungbr_scratchpad_size
ungqr
ungqr (USM Version)
ungqr_batch (Buffer Strided Version)
ungqr_batch (Group Version)
ungqr_batch (USM Strided Version)
ungqr_batch_scratchpad_size (Group Version)
ungqr_batch_scratchpad_size (Strided Version)
ungqr_scratchpad_size
ungtr
ungtr (USM Version)
ungtr_scratchpad_size
unmqr
unmqr (USM Version)
unmqr_scratchpad_size
unmrq
unmrq (USM Version)
unmrq_scratchpad_size
unmtr
unmtr (USM Version)
unmtr_scratchpad_size
oneapi::mkl::stats::raw_sum
oneapi::mkl::stats::central_sum
oneapi::mkl::stats::central_sum with User-provided Mean
oneapi::mkl::stats::raw_moment
oneapi::mkl::stats::central_moment
oneapi::mkl::stats::central_moment with User-provided Mean
oneapi::mkl::stats::mean
oneapi::mkl::stats::variation
oneapi::mkl::stats::variation with User-provided Mean
oneapi::mkl::stats::skewness
oneapi::mkl::stats::skewness with User-provided Mean
oneapi::mkl::stats::kurtosis
oneapi::mkl::stats::kurtosis with User-provided Mean
oneapi::mkl::stats::min
oneapi::mkl::stats::max
oneapi::mkl::stats::min_max
descriptor<precision, domain>
descriptor<precision, domain>::set_value
Configuring Data Layouts
User-Allocated Workspaces
descriptor<precision, domain>::get_value
descriptor<precision, domain>::commit
compute_forward<typename descriptor_type, typename data_type>
compute_backward<typename descriptor_type, typename data_type>
Configuring and computing a DFT in DPC++
Visible to Intel only — GUID: GUID-B8E88837-4756-4DD1-8F58-85E6ED520D8B
Examples
The following example demonstrates how to construct the linear spline and perform the interpolation.
#include <cstdint>
#include <iostream>
#include <vector>
#include <sycl/sycl.hpp>
#include <oneapi/mkl/experimental/data_fitting.hpp>
constexpr std::int64_t nx = 10'000;
constexpr std::int64_t nsites = 150'000;
int main (int argc, char ** argv) {
sycl::queue q;
sycl::usm_allocator<double, sycl::usm::alloc::shared> alloc(q);
// Allocate memory for spline parameters
std::vector<double, decltype(alloc)> partitions(nx, alloc);
std::vector<double, decltype(alloc)> functions(nx, alloc);
std::vector<double, decltype(alloc)> coeffs(2 * (nx - 1), alloc);
std::vector<double, decltype(alloc)> sites(nsites, alloc);
std::vector<double, decltype(alloc)> results(nsites, alloc);
// Fill parameters with valid data
for (std::int64_t i = 0; i < nx; ++i) {
partitions[i] = 0.1 * i;
functions[i] = i * i;
}
for (std::int64_t i = 0; i < nsites; ++i) {
sites[i] = (0.1 * nx * i) / nsites);
}
namespace df = oneapi::mkl::experimental::data_fitting;
// Set parameters to spline
df::spline<double, df::linear_spline::default_type> spl(q);
spl.set_partitions(partitions.data(), nx)
.set_coefficients(coeffs.data())
.set_function_values(functions.data());
// Construct spline
auto event = spl.construct();
event = df::interpolate(spl, sites.data(), nsites, results.data(), { event });
event.wait();
std::cout << "done" << std::endl;
return 0;
}