ATS-GPU-NUFFT is an extension for the ATS-GPU-OCT Signal Processing Library that allows non-uniform FFTs to be performed on data acquired uniformly in time domain using a fixed sampling rate. ATS-GPU-NUFFT requires ATS-GPU-BASE and ATS-GPU-OCT (sold separately).

Benchmarks have shown rates up to 1.2 Million FFT/sec. for preset linearization and up to 830,000 FFT/sec. for k-clock linearization for 2048-point FFTs.

ATS-GPU-NUFFT is callable from C/C++, C#, LabVIEW®, MATLAB®, and Python. Since these programming environments cannot call CUDA functions directly, the internal structure of ATS-GPU-NUFFT is fixed and cannot be modified by the user. Users are still allowed to download their own window function, dispersion compensation function, set zero-padding and select output data format.

AlazarTech On
Google Scholar


  • Very high-speed floating-point FFT on data that is uniformly sampled in time
  • Dispersion Compensation, Zero Padding, Log, and Windowing Functions
  • Up to 6.9 GB/s transfer rate for PCIe Gen 3 digitizer boards
  • Supports CUDA-enabled GPUs with compute capability 3.0 and higher
  • Designed to work with AlazarTech PCI Express waveform digitizers
  • Includes ATS-CUDA-NUFFT for expert-level GPU programmers
  • Compatible with 64-bit Windows & 64-bit Linux
  • Requires ATS-GPU-BASE and ATS-GPU-OCT 

Access to low-level API for customization

For expert-level GPU programmers who want to modify the inner workings of ATS-GPU-NUFFT, we offer ATS-CUDA-NUFFT. Included with ATS-GPU-NUFFT, ATS-CUDA-NUFFT implements non-uniform data processing using a lower level API, thus making it possible for each part of the signal processing chain to be modified to suit the application needs. ATS-CUDA-NUFFT is callable only from C/C++ and requires advanced GPU programming, debugging and benchmarking expertise.