diff --git a/deps/generate_interfaces.jl b/deps/generate_interfaces.jl index 7d3b8342..50378398 100644 --- a/deps/generate_interfaces.jl +++ b/deps/generate_interfaces.jl @@ -25,7 +25,7 @@ version_types_header = Dict{Char, String}('S' => "float", comments = ["namespace", "#", "}", "/*", "*", "//", "[[", "ONEMKL_DECLARE_", "ONEMKL_INLINE_DECLARE"] void_output = ["init_matrix_handle", "init_matmat_descr", "release_matmat_descr", "set_matmat_data", - "get_matmat_data", "init_omatadd_descr", "init_omatconvert_desc"] + "get_matmat_data", "init_omatadd_descr", "init_omatconvert_descr"] function generate_headers(library::String, filename::Vector{String}, output::String; pattern::String="") routines = Dict{String,Int}() @@ -66,6 +66,9 @@ function generate_headers(library::String, filename::Vector{String}, output::Str occursin("release_matrix_handle(matrix_handle_t", header) && continue # SPARSE routine occursin("get_matmat_data", header) && continue # SPARSE routine occursin("matmat(", header) && continue # SPARSE routine + bool = occursin("release", header) || occursin("init", header) + (library == "sparse") && occursin("omatconvert", header) && !bool && continue # SPARSE routine + (library == "sparse") && occursin("omatadd", header) && !bool && continue # SPARSE routine occursin("gemm_bias", header) && continue # BLAS routine occursin("getri_batch", header) && occursin("ldainv", header) && continue # LAPACK routine @@ -249,7 +252,6 @@ function generate_headers(library::String, filename::Vector{String}, output::Str (version == 'C') && (header = replace(header, "std::complex " => "float _Complex ")) (version == 'Z') && (header = replace(header, "std::complex " => "double _Complex ")) end - header = replace(header, "omatconvert (" => "omatconvert(") header = replace(header, "transpose " => "onemklTranspose ") header = replace(header, "uplo " => "onemklUplo ") header = replace(header, "diag " => "onemklDiag ") diff --git a/deps/src/onemkl.cpp b/deps/src/onemkl.cpp index b62107f5..f10a3f57 100644 --- a/deps/src/onemkl.cpp +++ b/deps/src/onemkl.cpp @@ -3973,6 +3973,26 @@ extern "C" int onemklXsparse_release_matmat_descr(matmat_descr_t *p_desc) { return 0; } +extern "C" int onemklXsparse_init_omatconvert_descr(syclQueue_t device_queue, omatconvert_descr_t *p_descr) { + oneapi::mkl::sparse::init_omatconvert_descr(device_queue->val, (oneapi::mkl::sparse::omatconvert_descr_t*) p_descr); + return 0; +} + +extern "C" int onemklXsparse_release_omatconvert_descr(syclQueue_t device_queue, omatconvert_descr_t descr) { + auto status = oneapi::mkl::sparse::release_omatconvert_descr(device_queue->val, (oneapi::mkl::sparse::omatconvert_descr_t) descr, {}); + return 0; +} + +extern "C" int onemklXsparse_init_omatadd_descr(syclQueue_t device_queue, omatadd_descr_t *p_omatadd_desc) { + oneapi::mkl::sparse::init_omatadd_descr(device_queue->val, (oneapi::mkl::sparse::omatadd_descr_t*) p_omatadd_desc); + return 0; +} + +extern "C" int onemklXsparse_release_omatadd_descr(syclQueue_t device_queue, omatadd_descr_t omatadd_desc) { + auto status = oneapi::mkl::sparse::release_omatadd_descr(device_queue->val, (oneapi::mkl::sparse::omatadd_descr_t) omatadd_desc, {}); + return 0; +} + extern "C" int onemklXsparse_omatcopy(syclQueue_t device_queue, onemklTranspose transpose_val, matrix_handle_t spMat_in, matrix_handle_t spMat_out) { auto status = oneapi::mkl::sparse::omatcopy(device_queue->val, convert(transpose_val), (oneapi::mkl::sparse::matrix_handle_t) spMat_in, (oneapi::mkl::sparse::matrix_handle_t) spMat_out, {}); return 0; diff --git a/deps/src/onemkl.h b/deps/src/onemkl.h index 4b86864c..cf0d3891 100644 --- a/deps/src/onemkl.h +++ b/deps/src/onemkl.h @@ -2804,6 +2804,18 @@ int onemklXsparse_init_matmat_descr(matmat_descr_t *p_desc); int onemklXsparse_release_matmat_descr(matmat_descr_t *p_desc); +int onemklXsparse_init_omatconvert_descr(syclQueue_t device_queue, omatconvert_descr_t + *p_descr); + +int onemklXsparse_release_omatconvert_descr(syclQueue_t device_queue, omatconvert_descr_t + descr); + +int onemklXsparse_init_omatadd_descr(syclQueue_t device_queue, omatadd_descr_t + *p_omatadd_desc); + +int onemklXsparse_release_omatadd_descr(syclQueue_t device_queue, omatadd_descr_t + omatadd_desc); + int onemklXsparse_omatcopy(syclQueue_t device_queue, onemklTranspose transpose_val, matrix_handle_t spMat_in, matrix_handle_t spMat_out);