Skip to content

Broader mkl support#332

Open
jtravs wants to merge 5 commits intoJuliaMath:masterfrom
jtravs:broader-mkl
Open

Broader mkl support#332
jtravs wants to merge 5 commits intoJuliaMath:masterfrom
jtravs:broader-mkl

Conversation

@jtravs
Copy link

@jtravs jtravs commented Mar 2, 2026

Add wider support for MKL usage, specifically for dims > 2.

Copilot AI review requested due to automatic review settings March 2, 2026 16:32
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link

codecov bot commented Mar 2, 2026

Codecov Report

❌ Patch coverage is 79.84496% with 78 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.99%. Comparing base (566f3c6) to head (5588281).

Files with missing lines Patch % Lines
src/mkl_dfti.jl 80.67% 74 Missing ⚠️
src/fft.jl 0.00% 4 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jtravs
Copy link
Author

jtravs commented Mar 9, 2026

@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?).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants