Skip to content

Commit 37cd05d

Browse files
committed
Update oneAPI.jl for the release 2025.2.0
1 parent 07bc2b3 commit 37cd05d

File tree

9 files changed

+40
-2
lines changed

9 files changed

+40
-2
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
LocalPreferences.toml
22
Manifest.toml
3+
deps/onemkl_blas.cpp
4+
deps/onemkl_blas.h
5+
deps/onemkl_lapack.cpp
6+
deps/onemkl_lapack.h
7+
deps/onemkl_sparse.cpp
8+
deps/onemkl_sparse.h

deps/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ oneAPI_Level_Zero_Headers_jll = "f4bc562b-d309-54f8-9efb-476e56f0410d"
1212
oneAPI_Support_Headers_jll = "24f86df5-245d-5634-a4cc-32433d9800b3"
1313

1414
[compat]
15-
oneAPI_Support_Headers_jll = "=2025.1.0"
15+
oneAPI_Support_Headers_jll = "=2025.2.0"

deps/generate_helpers.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
non_parametric_routines = ["init_matrix_handle", "release_matrix_handle", "set_matrix_property",
22
"init_matmat_descr", "release_matmat_descr", "set_matmat_data", "get_matmat_data", "matmat",
3-
"omatcopy", "sort_matrix", "optimize_gemv", "optimize_trmv", "optimize_trsv", "optimize_trsm",
3+
"omatcopy", "sort_matrix", "optimize_gemv", "optimize_gemm", "optimize_trmv", "optimize_trsv", "optimize_trsm",
44
"init_omatconvert_descr", "release_omatconvert_descr", "init_omatadd_descr", "release_omatadd_descr",
55
"omatconvert_buffer_size", "omatconvert_analyze", "omatconvert_get_nnz", "omatconvert",
66
"omatadd_buffer_size", "omatadd_analyze", "omatadd_get_nnz"]

deps/generate_interfaces.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ function generate_headers(library::String, filename::Vector{String}, output::Str
241241
# The routine "optimize_trsm" has two versions.
242242
suffix = ""
243243
(name_routine == "optimize_trsm") && occursin("columns", header) && (suffix = "_advanced")
244+
(name_routine == "optimize_gemm") && occursin("columns", header) && (suffix = "_advanced")
244245
name_routine ("set_csr_data", "set_coo_data") && occursin("int64_t", header) && (suffix = "_64")
245246
occursin("batch", name_routine) && !occursin("**", header) && (suffix = "_strided")
246247

deps/src/onemkl.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4038,6 +4038,16 @@ extern "C" int onemklXsparse_optimize_trsv(syclQueue_t device_queue, onemklUplo
40384038
return 0;
40394039
}
40404040

4041+
extern "C" int onemklXsparse_optimize_gemm(syclQueue_t device_queue, onemklTranspose opA, matrix_handle_t A) {
4042+
auto status = oneapi::mkl::sparse::optimize_gemm(device_queue->val, convert(opA), (oneapi::mkl::sparse::matrix_handle_t) A, {});
4043+
return 0;
4044+
}
4045+
4046+
extern "C" int onemklXsparse_optimize_gemm_advanced(syclQueue_t device_queue, onemklLayout layout_val, onemklTranspose opA, onemklTranspose opB, matrix_handle_t A, int64_t columns) {
4047+
auto status = oneapi::mkl::sparse::optimize_gemm(device_queue->val, convert(layout_val), convert(opA), convert(opB), (oneapi::mkl::sparse::matrix_handle_t) A, columns, {});
4048+
return 0;
4049+
}
4050+
40414051
extern "C" int onemklXsparse_optimize_trsm(syclQueue_t device_queue, onemklUplo uplo_val, onemklTranspose opA, onemklDiag diag_val, matrix_handle_t A) {
40424052
auto status = oneapi::mkl::sparse::optimize_trsm(device_queue->val, convert(uplo_val), convert(opA), convert(diag_val), (oneapi::mkl::sparse::matrix_handle_t) A, {});
40434053
return 0;

deps/src/onemkl.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2842,6 +2842,13 @@ int onemklXsparse_optimize_trmv(syclQueue_t device_queue, onemklUplo uplo_val, o
28422842
int onemklXsparse_optimize_trsv(syclQueue_t device_queue, onemklUplo uplo_val, onemklTranspose
28432843
opA, onemklDiag diag_val, matrix_handle_t A);
28442844

2845+
int onemklXsparse_optimize_gemm(syclQueue_t device_queue, onemklTranspose opA, matrix_handle_t
2846+
A);
2847+
2848+
int onemklXsparse_optimize_gemm_advanced(syclQueue_t device_queue, onemklLayout layout_val,
2849+
onemklTranspose opA, onemklTranspose opB,
2850+
matrix_handle_t A, int64_t columns);
2851+
28452852
int onemklXsparse_optimize_trsm(syclQueue_t device_queue, onemklUplo uplo_val, onemklTranspose
28462853
opA, onemklDiag diag_val, matrix_handle_t A);
28472854

lib/mkl/wrappers_sparse.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@ for (fname, elty) in ((:onemklSsparse_gemm, :Float32),
127127
end
128128
end
129129

130+
function sparse_optimize_gemm!(trans::Char, A::oneSparseMatrixCSR)
131+
queue = global_queue(context(A.nzVal), device(A.nzVal))
132+
onemklXsparse_optimize_gemm(sycl_queue(queue), trans, A.handle)
133+
return A
134+
end
135+
136+
function sparse_optimize_gemm!(trans::Char, transB::Char, nrhs::Int, A::oneSparseMatrixCSR)
137+
queue = global_queue(context(A.nzVal), device(A.nzVal))
138+
onemklXsparse_optimize_gemm_advanced(sycl_queue(queue), 'C', trans, transB, A.handle, nrhs)
139+
return A
140+
end
141+
130142
for (fname, elty) in ((:onemklSsparse_symv, :Float32),
131143
(:onemklDsparse_symv, :Float64),
132144
(:onemklCsparse_symv, :ComplexF32),

test/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1818
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
1919
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
2020
libigc_jll = "94295238-5935-5bd7-bb0f-b00942e9bdd5"
21+
oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b"
2122
oneAPI_Support_jll = "b049733a-a71d-5ed3-8eba-7d323ac00b36"

test/onemkl.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,7 @@ end
11321132

11331133
alpha = rand(T)
11341134
beta = rand(T)
1135+
oneMKL.sparse_optimize_gemm!(transa, dA)
11351136
oneMKL.sparse_gemm!(transa, transb, alpha, dA, dB, beta, dC)
11361137
@test alpha * opa(A) * opb(B) + beta * C collect(dC)
11371138
end

0 commit comments

Comments
 (0)