1 #ifndef SKA_CHEETAH_TDAO_CUDA_TDAO_H 2 #define SKA_CHEETAH_TDAO_CUDA_TDAO_H 4 #include "cheetah/tdao/Config.h" 5 #include "cheetah/tdao/cuda/Config.h" 6 #include "cheetah/data/PowerSeries.h" 7 #include "cheetah/data/CachingAllocator.h" 8 #include "cheetah/data/Ccl.h" 9 #include "cheetah/data/Units.h" 10 #include "cheetah/data/DedispersionMeasure.h" 11 #include "cheetah/utils/Architectures.h" 12 #include "cheetah/utils/AlgorithmBase.h" 13 #include "cheetah/cuda_utils/cuda_thrust.h" 15 #include "panda/arch/nvidia/DeviceCapability.h" 30 typedef cheetah::Cuda Architecture;
31 typedef panda::nvidia::DeviceCapability<2,0, panda::nvidia::giga/2> ArchitectureCapability;
32 typedef panda::PoolResource<Architecture> ResourceType;
59 template <
typename T,
typename Alloc>
63 data::DedispersionMeasureType<float> dm,
64 data::AccelerationType acc,
65 std::size_t nharmonics);
73 void _prepare(std::size_t size);
79 template <
typename PowerSeriesType>
80 void _filter_unique(PowerSeriesType
const& input,
82 std::size_t num_copied,
83 data::DedispersionMeasureType<float> dm,
84 data::AccelerationType acc,
85 std::size_t nharmonics);
90 template <
typename PowerSeriesType>
94 PowerSeriesType
const& input,
95 data::DedispersionMeasureType<float> dm,
97 std::size_t nharmonics);
102 template <
typename T>
103 std::size_t _execute(
typename thrust::device_vector<T>::const_iterator in, std::size_t size,
104 std::size_t offset,
float threshold);
107 thrust::device_vector<unsigned> _idxs;
108 thrust::device_vector<float> _powers;
109 thrust::host_vector<unsigned> _h_idxs;
110 thrust::host_vector<float> _h_powers;
118 #include "cheetah/tdao/cuda/detail/Tdao.cu" 120 #endif // SKA_CHEETAH_TDAO_CUDA_TDAO_H
void process(ResourceType &gpu, data::PowerSeries< Architecture, T, Alloc >const &input, data::Ccl &output, data::DedispersionMeasureType< float > dm, data::AccelerationType acc, std::size_t nharmonics)
Find peaks in a power series above a statistical threshold.
Some limits and constants for FLDO.
Class for power series (detected FrequencySeries).
CUDA/Thrust implementation of the Tdao module.
Tdao(Config const &config, tdao::Config const &algo_config)
Construct a new Tdao object.
A simple record to hold 'candidate' proprerties.