TurboFFT: Co-Designed High-Performance and Fault-Tolerant Fast Fourier Transform on GPUs
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-desi...
Gespeichert in:
Hauptverfasser: | , , , , , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | 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. |
---|---|
DOI: | 10.48550/arxiv.2412.05824 |