Skip to content

benchmark: compare3.jl — FFTW vs registry FFTA vs checkouts, side by side - #1

Open
pankgeorg wants to merge 21 commits into
integration/allfrom
bench/compare3
Open

benchmark: compare3.jl — FFTW vs registry FFTA vs checkouts, side by side#1
pankgeorg wants to merge 21 commits into
integration/allfrom
bench/compare3

Conversation

@pankgeorg

@pankgeorg pankgeorg commented Aug 30, 2026

Copy link
Copy Markdown
Member

Adds benchmark/compare3.jl (+ compare3_worker.jl, cases.jl shared with suite.jl): each --impl NAME=SPEC column (fftw, @0.3.1, or a checkout path) runs in its own process/environment on the suite's case list, per --threads count; one markdown table gives times, ratio to FFTW, speedup over --ref, per-class geomeans, thread scaling and a checksum check; --classes/--skip-existing restrict classes and reuse finished columns. Also kernel_stages.jl + KERNEL_STAGES.md (per-stage time breakdown inside the kernels).
Baseline, aarch64 Neoverse-N1, 1 thread (benchmark/compare3/aarch64/baseline/COMPARE3.md): FFTA 0.3.1 / FFTW 6.49× and integration/all / FFTW 2.45× (geomean, 353 matched cases; 0.3.1's prime/awkward classes capped at 2^12 — it is O(n²) there, 8.8 s per call at n = 49757). By class, 0.3.1 → integration/all: pow2 2.07→1.23×, smooth 4.11→2.92×, prime 7.30→2.00×, 2D 8.59→1.95×, rfft 2D 19.1→2.38× (ComplexF64/Float64).
Tested: --quick smoke run, suite.jl --quick after the cases.jl split, the full three-way run.

…ate processes

Runs FFTW, a registry FFTA version and any number of FFTA checkouts on the
suite.jl case list (moved to cases.jl), one process and environment each,
and renders one table with ratios to FFTW, speedups over a reference column,
per-class geometric means and thread scaling.
Re-runs the power-of-two, composite and Bluestein kernels with stages
removed (leaves / butterfly passes / twiddle pass / sub-transforms) so the
stage times add up to the total, next to a memory-pass floor and FFTW.
…on/experiments), FFTW MEASURE sweeps, DSP.jl workloads (aarch64)
…ng reuse only columns that cover the current run
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.

1 participant