English

Shortest-Path FFT: Optimal SIMD Instruction Scheduling via Graph Search

Performance 2026-04-07 v1

Abstract

An NN-point FFT admits many valid implementations that differ in radix choice, stage ordering, and register-blocking strategy. These alternatives use different SIMD instruction mixes with different latencies, yet produce the same mathematical result. We show that finding the fastest implementation is a shortest-path problem on a directed acyclic graph. We formalize two variants of this graph. In the \emph{context-free} model, nodes represent computation stages and edge weights are independently measured instruction costs. In the \emph{context-aware} model, nodes are expanded to encode the \emph{predecessor edge type}, so that edge weights capture inter-operation correlations such as cache warming -- the cost of operation~B depends on which operation~A preceded it. This addresses a limitation identified but deliberately bypassed by FFTW \citep{FrigoJohnson1998}: that optimal-substructure assumptions break down ``because of the different states of the cache.'' Applied to Apple M1 NEON, the context-free Dijkstra finds an arrangement at 22.1~GFLOPS (74\% of optimal). The context-aware Dijkstra discovers R4R2R4R4Fused-8\text{R4} \to \text{R2} \to \text{R4} \to \text{R4} \to \text{Fused-8} at 29.8~GFLOPS -- a 5.2×5.2\times improvement over pure radix-2 and 34\% faster than the context-free result. This arrangement includes a radix-2 pass \emph{sandwiched between} radix-4 passes, exploiting cache residuals that only exist in context. No context-free search can discover this.

Keywords

Cite

@article{arxiv.2604.04311,
  title  = {Shortest-Path FFT: Optimal SIMD Instruction Scheduling via Graph Search},
  author = {Mohamed Amine Bergach},
  journal= {arXiv preprint arXiv:2604.04311},
  year   = {2026}
}
R2 v1 2026-07-01T11:54:46.799Z