Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Tdas.cuh
1 #ifndef SKA_CHEETAH_TDAS_CUDA_TDAS_H
2 #define SKA_CHEETAH_TDAS_CUDA_TDAS_H
3 
4 #include "cheetah/tdas/cuda/Config.h"
5 #include "cheetah/tdas/Config.h"
6 #include "cheetah/tdrt/Tdrt.h"
7 #include "cheetah/tdao/Tdao.h"
8 #include "cheetah/pwft/Pwft.h"
9 #include "cheetah/hrms/Hrms.h"
10 #include "cheetah/fft/Fft.h"
11 #include "cheetah/brdz/Brdz.h"
12 #include "cheetah/dred/Dred.h"
13 #include "cheetah/utils/Architectures.h"
14 #include "cheetah/utils/AlgorithmBase.h"
15 #include "cheetah/data/Ccl.h"
16 #include "cheetah/data/DmTrials.h"
17 #include "cheetah/data/DmTime.h"
18 #include "cheetah/data/detail/DmTimeSlice.h"
19 #include "panda/arch/nvidia/DeviceCapability.h"
20 
21 namespace ska {
22 namespace cheetah {
23 namespace tdas {
24 namespace cuda {
25 
33 template <typename T>
34 class Tdas
35  : public utils::AlgorithmBase<Config, tdas::Config>
36 {
37  private:
41 
42  public:
43  typedef cheetah::Cuda Architecture;
44  typedef panda::nvidia::DeviceCapability<2,0, panda::nvidia::giga/2> ArchitectureCapability; // minimum device requirements
45 
46  public:
47 
54  Tdas(Config const& config, tdas::Config const& algo_config);
55  Tdas(Tdas const&) = delete;
56  Tdas(Tdas&&) = default;
57  ~Tdas();
58 
68  std::shared_ptr<data::Ccl> process(panda::PoolResource<cheetah::Cuda>& gpu,
69  DmTimeSliceType const& data);
70 
74  std::shared_ptr<data::Ccl> operator()(panda::PoolResource<cheetah::Cuda>& gpu,
75  std::shared_ptr<DmTimeSliceType> const& data);
76 };
77 
78 
79 } // namespace cuda
80 } // namespace tdas
81 } // namespace cheetah
82 } // namespace ska
83 
84 #endif // SKA_CHEETAH_TDAS_CUDA_TDAS_H
std::shared_ptr< data::Ccl > operator()(panda::PoolResource< cheetah::Cuda > &gpu, std::shared_ptr< DmTimeSliceType > const &data)
Version of process method for async calls.
Class that wraps a subset of DMs from a DmTime object.
Definition: DmTimeSlice.h:54
Tdas(Config const &config, tdas::Config const &algo_config)
Construct a new Tdas instance.
Definition: Tdas.cu:11
Some limits and constants for FLDO.
Definition: Brdz.h:35
CUDA/Thrust implementation of the Tdas module.
Definition: Tdas.cuh:34
A continuous memory container for dispersion measure trials of varying downsamplings.
Definition: DmTrials.h:62
A wrapper class for a list of DmTime instances.
std::shared_ptr< data::Ccl > process(panda::PoolResource< cheetah::Cuda > &gpu, DmTimeSliceType const &data)
Search a DmTimeSlice for significant periodic signals at a range of accelerations.
Definition: Tdas.cu:22