Build against oneMKL 2025.3.1 - #599
Open
michel2323 wants to merge 1 commit into
Open
Conversation
oneMKL 2025.3 widened the sparse setter ABI: set_{csr,coo}_data take an
explicit nnz and 64-bit dimensions, set_csc_data/set_bsr_data are new,
and the pre-2025.3 setter overloads are deprecated (though still present
in 2026.x). Regenerate the C wrappers and Julia bindings against the
2025.3.1 headers and adopt the wide ABI throughout:
- generate_interfaces.jl pulls the headers from oneAPI_Support_Headers_jll
=2025.3.1, dedups the deprecated/new overload pairs (keeping the wider
signature), normalizes the spMat/spmat parameter naming, and no longer
bakes version constants into onemkl.h.
- onemkl_version() reports the oneMKL the library was built against
(from mkl_version.h) instead of generation-time constants.
- build_local.jl derives the Conda toolkit version from the headers JLL
instead of hardcoding it, keying the Conda scratch per version.
- The sparse wrappers pass nnz explicitly; oneSparseMatrixCSC raises a
clear error when the loaded support library predates oneMKL 2025.3
(its CSC setters only exist there), and the tests skip CSC accordingly.
- Support.jl probes the loaded binary for the wide sparse ABI at load
time: the oneAPI_Support_jll 0.9.2 artifact predates it, and calling
the regenerated setters against it would corrupt memory or crash.
Contributor
|
Your PR requires formatting changes to meet the project's style guidelines. Click here to view the suggested changes.diff --git a/deps/generate_interfaces.jl b/deps/generate_interfaces.jl
index ce38c09..04fc20d 100644
--- a/deps/generate_interfaces.jl
+++ b/deps/generate_interfaces.jl
@@ -7,13 +7,17 @@ import oneAPI_Support_Headers_jll
include("generate_helpers.jl")
function mkl_header_files(include_dir)
- blas = [joinpath(include_dir, "oneapi", "mkl", "blas", "buffer_decls.hpp")]
- lapack = [joinpath(include_dir, "oneapi", "mkl", "lapack", "lapack.hpp"),
- joinpath(include_dir, "oneapi", "mkl", "lapack", "scratchpad.hpp")]
- sparse = [joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_structures.hpp"),
- joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_auxiliary.hpp"),
- joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_operations.hpp")]
- return Dict("blas" => blas, "lapack" => lapack, "sparse" => sparse)
+ blas = [joinpath(include_dir, "oneapi", "mkl", "blas", "buffer_decls.hpp")]
+ lapack = [
+ joinpath(include_dir, "oneapi", "mkl", "lapack", "lapack.hpp"),
+ joinpath(include_dir, "oneapi", "mkl", "lapack", "scratchpad.hpp"),
+ ]
+ sparse = [
+ joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_structures.hpp"),
+ joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_auxiliary.hpp"),
+ joinpath(include_dir, "oneapi", "mkl", "spblas", "sparse_operations.hpp"),
+ ]
+ return Dict("blas" => blas, "lapack" => lapack, "sparse" => sparse)
end
include_dir = joinpath(oneAPI_Support_Headers_jll.artifact_dir, "include")
@@ -35,7 +39,7 @@ comments = ["namespace", "#", "}", "/*", "*", "//", "[[", "ONEMKL_DECLARE_", "ON
void_output = ["init_matrix_handle", "init_matmat_descr", "release_matmat_descr", "set_matmat_data",
"get_matmat_data", "init_omatadd_descr", "init_omatconvert_descr"]
-function generate_headers(library::String, filename::Vector{String}; pattern::String="")
+function generate_headers(library::String, filename::Vector{String}; pattern::String = "")
routines = Dict{String,Int}()
signatures = []
signatures2 = []
@@ -45,9 +49,9 @@ function generate_headers(library::String, filename::Vector{String}; pattern::St
end
cpp_headers = replace(cpp_headers, "std::int32_t" => "int32_t")
cpp_headers = replace(cpp_headers, "std::int64_t" => "int64_t")
- # the sparse headers are inconsistent about the handle parameter name across versions
- # (spMat/spmat); normalize so identical functions compare equal across header sets
- cpp_headers = replace(cpp_headers, "spMat" => "spmat")
+ # the sparse headers are inconsistent about the handle parameter name across versions
+ # (spMat/spmat); normalize so identical functions compare equal across header sets
+ cpp_headers = replace(cpp_headers, "spMat" => "spmat")
cpp_headers = replace(cpp_headers, "; \\" => ";")
cpp_headers = replace(cpp_headers, ")\n\n" => ");\n\n")
cpp_headers = replace(cpp_headers, "\\\n" => "\n")
@@ -348,31 +352,31 @@ function generate_headers(library::String, filename::Vector{String}; pattern::St
end
end
- # Dedup: when two signatures map to the same C function name (because MKL
- # added an overload), keep the one with more parameters — typically the
- # newer signature (e.g. set_csr_data gained an `nnz` arg in MKL 2025.3.1).
- # Without this the generated onemkl.cpp has duplicate function definitions
- # and won't compile.
- _fn_name(h) = (pos = findfirst('(', h); strip(split(strip(h[1:pos-1]))[end]))
- _param_cnt(h) = (pos = findfirst('(', h); ep = findnext(')', h, pos); count(==(','), h[pos+1:ep-1]) + 1)
- keep_idx = Dict{String,Int}()
- keep_pc = Dict{String,Int}()
- for (i, sig) in enumerate(signatures)
- (sig[2] in blacklist) && continue
- fn = _fn_name(sig[1])
- pc = _param_cnt(sig[1])
- if !haskey(keep_idx, fn) || pc > keep_pc[fn]
- keep_idx[fn] = i
- keep_pc[fn] = pc
+ # Dedup: when two signatures map to the same C function name (because MKL
+ # added an overload), keep the one with more parameters — typically the
+ # newer signature (e.g. set_csr_data gained an `nnz` arg in MKL 2025.3.1).
+ # Without this the generated onemkl.cpp has duplicate function definitions
+ # and won't compile.
+ _fn_name(h) = (pos = findfirst('(', h); strip(split(strip(h[1:(pos - 1)]))[end]))
+ _param_cnt(h) = (pos = findfirst('(', h); ep = findnext(')', h, pos); count(==(','), h[(pos + 1):(ep - 1)]) + 1)
+ keep_idx = Dict{String, Int}()
+ keep_pc = Dict{String, Int}()
+ for (i, sig) in enumerate(signatures)
+ (sig[2] in blacklist) && continue
+ fn = _fn_name(sig[1])
+ pc = _param_cnt(sig[1])
+ if !haskey(keep_idx, fn) || pc > keep_pc[fn]
+ keep_idx[fn] = i
+ keep_pc[fn] = pc
+ end
end
- end
- keep_set = Set(values(keep_idx))
+ keep_set = Set(values(keep_idx))
- for (i, (header, name_routine, version, type_routine, template)) in enumerate(signatures)
+ for (i, (header, name_routine, version, type_routine, template)) in enumerate(signatures)
# Blacklist
(name_routine in blacklist) && continue
- # Dedup
- (i in keep_set) || continue
+ # Dedup
+ (i in keep_set) || continue
# Pass scalars (e.g. alpha/beta inputs) as references instead of values
for type in ("short", "float", "double", "float _Complex", "double _Complex")
@@ -381,32 +385,32 @@ function generate_headers(library::String, filename::Vector{String}; pattern::St
end
push!(signatures2, (header, name_routine, version, type_routine, template))
- end
- return signatures2
+ end
+ return signatures2
end
# Format a single-line C signature as a declaration wrapped at ~90 columns
function format_decl(header)
- io = IOBuffer()
- pos = findfirst('(', header)
- fun = split(header, " ")
- len = 0
- for (i, part) in enumerate(fun)
- len += length(part)
- if len ≤ 90
- (i ≠ 1) && write(io, " ")
- write(io, part)
- else
- write(io, "\n")
- for i = 1:pos
- write(io, " ")
+ io = IOBuffer()
+ pos = findfirst('(', header)
+ fun = split(header, " ")
+ len = 0
+ for (i, part) in enumerate(fun)
+ len += length(part)
+ if len ≤ 90
+ (i ≠ 1) && write(io, " ")
+ write(io, part)
+ else
+ write(io, "\n")
+ for i in 1:pos
+ write(io, " ")
end
- write(io, part)
- len = pos + length(part)
- end
+ write(io, part)
+ len = pos + length(part)
+ end
end
- write(io, ";\n\n")
- return String(take!(io))
+ write(io, ";\n\n")
+ return String(take!(io))
end
# Turn one parsed signature into the C function signature and the implementation body
@@ -486,13 +490,13 @@ function cpp_wrapper(header, name, version, type_routine, template, library)
type = version_types[version]
if !occursin("scratchpad_size", name)
catch_clause = library == "lapack" ? lapack_catch : sycl_catch
- write(body, " try {\n")
- write(body, " auto status = oneapi::mkl::$library::$variant$name<$type>($parameters, {});\n")
- write(body, " device_queue->val.wait_and_throw();\n")
- write(body, " } $catch_clause\n")
+ write(body, " try {\n")
+ write(body, " auto status = oneapi::mkl::$library::$variant$name<$type>($parameters, {});\n")
+ write(body, " device_queue->val.wait_and_throw();\n")
+ write(body, " } $catch_clause\n")
end
if occursin("scratchpad_size", name)
- write(body, " int64_t scratchpad_size = oneapi::mkl::$library::$variant$name<$type>($parameters);\n device_queue->val.wait_and_throw();\n")
+ write(body, " int64_t scratchpad_size = oneapi::mkl::$library::$variant$name<$type>($parameters);\n device_queue->val.wait_and_throw();\n")
end
else
if !(name ∈ void_output)
@@ -500,73 +504,73 @@ function cpp_wrapper(header, name, version, type_routine, template, library)
is_scratchpad = occursin("scratchpad_size", name)
if has_queue && !is_scratchpad
catch_clause = library == "lapack" ? lapack_catch : sycl_catch
- write(body, " try {\n")
- write(body, " auto status = oneapi::mkl::$library::$variant$name($parameters, {});\n")
- write(body, " device_queue->val.wait_and_throw();\n")
- write(body, " } $catch_clause\n")
+ write(body, " try {\n")
+ write(body, " auto status = oneapi::mkl::$library::$variant$name($parameters, {});\n")
+ write(body, " device_queue->val.wait_and_throw();\n")
+ write(body, " } $catch_clause\n")
else
- write(body, " auto status = oneapi::mkl::$library::$variant$name($parameters, {});\n")
+ write(body, " auto status = oneapi::mkl::$library::$variant$name($parameters, {});\n")
if has_queue
- write(body, " device_queue->val.wait_and_throw();\n")
+ write(body, " device_queue->val.wait_and_throw();\n")
end
end
else
if occursin("device_queue", parameters)
- write(body, " try {\n")
- write(body, " oneapi::mkl::$library::$variant$name($parameters);\n")
- write(body, " device_queue->val.wait_and_throw();\n")
- write(body, " } $sycl_catch\n")
+ write(body, " try {\n")
+ write(body, " oneapi::mkl::$library::$variant$name($parameters);\n")
+ write(body, " device_queue->val.wait_and_throw();\n")
+ write(body, " } $sycl_catch\n")
else
- write(body, " oneapi::mkl::$library::$variant$name($parameters);\n")
+ write(body, " oneapi::mkl::$library::$variant$name($parameters);\n")
end
end
end
if occursin("scratchpad_size", name)
- write(body, " return scratchpad_size;\n")
+ write(body, " return scratchpad_size;\n")
else
- write(body, " return 0;\n")
+ write(body, " return 0;\n")
end
return header, String(take!(body))
end
# Parse one library and emit the C declarations and implementations
function sources(library, files)
- hsigs = generate_headers(library, files; pattern="*")
- csigs = generate_headers(library, files; pattern="§")
- @assert length(hsigs) == length(csigs)
-
- decls = IOBuffer()
- impls = IOBuffer()
- for (hsig, csig) in zip(hsigs, csigs)
- write(decls, format_decl(hsig[1]))
- chdr, body = cpp_wrapper(csig..., library)
- write(impls, "extern \"C\" $chdr {\n$body}\n\n")
+ hsigs = generate_headers(library, files; pattern = "*")
+ csigs = generate_headers(library, files; pattern = "§")
+ @assert length(hsigs) == length(csigs)
+
+ decls = IOBuffer()
+ impls = IOBuffer()
+ for (hsig, csig) in zip(hsigs, csigs)
+ write(decls, format_decl(hsig[1]))
+ chdr, body = cpp_wrapper(csig..., library)
+ write(impls, "extern \"C\" $chdr {\n$body}\n\n")
end
- return String(take!(decls)), String(take!(impls))
+ return String(take!(decls)), String(take!(impls))
end
files = mkl_header_files(include_dir)
-decls = Dict{String,String}()
-impls = Dict{String,String}()
+decls = Dict{String, String}()
+impls = Dict{String, String}()
for library in ("blas", "lapack", "sparse")
- decls[library], impls[library] = sources(library, files[library])
+ decls[library], impls[library] = sources(library, files[library])
end
# Generate "src/onemkl.h"
open(joinpath(@__DIR__, "src", "onemkl.h"), "w") do io
- write(io, read(joinpath(@__DIR__, "onemkl_prologue.h"), String))
- write(io, "// BLAS\n", decls["blas"])
- write(io, "// LAPACK\n", decls["lapack"])
- write(io, "// SPARSE\n", decls["sparse"])
- write(io, read(joinpath(@__DIR__, "onemkl_epilogue.h"), String))
+ write(io, read(joinpath(@__DIR__, "onemkl_prologue.h"), String))
+ write(io, "// BLAS\n", decls["blas"])
+ write(io, "// LAPACK\n", decls["lapack"])
+ write(io, "// SPARSE\n", decls["sparse"])
+ write(io, read(joinpath(@__DIR__, "onemkl_epilogue.h"), String))
end
# Generate "src/onemkl.cpp"
open(joinpath(@__DIR__, "src", "onemkl.cpp"), "w") do io
- write(io, read(joinpath(@__DIR__, "onemkl_prologue.cpp"), String))
- write(io, "// BLAS\n", impls["blas"])
- write(io, "// LAPACK\n", impls["lapack"])
- write(io, "// SPARSE\n", impls["sparse"])
- write(io, read(joinpath(@__DIR__, "onemkl_epilogue.cpp"), String))
+ write(io, read(joinpath(@__DIR__, "onemkl_prologue.cpp"), String))
+ write(io, "// BLAS\n", impls["blas"])
+ write(io, "// LAPACK\n", impls["lapack"])
+ write(io, "// SPARSE\n", impls["sparse"])
+ write(io, read(joinpath(@__DIR__, "onemkl_epilogue.cpp"), String))
end
diff --git a/lib/mkl/wrappers_sparse.jl b/lib/mkl/wrappers_sparse.jl
index 3da9aba..46a571d 100644
--- a/lib/mkl/wrappers_sparse.jl
+++ b/lib/mkl/wrappers_sparse.jl
@@ -46,7 +46,7 @@ function _check_csc_support()
csc_supported() && return
error(
"oneSparseMatrixCSC requires a support library built against oneMKL 2025.3 or " *
- "later; the loaded one was built against oneMKL $(version())."
+ "later; the loaded one was built against oneMKL $(version())."
)
end
diff --git a/lib/support/Support.jl b/lib/support/Support.jl
index 5fe9fc3..391a37c 100644
--- a/lib/support/Support.jl
+++ b/lib/support/Support.jl
@@ -35,9 +35,9 @@ function _check_sparse_abi()
_sparse_abi_ok[] && return
error(
"The loaded oneAPI_Support_jll binary predates the current sparse wrappers and has an " *
- "incompatible ABI; calling sparse routines against it would corrupt memory or crash. " *
- "Rebuild the support library from source with `julia --project deps/build_local.jl` " *
- "(or install a oneAPI_Support_jll built from the updated onemkl.cpp)."
+ "incompatible ABI; calling sparse routines against it would corrupt memory or crash. " *
+ "Rebuild the support library from source with `julia --project deps/build_local.jl` " *
+ "(or install a oneAPI_Support_jll built from the updated onemkl.cpp)."
)
end
@@ -53,7 +53,7 @@ function __init__()
# Probe the loaded support binary for a symbol that only the regenerated (wide-ABI)
# sparse wrappers export; `_check_sparse_abi` gates the affected calls on the result.
handle = Libdl.dlopen(oneAPI_Support_jll.liboneapi_support; throw_error = false)
- if handle !== nothing
+ return if handle !== nothing
_sparse_abi_ok[] =
Libdl.dlsym(handle, :onemklSsparse_set_csc_data; throw_error = false) !== nothing
end
diff --git a/lib/support/liboneapi_support.jl b/lib/support/liboneapi_support.jl
index e1b7327..c3d9958 100644
--- a/lib/support/liboneapi_support.jl
+++ b/lib/support/liboneapi_support.jl
@@ -6429,194 +6429,240 @@ function onemklZunmqr_batch_scratchpad_size(device_queue, side, trans, m, n, k,
end
function onemklXsparse_init_matrix_handle(p_spmat)
- @ccall liboneapi_support.onemklXsparse_init_matrix_handle(p_spmat::Ptr{matrix_handle_t})::Cint
+ return @ccall liboneapi_support.onemklXsparse_init_matrix_handle(p_spmat::Ptr{matrix_handle_t})::Cint
end
function onemklXsparse_release_matrix_handle(device_queue, p_spmat)
@ccall liboneapi_support.onemklXsparse_release_matrix_handle(device_queue::syclQueue_t,
- p_spmat::Ptr{matrix_handle_t})::Cint
+ p_spmat::Ptr{matrix_handle_t}
+ )::Cint
end
-function onemklSsparse_set_csr_data(device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
+function onemklSsparse_set_csr_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
col_ind, values)
@ccall liboneapi_support.onemklSsparse_set_csr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ spmat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int32},
col_ind::ZePtr{Int32},
values::ZePtr{Cfloat})::Cint
end
-function onemklSsparse_set_csr_data_64(device_queue, spmat, nrows, ncols, nnz, index,
- row_ptr, col_ind, values)
+function onemklSsparse_set_csr_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
+ row_ptr, col_ind, values
+ )
@ccall liboneapi_support.onemklSsparse_set_csr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int64},
col_ind::ZePtr{Int64},
values::ZePtr{Cfloat})::Cint
end
-function onemklDsparse_set_csr_data(device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
+function onemklDsparse_set_csr_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
col_ind, values)
@ccall liboneapi_support.onemklDsparse_set_csr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ spmat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int32},
col_ind::ZePtr{Int32},
values::ZePtr{Cdouble})::Cint
end
-function onemklDsparse_set_csr_data_64(device_queue, spmat, nrows, ncols, nnz, index,
- row_ptr, col_ind, values)
+function onemklDsparse_set_csr_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
+ row_ptr, col_ind, values
+ )
@ccall liboneapi_support.onemklDsparse_set_csr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int64},
col_ind::ZePtr{Int64},
values::ZePtr{Cdouble})::Cint
end
-function onemklCsparse_set_csr_data(device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
+function onemklCsparse_set_csr_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
col_ind, values)
@ccall liboneapi_support.onemklCsparse_set_csr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ spmat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int32},
col_ind::ZePtr{Int32},
values::ZePtr{ComplexF32})::Cint
end
-function onemklCsparse_set_csr_data_64(device_queue, spmat, nrows, ncols, nnz, index,
- row_ptr, col_ind, values)
+function onemklCsparse_set_csr_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
+ row_ptr, col_ind, values
+ )
@ccall liboneapi_support.onemklCsparse_set_csr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int64},
col_ind::ZePtr{Int64},
values::ZePtr{ComplexF32})::Cint
end
-function onemklZsparse_set_csr_data(device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
+function onemklZsparse_set_csr_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ptr,
col_ind, values)
@ccall liboneapi_support.onemklZsparse_set_csr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ spmat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int32},
col_ind::ZePtr{Int32},
values::ZePtr{ComplexF64})::Cint
end
-function onemklZsparse_set_csr_data_64(device_queue, spmat, nrows, ncols, nnz, index,
- row_ptr, col_ind, values)
+function onemklZsparse_set_csr_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
+ row_ptr, col_ind, values
+ )
@ccall liboneapi_support.onemklZsparse_set_csr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
+ nnz::Int64, index::onemklIndex,
row_ptr::ZePtr{Int64},
col_ind::ZePtr{Int64},
values::ZePtr{ComplexF64})::Cint
end
-function onemklSsparse_set_csc_data(device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
- row_ind, values)
- @ccall liboneapi_support.onemklSsparse_set_csc_data(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int32},
- row_ind::Ptr{Int32},
- values::Ptr{Cfloat})::Cint
-end
-
-function onemklSsparse_set_csc_data_64(device_queue, spMat, nrows, ncols, nnz, index,
- col_ptr, row_ind, values)
- @ccall liboneapi_support.onemklSsparse_set_csc_data_64(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int64},
- row_ind::Ptr{Int64},
- values::Ptr{Cfloat})::Cint
-end
-
-function onemklDsparse_set_csc_data(device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
- row_ind, values)
- @ccall liboneapi_support.onemklDsparse_set_csc_data(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int32},
- row_ind::Ptr{Int32},
- values::Ptr{Cdouble})::Cint
-end
-
-function onemklDsparse_set_csc_data_64(device_queue, spMat, nrows, ncols, nnz, index,
- col_ptr, row_ind, values)
- @ccall liboneapi_support.onemklDsparse_set_csc_data_64(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int64},
- row_ind::Ptr{Int64},
- values::Ptr{Cdouble})::Cint
-end
-
-function onemklCsparse_set_csc_data(device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
- row_ind, values)
- @ccall liboneapi_support.onemklCsparse_set_csc_data(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int32},
- row_ind::Ptr{Int32},
- values::Ptr{ComplexF32})::Cint
-end
-
-function onemklCsparse_set_csc_data_64(device_queue, spMat, nrows, ncols, nnz, index,
- col_ptr, row_ind, values)
- @ccall liboneapi_support.onemklCsparse_set_csc_data_64(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int64},
- row_ind::Ptr{Int64},
- values::Ptr{ComplexF32})::Cint
-end
-
-function onemklZsparse_set_csc_data(device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
- row_ind, values)
- @ccall liboneapi_support.onemklZsparse_set_csc_data(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int32},
- row_ind::Ptr{Int32},
- values::Ptr{ComplexF32})::Cint
-end
-
-function onemklZsparse_set_csc_data_64(device_queue, spMat, nrows, ncols, nnz, index,
- col_ptr, row_ind, values)
- @ccall liboneapi_support.onemklZsparse_set_csc_data_64(device_queue::syclQueue_t,
- spMat::matrix_handle_t,
- nrows::Int64, ncols::Int64,
- nnz::Int64, index::onemklIndex,
- col_ptr::Ptr{Int64},
- row_ind::Ptr{Int64},
- values::Ptr{ComplexF32})::Cint
-end
-
-function onemklSsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, index, row_ind,
+function onemklSsparse_set_csc_data(
+ device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
+ row_ind, values
+ )
+ return @ccall liboneapi_support.onemklSsparse_set_csc_data(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int32},
+ row_ind::Ptr{Int32},
+ values::Ptr{Cfloat}
+ )::Cint
+end
+
+function onemklSsparse_set_csc_data_64(
+ device_queue, spMat, nrows, ncols, nnz, index,
+ col_ptr, row_ind, values
+ )
+ return @ccall liboneapi_support.onemklSsparse_set_csc_data_64(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int64},
+ row_ind::Ptr{Int64},
+ values::Ptr{Cfloat}
+ )::Cint
+end
+
+function onemklDsparse_set_csc_data(
+ device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
+ row_ind, values
+ )
+ return @ccall liboneapi_support.onemklDsparse_set_csc_data(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int32},
+ row_ind::Ptr{Int32},
+ values::Ptr{Cdouble}
+ )::Cint
+end
+
+function onemklDsparse_set_csc_data_64(
+ device_queue, spMat, nrows, ncols, nnz, index,
+ col_ptr, row_ind, values
+ )
+ return @ccall liboneapi_support.onemklDsparse_set_csc_data_64(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int64},
+ row_ind::Ptr{Int64},
+ values::Ptr{Cdouble}
+ )::Cint
+end
+
+function onemklCsparse_set_csc_data(
+ device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
+ row_ind, values
+ )
+ return @ccall liboneapi_support.onemklCsparse_set_csc_data(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int32},
+ row_ind::Ptr{Int32},
+ values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklCsparse_set_csc_data_64(
+ device_queue, spMat, nrows, ncols, nnz, index,
+ col_ptr, row_ind, values
+ )
+ return @ccall liboneapi_support.onemklCsparse_set_csc_data_64(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int64},
+ row_ind::Ptr{Int64},
+ values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklZsparse_set_csc_data(
+ device_queue, spMat, nrows, ncols, nnz, index, col_ptr,
+ row_ind, values
+ )
+ return @ccall liboneapi_support.onemklZsparse_set_csc_data(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int32},
+ row_ind::Ptr{Int32},
+ values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklZsparse_set_csc_data_64(
+ device_queue, spMat, nrows, ncols, nnz, index,
+ col_ptr, row_ind, values
+ )
+ return @ccall liboneapi_support.onemklZsparse_set_csc_data_64(
+ device_queue::syclQueue_t,
+ spMat::matrix_handle_t,
+ nrows::Int64, ncols::Int64,
+ nnz::Int64, index::onemklIndex,
+ col_ptr::Ptr{Int64},
+ row_ind::Ptr{Int64},
+ values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklSsparse_set_coo_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ind,
col_ind, values)
@ccall liboneapi_support.onemklSsparse_set_coo_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int32, ncols::Int32,
nnz::Int32, index::onemklIndex,
row_ind::ZePtr{Int32},
@@ -6624,10 +6670,11 @@ function onemklSsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, inde
values::ZePtr{Cfloat})::Cint
end
-function onemklSsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, index,
+function onemklSsparse_set_coo_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
row_ind, col_ind, values)
@ccall liboneapi_support.onemklSsparse_set_coo_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
nnz::Int64, index::onemklIndex,
row_ind::ZePtr{Int64},
@@ -6635,10 +6682,11 @@ function onemklSsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, i
values::ZePtr{Cfloat})::Cint
end
-function onemklDsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, index, row_ind,
+function onemklDsparse_set_coo_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ind,
col_ind, values)
@ccall liboneapi_support.onemklDsparse_set_coo_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int32, ncols::Int32,
nnz::Int32, index::onemklIndex,
row_ind::ZePtr{Int32},
@@ -6646,10 +6694,11 @@ function onemklDsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, inde
values::ZePtr{Cdouble})::Cint
end
-function onemklDsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, index,
+function onemklDsparse_set_coo_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
row_ind, col_ind, values)
@ccall liboneapi_support.onemklDsparse_set_coo_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
nnz::Int64, index::onemklIndex,
row_ind::ZePtr{Int64},
@@ -6657,10 +6706,11 @@ function onemklDsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, i
values::ZePtr{Cdouble})::Cint
end
-function onemklCsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, index, row_ind,
+function onemklCsparse_set_coo_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ind,
col_ind, values)
@ccall liboneapi_support.onemklCsparse_set_coo_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int32, ncols::Int32,
nnz::Int32, index::onemklIndex,
row_ind::ZePtr{Int32},
@@ -6668,10 +6718,11 @@ function onemklCsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, inde
values::ZePtr{ComplexF32})::Cint
end
-function onemklCsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, index,
+function onemklCsparse_set_coo_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
row_ind, col_ind, values)
@ccall liboneapi_support.onemklCsparse_set_coo_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
nnz::Int64, index::onemklIndex,
row_ind::ZePtr{Int64},
@@ -6679,10 +6730,11 @@ function onemklCsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, i
values::ZePtr{ComplexF32})::Cint
end
-function onemklZsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, index, row_ind,
+function onemklZsparse_set_coo_data(
+ device_queue, spmat, nrows, ncols, nnz, index, row_ind,
col_ind, values)
@ccall liboneapi_support.onemklZsparse_set_coo_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int32, ncols::Int32,
nnz::Int32, index::onemklIndex,
row_ind::ZePtr{Int32},
@@ -6690,10 +6742,11 @@ function onemklZsparse_set_coo_data(device_queue, spmat, nrows, ncols, nnz, inde
values::ZePtr{ComplexF64})::Cint
end
-function onemklZsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, index,
+function onemklZsparse_set_coo_data_64(
+ device_queue, spmat, nrows, ncols, nnz, index,
row_ind, col_ind, values)
@ccall liboneapi_support.onemklZsparse_set_coo_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
+ spmat::matrix_handle_t,
nrows::Int64, ncols::Int64,
nnz::Int64, index::onemklIndex,
row_ind::ZePtr{Int64},
@@ -6701,128 +6754,160 @@ function onemklZsparse_set_coo_data_64(device_queue, spmat, nrows, ncols, nnz, i
values::ZePtr{ComplexF64})::Cint
end
-function onemklSsparse_set_bsr_data(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklSsparse_set_bsr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64, blk_ncols::Int64,
- blk_nnz::Int64, row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int32},
- bsr_col_ind::Ptr{Int32},
- bsr_values::Ptr{Cfloat})::Cint
-end
-
-function onemklSsparse_set_bsr_data_64(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklSsparse_set_bsr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64,
- blk_ncols::Int64, blk_nnz::Int64,
- row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int64},
- bsr_col_ind::Ptr{Int64},
- bsr_values::Ptr{Cfloat})::Cint
-end
-
-function onemklDsparse_set_bsr_data(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklDsparse_set_bsr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64, blk_ncols::Int64,
- blk_nnz::Int64, row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int32},
- bsr_col_ind::Ptr{Int32},
- bsr_values::Ptr{Cdouble})::Cint
-end
-
-function onemklDsparse_set_bsr_data_64(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklDsparse_set_bsr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64,
- blk_ncols::Int64, blk_nnz::Int64,
- row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int64},
- bsr_col_ind::Ptr{Int64},
- bsr_values::Ptr{Cdouble})::Cint
-end
-
-function onemklCsparse_set_bsr_data(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklCsparse_set_bsr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64, blk_ncols::Int64,
- blk_nnz::Int64, row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int32},
- bsr_col_ind::Ptr{Int32},
- bsr_values::Ptr{ComplexF32})::Cint
-end
-
-function onemklCsparse_set_bsr_data_64(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklCsparse_set_bsr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64,
- blk_ncols::Int64, blk_nnz::Int64,
- row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int64},
- bsr_col_ind::Ptr{Int64},
- bsr_values::Ptr{ComplexF32})::Cint
-end
-
-function onemklZsparse_set_bsr_data(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklZsparse_set_bsr_data(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64, blk_ncols::Int64,
- blk_nnz::Int64, row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int32},
- bsr_col_ind::Ptr{Int32},
- bsr_values::Ptr{ComplexF32})::Cint
-end
-
-function onemklZsparse_set_bsr_data_64(device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
- row_blk_size, col_blk_size, blk_layout, index,
- bsr_row_ptr, bsr_col_ind, bsr_values)
- @ccall liboneapi_support.onemklZsparse_set_bsr_data_64(device_queue::syclQueue_t,
- spmat::matrix_handle_t,
- blk_nrows::Int64,
- blk_ncols::Int64, blk_nnz::Int64,
- row_blk_size::Int64,
- col_blk_size::Int64,
- blk_layout::onemklLayout,
- index::onemklIndex,
- bsr_row_ptr::Ptr{Int64},
- bsr_col_ind::Ptr{Int64},
- bsr_values::Ptr{ComplexF32})::Cint
+function onemklSsparse_set_bsr_data(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklSsparse_set_bsr_data(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64, blk_ncols::Int64,
+ blk_nnz::Int64, row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int32},
+ bsr_col_ind::Ptr{Int32},
+ bsr_values::Ptr{Cfloat}
+ )::Cint
+end
+
+function onemklSsparse_set_bsr_data_64(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklSsparse_set_bsr_data_64(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64,
+ blk_ncols::Int64, blk_nnz::Int64,
+ row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int64},
+ bsr_col_ind::Ptr{Int64},
+ bsr_values::Ptr{Cfloat}
+ )::Cint
+end
+
+function onemklDsparse_set_bsr_data(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklDsparse_set_bsr_data(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64, blk_ncols::Int64,
+ blk_nnz::Int64, row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int32},
+ bsr_col_ind::Ptr{Int32},
+ bsr_values::Ptr{Cdouble}
+ )::Cint
+end
+
+function onemklDsparse_set_bsr_data_64(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklDsparse_set_bsr_data_64(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64,
+ blk_ncols::Int64, blk_nnz::Int64,
+ row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int64},
+ bsr_col_ind::Ptr{Int64},
+ bsr_values::Ptr{Cdouble}
+ )::Cint
+end
+
+function onemklCsparse_set_bsr_data(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklCsparse_set_bsr_data(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64, blk_ncols::Int64,
+ blk_nnz::Int64, row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int32},
+ bsr_col_ind::Ptr{Int32},
+ bsr_values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklCsparse_set_bsr_data_64(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklCsparse_set_bsr_data_64(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64,
+ blk_ncols::Int64, blk_nnz::Int64,
+ row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int64},
+ bsr_col_ind::Ptr{Int64},
+ bsr_values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklZsparse_set_bsr_data(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklZsparse_set_bsr_data(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64, blk_ncols::Int64,
+ blk_nnz::Int64, row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int32},
+ bsr_col_ind::Ptr{Int32},
+ bsr_values::Ptr{ComplexF32}
+ )::Cint
+end
+
+function onemklZsparse_set_bsr_data_64(
+ device_queue, spmat, blk_nrows, blk_ncols, blk_nnz,
+ row_blk_size, col_blk_size, blk_layout, index,
+ bsr_row_ptr, bsr_col_ind, bsr_values
+ )
+ return @ccall liboneapi_support.onemklZsparse_set_bsr_data_64(
+ device_queue::syclQueue_t,
+ spmat::matrix_handle_t,
+ blk_nrows::Int64,
+ blk_ncols::Int64, blk_nnz::Int64,
+ row_blk_size::Int64,
+ col_blk_size::Int64,
+ blk_layout::onemklLayout,
+ index::onemklIndex,
+ bsr_row_ptr::Ptr{Int64},
+ bsr_col_ind::Ptr{Int64},
+ bsr_values::Ptr{ComplexF32}
+ )::Cint
end
function onemklXsparse_init_matmat_descr(p_desc)
diff --git a/test/onemkl.jl b/test/onemkl.jl
index 31cd7b5..8d4fb15 100644
--- a/test/onemkl.jl
+++ b/test/onemkl.jl
@@ -12,16 +12,16 @@ m = 20
n = 35
k = 13
-# CSC construction requires a support library built against oneMKL 2025.3+ (wide sparse ABI)
-csc_supported = oneMKL.csc_supported()
-csr_csc_matrices = csc_supported ? (oneSparseMatrixCSR, oneSparseMatrixCSC) :
- (oneSparseMatrixCSR,)
-coo_csr_csc_matrices = csc_supported ? (oneSparseMatrixCOO, oneSparseMatrixCSR, oneSparseMatrixCSC) :
- (oneSparseMatrixCOO, oneSparseMatrixCSR)
+ # CSC construction requires a support library built against oneMKL 2025.3+ (wide sparse ABI)
+ csc_supported = oneMKL.csc_supported()
+ csr_csc_matrices = csc_supported ? (oneSparseMatrixCSR, oneSparseMatrixCSC) :
+ (oneSparseMatrixCSR,)
+ coo_csr_csc_matrices = csc_supported ? (oneSparseMatrixCOO, oneSparseMatrixCSR, oneSparseMatrixCSC) :
+ (oneSparseMatrixCOO, oneSparseMatrixCSR)
@testset "Version" begin
version_onemkl = oneMKL.version()
- @test version_onemkl ≥ v"2025.2.0"
+ @test version_onemkl ≥ v"2025.2.0"
end
############################################################################################ |
michel2323
enabled auto-merge (squash)
July 30, 2026 17:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
oneMKL 2025.3 widened the sparse setter ABI: set_{csr,coo}_data take an explicit nnz and 64-bit dimensions, set_csc_data/set_bsr_data are new, and the pre-2025.3 setter overloads are deprecated (though still present in 2026.x). Regenerate the C wrappers and Julia bindings against the 2025.3.1 headers and adopt the wide ABI throughout: