  Fast Fourier Transform (FFT) is an essential tool in scientific and
engineering computation. The increasing demand for mixed-precision FFT has made
it possible to utilize half-precision floating-point (FP16) arithmetic for
faster speed and energy saving. Specializing in lower precision, NVIDIA Tensor
Cores can deliver extremely high computation performance. However, the fixed
computation pattern makes it hard to utilize the computing power of Tensor
Cores in FFT. Therefore, we developed tcFFT to accelerate FFT with Tensor
Cores. Our tcFFT supports batched 1D and 2D FFT of various sizes and it
exploits a set of optimizations to achieve high performance: 1) single-element
manipulation on Tensor Core fragments to support special operations needed by
FFT; 2) fine-grained data arrangement design to coordinate with the GPU memory
access pattern. We evaluated our tcFFT and the NVIDIA cuFFT in various sizes
and dimensions on NVIDIA V100 and A100 GPUs. The results show that our tcFFT
can outperform cuFFT 1.29x-3.24x and 1.10x-3.03x on the two GPUs, respectively.
Our tcFFT has a great potential for mixed-precision scientific applications.
