Table of Contents
Fetching ...

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.

TurboFFT: Co-Designed High-Performance and Fault-Tolerant Fast Fourier Transform on GPUs

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.

Paper Structure

This paper contains 60 sections, 5 equations, 22 figures, 6 tables.

Figures (22)

  • Figure 1: FFT performance comparison with cuFFT on an NVIDIA A100 GPU. Red means slower. Green means faster. Grey means close. TurboFFT is competitive with cuFFT and outperforms VkFFT.
  • Figure 2: DFT and its Error Propagation
  • Figure 3: Overview of the optimized TurboFFT.
  • Figure 4: Our padding-free design achieves 100% shared memory utilization with zero bank conflicts by rendering register store.
  • Figure 5: Benefit of two-sided ABFT: Delayed Batched Correction
  • ...and 17 more figures