Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Brdz.cuh
1 #ifndef SKA_CHEETAH_BRDZ_CUDA_BRDZ_H
2 #define SKA_CHEETAH_BRDZ_CUDA_BRDZ_H
3 
4 #include "cheetah/brdz/cuda/Config.h"
5 #include "cheetah/brdz/Config.h"
6 #include "cheetah/data/FrequencySeries.h"
7 #include "cheetah/utils/Architectures.h"
8 #include "cheetah/utils/AlgorithmBase.h"
9 #include "cheetah/data/ComplexTypeTraits.h"
10 #include "panda/arch/nvidia/DeviceCapability.h"
11 
12 namespace ska {
13 namespace cheetah {
14 namespace brdz {
15 namespace cuda {
16 
20 class Brdz: utils::AlgorithmBase<Config,brdz::Config>
21 {
22  public:
23  typedef cheetah::Cuda Architecture;
24  typedef panda::nvidia::DeviceCapability<2,0, panda::nvidia::giga/2> ArchitectureCapability;
25  typedef panda::PoolResource<Architecture> ResourceType;
26 
27  public:
34  Brdz(Config const& impl_config, brdz::Config const& algo_config);
35  Brdz(Brdz const&) = delete;
36  Brdz(Brdz&&) = default;
37  ~Brdz();
38 
48  template <typename T, typename Alloc>
49  void process(ResourceType& gpu, data::FrequencySeries<Architecture,
50  typename data::ComplexTypeTraits<Architecture,T>::type,Alloc>& input);
51 };
52 
53 } //cuda
54 } //brdz
55 } //cheetah
56 } //ska
57 
58 #include "cheetah/brdz/cuda/detail/Brdz.cu"
59 
60 #endif //SKA_CHEETAH_BRDZ_CUDA_BRDZ_H
61 
62 
63 
64 
65 
66 
67 
68 
Configuration for the BRDZ module.
Definition: Config.h:43
void process(ResourceType &gpu, data::FrequencySeries< Architecture, typename data::ComplexTypeTraits< Architecture, T >::type, Alloc > &input)
Set to zero frequencies marked as birdies.
Definition: Brdz.cu:41
Brdz(Config const &impl_config, brdz::Config const &algo_config)
Create a new Brdz instance.
Configuration for the CUDA implementation of the brdz module.
Definition: Config.h:38
A helper class to determine the type of complex data for different architectures. ...
A container of Fourier series data.
Some limits and constants for FLDO.
Definition: Brdz.h:35
CUDA/Thrust implementation of the Brdz algorithm.
Definition: Brdz.cuh:20