Skip to content

Accelerate small-prime FFTs with fused SIMD kernels - #181

Merged
odraccir1 merged 1 commit into
masterfrom
ra/small_prime_fft_optimization
Oct 22, 2026
Merged

odraccir1 merged 1 commit into
masterfrom
ra/small_prime_fft_optimization

Conversation

@odraccir1

@odraccir1 odraccir1 commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Reduce transform overhead through specialized SIMD base cases, fused stages, and fewer memory passes while preserving exact modular arithmetic and the existing bit-reversed spectrum order.

• Add register-resident AVX2/FMA 8-, 16-, and 32-point kernels, plus AVX-512 32-/64-point kernels and eight-lane stages.
• Interleave independent compensated products and inline butterfly helpers to reduce spills and call overhead.
• Block large radix-4 passes for cache reuse. Provide optional radix-8/16 stages with twiddle preparation outside coefficient loops; radix 4 remains the default.
• Skip redundant inverse leaf reductions after pointwise multiplication, whose outputs satisfy the stricter input bound.
• Preserve scalar/integer fallbacks and exactness across supported rounding modes.

On AMD EPYC 9454 with GCC 15.2, the default configuration reduces the estimated cost of two forward transforms plus one inverse by 2.48–3.04× versus master at sizes 1,024–32,768. These estimates sum separately measured transform timings; they do not measure complete polynomial multiplication.

@odraccir1 odraccir1 changed the title optimize fft Accelerate small-prime FFTs with fused SIMD kernels Oct 22, 2026
@odraccir1
odraccir1 requested a review from spaceships October 22, 2026 02:36
@odraccir1
odraccir1 merged commit cee7159 into master Oct 22, 2026
2 checks passed
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