24 #ifndef SKA_CHEETAH_DDTR_ASTROACCELERATE_DDTR_H 25 #define SKA_CHEETAH_DDTR_ASTROACCELERATE_DDTR_H 27 #include "DdtrWorker.h" 28 #include "DedispersionPlan.h" 29 #include "cheetah/ddtr/Config.h" 30 #include <panda/DeviceLocal.h> 35 namespace astroaccelerate {
41 template<
typename DdtrTraits>
44 typedef typename DdtrTraits::value_type NumericalT;
45 typedef typename DdtrTraits::DedispersionHandler DedispersionHandler;
46 typedef typename DdtrTraits::DmTrialsType DmTrialsType;
47 typedef typename DdtrTraits::TimeFrequencyType TimeFrequencyType;
49 typedef ddtr::Config::Dm Dm;
50 typedef typename DdtrTraits::BufferFillerType BufferFillerType;
51 typedef typename DdtrTraits::BufferType BufferType;
52 typedef std::vector<ddtr::Config::Dm> DmListType;
53 typedef typename TimeFrequencyType::FrequencyType FrequencyType;
54 typedef typename TimeFrequencyType::TimeType TimeType;
55 typedef std::vector<FrequencyType> FrequencyListType;
58 typedef cheetah::Cuda Architecture;
59 typedef panda::nvidia::DeviceCapability<3, 5, panda::nvidia::giga> ArchitectureCapability;
68 std::shared_ptr<DmTrialsType> operator()(panda::PoolResource<cheetah::Cuda>& gpu, BufferType
const& data);
75 void operator()(TimeFrequencyType
const& data);
77 void plan(DedispersionPlan
const& plan)
79 _plan = std::make_shared<DedispersionPlan>(plan);
85 std::size_t set_dedispersion_strategy(std::size_t min_gpu_memory, TimeFrequencyType
const& tf_data, panda::PoolResource<cheetah::Cuda>
const& gpu);
92 std::shared_ptr<DedispersionPlan> _plan;
93 std::unique_ptr<DdtrWorkerFactory> _factory;
94 panda::DeviceLocal<panda::PoolResource<cheetah::Cuda>,
DdtrWorkerFactory> _workers;
102 #include "detail/Ddtr.cpp" 104 #endif // SKA_CHEETAH_DDTR_ASTROACCELERATE_DDTR_H an nvidia CUDA gpu algorithm for dedispersion
Some limits and constants for FLDO.