24 #ifndef SKA_CHEETAH_DDTR_FPGA_DDTR_H 25 #define SKA_CHEETAH_DDTR_FPGA_DDTR_H 27 #include "cheetah/ddtr/fpga/DdtrWorker.h" 28 #include "cheetah/ddtr/fpga/Config.h" 29 #include "cheetah/ddtr/Config.h" 30 #include "cheetah/ddtr/detail/CommonTypes.h" 31 #include "cheetah/utils/Architectures.h" 32 #include "panda/DeviceLocal.h" 33 #include "panda/arch/altera/Fpga.h" 46 template<
typename DdtrTraits>
50 typedef typename cheetah::Fpga Architecture;
54 typedef typename DdtrTraits::ConfigType ConfigType;
55 typedef typename DdtrTraits::DmTrialsType DmTrialsType;
56 typedef typename DdtrTraits::BufferFillerType BufferFillerType;
57 typedef typename DdtrTraits::TimeFrequencyType TimeFrequencyType;
58 typedef typename DdtrTraits::BufferType BufferType;
59 typedef typename DdtrTraits::DedispersionHandler DedispersionHandler;
61 typedef std::vector<ddtr::Config::Dm> DmListType;
62 typedef ddtr::Config::Dm Dm;
63 typedef typename TimeFrequencyType::FrequencyType FrequencyType;
64 typedef typename TimeFrequencyType::TimeType TimeType;
67 Ddtr(ConfigType
const&);
72 template<
typename TimeFrequencyT>
73 void operator()(TimeFrequencyT
const& input);
74 void operator()(panda::PoolResource<Architecture>& device, BufferType
const& data);
77 void init(TimeFrequencyType
const&);
80 struct WorkerFactory {
95 DedispersionHandler _dedispersion_handler;
96 panda::DeviceLocal<panda::PoolResource<Architecture>, WorkerFactory> _workers;
97 std::unique_ptr<BufferFillerType> _agg_buffer_filler_ptr;
98 std::size_t _max_delay;
99 std::size_t _dedispersion_samples;
101 std::vector<double> _dm_factors;
102 std::size_t _dev_memory;
110 #include "cheetah/ddtr/fpga/detail/Ddtr.cpp" 111 #endif // SKA_CHEETAH_DDTR_FPGA_DDTR_H Execute the ddtr kernel on a specific device.
Interface for the Altera fpga algorithm.
Some limits and constants for FLDO.