Skip to content

ASV Benchmarks Integration#310

Open
vchamarthi wants to merge 2 commits intoIntelPython:masterfrom
vchamarthi:asv-bench-pr
Open

ASV Benchmarks Integration#310
vchamarthi wants to merge 2 commits intoIntelPython:masterfrom
vchamarthi:asv-bench-pr

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 16:21
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 ASV benchmark suite for mkl_fft (root API + NumPy/SciPy interfaces + memory) along with configuration, docs, and ignore rules to support running and storing benchmark artifacts in CI.

Changes:

  • Introduces ASV benchmark modules covering 1-D, 2-D, and N-D FFTs across multiple dtypes and shapes (including Hermitian variants for SciPy).
  • Adds ASV configuration (asv.conf.json) and documentation for local/CI execution.
  • Adds benchmark package initialization that pins thread counts via environment variables, plus .gitignore entries for ASV artifacts.

Reviewed changes

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

Show a summary per file
File Description
benchmarks/benchmarks/bench_scipy_fft.py Adds full-coverage ASV benchmarks for mkl_fft.interfaces.scipy_fft including Hermitian 2-D/N-D.
benchmarks/benchmarks/bench_numpy_fft.py Adds full-coverage ASV benchmarks for mkl_fft.interfaces.numpy_fft including Hermitian 1-D.
benchmarks/benchmarks/bench_memory.py Adds ASV peak-RSS benchmarks for core mkl_fft transforms across 1-D/2-D/3-D.
benchmarks/benchmarks/bench_fftnd.py Adds 2-D and N-D root-API benchmarks including non-square and non-power-of-two cases.
benchmarks/benchmarks/bench_fft1d.py Adds 1-D root-API benchmarks for power-of-two and non-power-of-two sizes (C2C and R2C/C2R).
benchmarks/benchmarks/__init__.py Adds thread pinning logic via MKL_NUM_THREADS/OMP_NUM_THREADS/OPENBLAS_NUM_THREADS.
benchmarks/asv.conf.json Adds ASV project configuration (dirs, branches, timeouts, regression thresholds).
benchmarks/README.md Documents benchmark structure, coverage, threading rationale, and local/CI run commands.
.gitignore Ignores ASV artifact directories.

Comment thread benchmarks/benchmarks/__init__.py Outdated
Comment thread benchmarks/benchmarks/bench_numpy_fft.py Outdated
Comment thread benchmarks/benchmarks/bench_numpy_fft.py Outdated
Comment thread benchmarks/benchmarks/bench_scipy_fft.py Outdated
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