TurboFFT: Co-Designed High-Performance and Fault-Tolerant Fast Fourier Transform on GPUs
Shixun Wu, Yujia Zhai, Jinyang Liu, Jiajun Huang, Zizhe Jian, Huangliang Dai, Sheng Di, Franck Cappello, Zizhong Chen
TL;DR
This work tackles the dual challenge of delivering high-performance FFT on GPUs while providing online fault tolerance against soft errors. It introduces TurboFFT, a co-designed FFT prototype that combines architecture-aware, padding-free optimizations with a two-sided ABFT scheme and multi-transaction ABFT to minimize fault-tolerance overhead. The approach achieves competitive or superior throughput compared with cuFFT and VkFFT when fault tolerance is off, and sustains an overhead of roughly 7% to 15% under fault injection for FP32 and FP64, thanks to fused ABFT at multiple levels and delayed batch correction. The results, demonstrated on NVIDIA A100 and T4 GPUs, highlight TurboFFT’s practical impact for reliable, high-performance GPU-based FFT in scientific computing and signal processing, with clear pathways for further optimization and application to related workloads.
Abstract
GPU-based fast Fourier transform (FFT) is extremely important for scientific computing and signal processing. However, we find the inefficiency of existing FFT libraries and the absence of fault tolerance against soft error. To address these issues, we introduce TurboFFT, a new FFT prototype co-designed for high performance and online fault tolerance. For FFT, we propose an architecture-aware, padding-free, and template-based prototype to maximize hardware resource utilization, achieving a competitive or superior performance compared to the state-of-the-art closed-source library, cuFFT. For fault tolerance, we 1) explore algorithm-based fault tolerance (ABFT) at the thread and threadblock levels to reduce additional memory footprint, 2) address the error propagation by introducing a two-side ABFT with location encoding, and 3) further modify the threadblock-level FFT from 1-transaction to multi-transaction in order to bring more parallelism for ABFT. Our two-side strategy enables online correction without additional global memory while our multi-transaction design averages the expensive threadblock-level reduction in ABFT with zero additional operations. Experimental results on an NVIDIA A100 server GPU and a Tesla Turing T4 GPU demonstrate that TurboFFT without fault tolerance is comparable to or up to 300\% faster than cuFFT and outperforms VkFFT. TurboFFT with fault tolerance maintains an overhead of 7\% to 15\%, even under tens of error injections per minute for both FP32 and FP64.
