Repository navigation
fix(deps): update module github.com/go-fft/fft to v0.27.1 - #48
Merged
Merged
Conversation
tannevaled
force-pushed
the
renovate/deps
branch
from
October 12, 2026 21:48
68eadde to
87d0656
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.23.0→v0.27.1Release Notes
go-fft/fft (github.com/go-fft/fft)
v0.27.1Compare Source
Documentation only: performance claims at v0.27.0, recomputed from the raw parity runs (benchmarks/results/current-numbers-v0.27.0/). Within 5% of FFTW or faster: Neoverse-N1 24/24 (all faster), Zen 3 18/24 (17 faster), Cascade Lake 15/24 (14 faster, every 2-D row). README, BENCHMARKS.md and the docs now carry a note on v0.26.3's correctness fix (wrong N-D results on Intel AVX-512 for axes of length 9·p in v0.25.0–v0.26.2). Round 39 disproved "2-D 512² is allocation placement"; the sentence is gone. #75
v0.27.0Compare Source
Round 39, Cascade Lake (Intel AVX-512): every 2-D parity row now faster than FFTW.
End to end vs v0.26.1 (9 rounds, 4 placements): 2-D 512² 1.219×, 1024² 1.183×, 32² 1.308×, 64² 1.129×; untouched rows 0.99–1.02. FFTW parity: 2-D 64²/128²/256²/512²/1024² 0.937/0.946/0.949/0.883/0.834 (were 1.061/0.981/0.998/1.003/1.025); rows faster than FFTW 10 → 14 of 24. Bit-identical outputs (wide vs narrow strips); keeps v0.26.3's N-D guard. Details: BENCHMARKS.md, Round 39.
v0.26.4Compare Source
Measurements only (no code change): Round 38 — a radix-32 pass on amd64 was built bit-identical and lost to split radix 8 everywhere it was timed (Zen 3: complex 1024 0.85×, 256 0.81×), so it is not shipped (code on branch perf-r32x-r38). Zen 3's RFFT rows against FFTW after v0.25.0's tail jump moved within the run-to-run spread. #74
v0.26.3: — fixes wrong N-D results on Intel AVX-512Compare Source
Correctness fix. Upgrade if you run N-D transforms on Intel CPUs with AVX-512.
Affected: v0.25.0, v0.26.0, v0.26.1, v0.26.2, on Intel CPUs with AVX-512 (e.g. Cascade Lake, Ice Lake, Sapphire Rapids) only.
Symptom: FFTN / FFT2 / PlanN (and their inverses) returned wrong values, silently, when an axis other than the last has a length 9·p with p a prime that no Stockham pass handles — 153, 171, 207, 261, 342, … (120 of the lengths up to 2000). 1-D transforms, real transforms, the last axis, and every other CPU (AMD, Intel without AVX-512, arm64, and the other architectures) were correct.
Cause: v0.25.0's radix-9 route made
compTakes16(9·p)true while the axis plan of 9·p is Rader or Bluestein; the N-D plan replaced it with a Stockham plan whose passes multiply to 9, not 9·p.Fix (#73): the strip axis takes the no-radix-16 Stockham plan only when its passes multiply to n, and that plan's constructor now refuses (panics with an internal message) a partial factorization instead of transforming the wrong length. New tests check every strip-axis length 2–2000 and force the radix-9 route on any amd64 CPU, so CI catches this whatever runner it gets.
How it was found:
FuzzPublicAPIfailed once on a CI runner with AVX-512 (shape [171 22]: FFTN round trip) and passed on rerun on another runner; reproduced deterministically on Cascade Lake.v0.26.2Compare Source
Measurements only (no code change): Round 40, Neoverse-N1 parity re-measured at v0.26.1. Faster than FFTW on all 24 rows (unchanged); complex 10007 (Bluestein) 0.72 → 0.689 × FFTW. A/B v0.25.0 vs v0.26.1 (one external harness, 4 heap placements, 9 rotated rounds): CMulTo costs nothing on arm64 — complex 10007 0.980× the time, every round below 1. #70
v0.26.1Compare Source
Documentation only: every performance claim brought to v0.26.0, recomputed from the raw parity runs (benchmarks/results/current-numbers-v0.26.0/).
v0.26.0Compare Source
Round 36, Zen 3 (AMD AVX2). Every change runs only where kernels.IntelCPU is false.
FFTW parity on Zen 3 (within 5% or faster) 16 → 18 of 24, faster on 13 → 17. Re-checked against v0.25.0 between binaries: complex 10007 1.27×, 2-D 64² 1.17×, complex 1000 1.12×, 6144/10240 1.12–1.13×; every composite ≤ 16384 1.07× geometric mean. Accuracy: numpy on the exact exported bytes ≤ 1.3e-15. Details: BENCHMARKS.md, Round 36.
v0.25.0Compare Source
Round 35, Cascade Lake (Intel AVX-512).
FFTW parity on Cascade Lake (within 5% or faster) 13 → 15 of 24; complex 256 1.28 → 1.04, RFFT 256 1.10 → 0.97. Rules gated to Intel with AVX-512. Accuracy unchanged (numpy on the exact exported bytes ≤ 6.2e-16). Details: BENCHMARKS.md, Round 35.
v0.24.0Compare Source
Round 37, Haswell and Neoverse-N1.
Accuracy: numpy on the exact exported bytes ≤ 7.2e-16. Details: BENCHMARKS.md, Round 37.
v0.23.2Compare Source
CI and tests only; no library change.
v0.23.1Compare Source
Documentation only: every performance claim brought to v0.23.0.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.