Conversation
There was a problem hiding this comment.
Pull request overview
This PR broadens MKL support by adding a native MKL DFTI-based planning/execution path so that FFTs over subset dimensions (e.g., transforming one dimension of a 3D+ array) work under the "mkl" provider, and updates tests to validate these behaviors under MKL.
Changes:
- Added a new MKL backend (
src/mkl_dfti.jl) implementing FFT/rFFT planning and execution via MKL’s DFTI API. - Guarded FFTW-only functionality in
src/fft.jl(wisdom + FFTW plan implementations) so MKL can supply its own implementations. - Updated tests to run previously FFTW-only subset-dimension and backend conformance tests under MKL as well.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
test/runtests.jl |
Removes FFTW-only gating and adds/adjusts tests to validate subset-dimension FFTs and AbstractFFTs backend tests under MKL. |
src/mkl_dfti.jl |
New MKL DFTI plan types and implementations for complex FFTs and real FFTs (rfft/brfft) including plan inversion and adjoint styles. |
src/fft.jl |
Makes wisdom a no-op under MKL and compiles FFTW-only plan implementations only for the "fftw" provider. |
src/FFTW.jl |
Conditionally includes mkl_dfti.jl when the provider is "mkl". |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #332 +/- ##
==========================================
+ Coverage 73.64% 75.99% +2.34%
==========================================
Files 5 6 +1
Lines 535 933 +398
==========================================
+ Hits 394 709 +315
- Misses 141 224 +83 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@stevengj would this PR be interesting, or should I create a new MKLFFT.jl package? I would find this functionality useful in some circumstances, but it does break on Mac (was it ever really well supported?). |
Add wider support for MKL usage, specifically for dims > 2.