namespace oneapi::mkl::sparse {
struct omatadd_descr;
using omatadd_descr_t = omatadd_descr*;
void init_omatadd_descr(sycl::queue &queue,
oneapi::mkl::sparse::omatadd_descr_t *p_omatadd_descr);
sycl::event release_omatadd_descr(sycl::queue &queue,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
const std::vector<sycl::event> &dependencies = {});
enum class omatadd_alg {
default_alg
};
void omatadd_buffer_size(
sycl::queue &queue,
oneapi::mkl::transpose opA,
oneapi::mkl::transpose opB,
oneapi::mkl::sparse::matrix_handle_t A_handle,
oneapi::mkl::sparse::matrix_handle_t B_handle,
oneapi::mkl::sparse::matrix_handle_t C_handle,
oneapi::mkl::sparse::omatadd_alg alg,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
std::size_t &temp_buffer_size);
void omatadd_analyze(
sycl::queue &queue,
oneapi::mkl::transpose opA,
oneapi::mkl::transpose opB,
oneapi::mkl::sparse::matrix_handle_t A_handle,
oneapi::mkl::sparse::matrix_handle_t B_handle,
oneapi::mkl::sparse::matrix_handle_t C_handle,
oneapi::mkl::sparse::omatadd_alg alg,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
sycl::buffer<std::uint8_t, 1> workspace);
sycl::event omatadd_analyze(
sycl::queue &queue,
oneapi::mkl::transpose opA,
oneapi::mkl::transpose opB,
oneapi::mkl::sparse::matrix_handle_t A_handle,
oneapi::mkl::sparse::matrix_handle_t B_handle,
oneapi::mkl::sparse::matrix_handle_t C_handle,
oneapi::mkl::sparse::omatadd_alg alg,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
void* workspace,
const std::vector<sycl::event> &dependencies = {});
void omatadd_get_nnz(
sycl::queue &queue,
oneapi::mkl::transpose opA,
oneapi::mkl::transpose opB,
oneapi::mkl::sparse::matrix_handle_t A_handle,
oneapi::mkl::sparse::matrix_handle_t B_handle,
oneapi::mkl::sparse::matrix_handle_t C_handle,
oneapi::mkl::sparse::omatadd_alg alg,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
std::int64_t &nnzC,
const std::vector<sycl::event> &dependencies = {});
sycl::event omatadd(
sycl::queue &queue,
oneapi::mkl::transpose opA,
oneapi::mkl::transpose opB,
const void* alpha,
oneapi::mkl::sparse::matrix_handle_t A_handle,
const void* beta,
oneapi::mkl::sparse::matrix_handle_t B_handle,
oneapi::mkl::sparse::matrix_handle_t C_handle,
oneapi::mkl::sparse::omatadd_alg alg,
oneapi::mkl::sparse::omatadd_descr_t omatadd_descr,
const std::vector<sycl::event> &dependencies = {});
}
This is a request tracker to add an API for sparse + sparse = sparse matrix addition API in the sparse BLAS domain in the oneMKL Specification.
sparse::omataddAPIs: