24 #ifndef SKA_CHEETAH_FFT_ALTERA_FFT_H 25 #define SKA_CHEETAH_FFT_ALTERA_FFT_H 28 #include "cheetah/fft/altera/detail/FftWorker.h" 29 #endif // ENABLE_OPENCL 31 #include "cheetah/fft/altera/Config.h" 32 #include "cheetah/data/ComplexTypeTraits.h" 33 #include "cheetah/data/FrequencySeries.h" 34 #include "cheetah/data/TimeSeries.h" 35 #include "cheetah/utils/AlgorithmBase.h" 36 #include "cheetah/utils/Architectures.h" 37 #include "panda/DeviceLocal.h" 53 class Fft: utils::AlgorithmBase<Config, fft::Config>
57 typedef typename cheetah::Fpga Architecture;
59 using ComplexT =
typename data::ComplexTypeTraits<Architecture,T>::type;
62 typedef panda::PoolResource<Architecture> ResourceType;
65 Fft(fft::Config
const& algo_config);
66 Fft(Fft
const&) =
delete;
72 template <
typename T,
typename InputAlloc,
typename OutputAlloc>
73 void process(ResourceType& fpga,
74 data::TimeSeries<cheetah::Fpga,T,InputAlloc>
const& input,
75 data::FrequencySeries<cheetah::Fpga, ComplexT<T>, OutputAlloc>& output);
102 struct WorkerFactory {
104 WorkerFactory(fft::Config
const&);
105 FftWorker* operator()(panda::PoolResource<Architecture>
const& device);
108 fft::Config
const& _config;
112 panda::DeviceLocal<panda::PoolResource<Architecture>, WorkerFactory> _workers;
115 #else // ENABLE_OPENCL 121 typedef typename cheetah::Fpga Architecture;
126 #endif // ENABLE_OPENCL 133 #include "cheetah/fft/altera/detail/Fft.cpp" 135 #endif // SKA_CHEETAH_FFT_ALTERA_CXFT_H Configuration for the fft module.
Intel FPGA OpenCL FFT interface.
Some limits and constants for FLDO.