Build the support library against oneAPI 2026.0.0.#582
Merged
Conversation
Contributor
|
Your PR requires formatting changes to meet the project's style guidelines. Click here to view the suggested changes.diff --git a/lib/mkl/fft.jl b/lib/mkl/fft.jl
index 745ff65..263b73b 100644
--- a/lib/mkl/fft.jl
+++ b/lib/mkl/fft.jl
@@ -98,9 +98,11 @@ function _create_descriptor(sz::NTuple{N,Int}, T::Type, complex::Bool) where {N}
# without GC.@preserve the array can be collected first, leaving the descriptor
# with garbage dimensions (commit then fails with FFT_INVALID_DESCRIPTOR).
lengths = collect(Int64, sz)
- st = GC.@preserve lengths (length(lengths) == 1 ?
- onemklDftCreate1D(desc_ref, prec, dom, lengths[1]) :
- onemklDftCreateND(desc_ref, prec, dom, length(lengths), pointer(lengths)))
+ st = GC.@preserve lengths (
+ length(lengths) == 1 ?
+ onemklDftCreate1D(desc_ref, prec, dom, lengths[1]) :
+ onemklDftCreateND(desc_ref, prec, dom, length(lengths), pointer(lengths))
+ )
st == 0 || error("onemkl DFT create failed (status $st)")
desc = desc_ref[]
# Do not program descriptor scaling; we'll perform inverse normalization manually.
diff --git a/test/onemkl.jl b/test/onemkl.jl
index 9877440..7b83873 100644
--- a/test/onemkl.jl
+++ b/test/onemkl.jl
@@ -14,7 +14,7 @@ k = 13
@testset "Version" begin
version_onemkl = oneMKL.version()
- @test version_onemkl ≥ v"2026.0.0"
+ @test version_onemkl ≥ v"2026.0.0"
end
############################################################################################ |
Bump the Intel oneAPI toolkit (DPC++ compiler + oneMKL) that the local support-library build compiles against from 2025.2.0 to 2026.0.0: - deps/build_local.jl: dpcpp_linux-64 / mkl-devel-dpcpp Conda packages - test/onemkl.jl: minimum oneMKL version assertion CI rebuilds liboneapi_support locally (the wrappers postdate the 0.9.2 oneAPI_Support_jll build), so this exercises the new toolkit without needing a registered JLL. The oneAPI_Support_jll / oneAPI_Support_Headers_jll version bumps follow once Yggdrasil has built and registered them. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
oneMKL 2026.0 changed a few DFT APIs that broke the support-library build: - config_param::INPUT_STRIDES / OUTPUT_STRIDES were removed (deprecated since 2025 in favour of FWD_STRIDES / BWD_STRIDES). Map the legacy parameters onto their successors; the Julia layer only ever sets FWD/BWD strides, so this is behaviour-preserving. - descriptor::get_value() now requires a pointer to the descriptor's real scalar type (float for single precision), so the double* path needs a precision-matched temporary that is widened for the C interface. Also bump the baked-in ONEMKL_VERSION constants to 2026.0.0 so that oneMKL.version() reports the toolkit the library was built against. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
_create_descriptor and the multi-dimensional plan constructors passed pointer(lengths) / pointer(strides) to the oneMKL C wrappers without keeping the arrays rooted across the ccall. oneMKL copies the data out of those pointers, but the arrays could be collected first, leaving the descriptor with garbage dimensions/strides. This was latent (it happened to survive for square arrays) but oneMKL 2026.0 surfaces it deterministically: committing a multi-dimensional, non-square descriptor fails with FFT_INVALID_DESCRIPTOR. Wrap the affected ccalls in GC.@preserve. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #582 +/- ##
==========================================
+ Coverage 80.82% 80.92% +0.09%
==========================================
Files 48 48
Lines 3233 3234 +1
==========================================
+ Hits 2613 2617 +4
+ Misses 620 617 -3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Bump the Intel oneAPI toolkit (DPC++ compiler + oneMKL) used to build liboneapi_support from 2025.2.0 to 2026.0.0: