1 #ifndef SKA_CHEETAH_FFT_CUDA_FFT_H 2 #define SKA_CHEETAH_FFT_CUDA_FFT_H 4 #include "cheetah/fft/FftType.h" 5 #include "cheetah/fft/cuda/FftPlan.cuh" 6 #include "cheetah/fft/cuda/Config.h" 7 #include "cheetah/fft/Config.h" 8 #include "cheetah/data/FrequencySeries.h" 9 #include "cheetah/data/TimeSeries.h" 10 #include "cheetah/data/ComplexTypeTraits.h" 11 #include "cheetah/utils/AlgorithmBase.h" 13 #include "panda/arch/nvidia/DeviceCapability.h" 44 typedef cheetah::Cuda Architecture;
45 typedef panda::nvidia::DeviceCapability<2,0, panda::nvidia::giga/2> ArchitectureCapability;
46 typedef panda::PoolResource<Architecture> ResourceType;
77 template <
typename T,
typename InputAlloc,
typename OutputAlloc>
101 template <
typename T,
typename InputAlloc,
typename OutputAlloc>
102 void process(ResourceType& gpu,
125 template <
typename T,
typename InputAlloc,
typename OutputAlloc>
126 void process(ResourceType& gpu,
127 data::TimeSeries<cheetah::Cuda, thrust::complex<T>, InputAlloc>
const& input,
149 template <
typename T,
typename InputAlloc,
typename OutputAlloc>
150 void process(ResourceType& gpu,
163 #include "cheetah/fft/cuda/detail/Fft.cu" 165 #endif // SKA_CHEETAH_FFT_CUDA_FFT_H Configuration for the fft module.
A cuda-specific implementation of the fft module.
void process(ResourceType &gpu, data::TimeSeries< cheetah::Cuda, T, InputAlloc > const &input, data::FrequencySeries< cheetah::Cuda, typename data::ComplexTypeTraits< cheetah::Cuda, T >::type, OutputAlloc > &output)
Perform a real-to-complex 1D FFT.
A helper class to determine the type of complex data for different architectures. ...
A container of Fourier series data.
Fft(fft::Config const &algo_config)
Construct and Fft instance.
Some limits and constants for FLDO.
Class for time series data.