Skip to content

ASV Benchmarks Integration#309

Closed
vchamarthi wants to merge 5 commits intoIntelPython:masterfrom
vchamarthi:master
Closed

ASV Benchmarks Integration#309
vchamarthi wants to merge 5 commits intoIntelPython:masterfrom
vchamarthi:master

Conversation

@vchamarthi
Copy link
Copy Markdown

Adds a complete ASV benchmark suite for mkl_fft and wires it into the internal Jenkins CI pipeline.

Benchmarks added (benchmarks/benchmarks/):

bench_fft1d.py — 1-D C2C and R2C/C2R, power-of-two and non-power-of-two
bench_fftnd.py — 2-D and N-D C2C and R2C/C2R, square, non-square, non-power-of-two
bench_numpy_fft.py — full coverage of mkl_fft.interfaces.numpy_fft
bench_scipy_fft.py — full coverage of mkl_fft.interfaces.scipy_fft including Hermitian 2-D/N-D
bench_memory.py — peak RSS for 1-D, 2-D, and 3-D transforms
__init__.py — pins MKL_NUM_THREADS=4 on machines with ≥4 physical cores for consistent cross-machine results (A hack to keep the results consistent on random nodes until CI finds a stable benchmarking machine)
Config (benchmarks/asv.conf.json)

Docs (benchmarks/README.md): structure, coverage, threading rationale, local run commands, CI flow.

Copilot AI review requested due to automatic review settings April 14, 2026 02:13
Copy link
Copy Markdown
Contributor

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

Adds an Airspeed Velocity (ASV) benchmark suite for mkl_fft (root API plus NumPy/SciPy interface adapters), along with configuration, documentation, and gitignore rules to support local/CI benchmark runs.

Changes:

  • Introduces ASV benchmark modules covering 1-D/2-D/N-D FFTs, Hermitian transforms, and peak RSS memory tracking.
  • Adds benchmark package initialization that pins thread counts for more consistent CI comparisons.
  • Adds ASV configuration (asv.conf.json), benchmark documentation, and ignores ASV artifact directories.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
benchmarks/benchmarks/bench_fft1d.py Adds 1-D root-API timing benchmarks (pow2 + non-pow2, C2C and R2C/C2R).
benchmarks/benchmarks/bench_fftnd.py Adds 2-D and N-D root-API timing benchmarks (square/non-square, pow2/non-pow2).
benchmarks/benchmarks/bench_numpy_fft.py Adds timing benchmarks covering mkl_fft.interfaces.numpy_fft API surface.
benchmarks/benchmarks/bench_scipy_fft.py Adds timing benchmarks covering mkl_fft.interfaces.scipy_fft API surface (incl. 2-D/N-D Hermitian).
benchmarks/benchmarks/bench_memory.py Adds peak-memory (RSS) benchmarks for representative FFT workloads.
benchmarks/benchmarks/__init__.py Pins thread environment variables based on detected physical core count.
benchmarks/asv.conf.json Adds ASV project/config settings for benchmark discovery and regression thresholds.
benchmarks/README.md Documents benchmark structure, coverage, threading strategy, and CI invocation.
.gitignore Ignores ASV output directories.

Comment thread benchmarks/benchmarks/bench_scipy_fft.py
Comment thread benchmarks/benchmarks/bench_memory.py
Comment thread benchmarks/benchmarks/__init__.py Outdated
Comment thread benchmarks/README.md Outdated
Comment thread benchmarks/benchmarks/bench_fft1d.py
Comment thread benchmarks/benchmarks/bench_fftnd.py
Comment thread benchmarks/benchmarks/bench_numpy_fft.py
@vchamarthi
Copy link
Copy Markdown
Author

Benchmarks implementation and correctness is tested in wsl instance locally,
ASV results preview snapshot below!
image

@ndgrigorian
Copy link
Copy Markdown
Collaborator

@vchamarthi
seems pre-commit fails, please conda install pre-commit and then run pre-commit run --all in the repo

@antonwolfy
Copy link
Copy Markdown
Collaborator

@vchamarthi seems pre-commit fails, please conda install pre-commit and then run pre-commit run --all in the repo

I guess you need to install extra packages also, so the full command would be

$ conda install pre-commit codespell pylint
$ pre-commit run --all

@vchamarthi
Copy link
Copy Markdown
Author

Closing this PR - I opened PR directly from mt fork master branch is failing some pre-commit workflow
opened a new one - #310

@vchamarthi vchamarthi closed this Apr 14, 2026
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.

4 participants