HOPS
HOPS class reference
MHO_MBDelaySearchCUDA.hh
Go to the documentation of this file.
1 #ifndef MHO_MBDelaySearchCUDA_HH__
2 #define MHO_MBDelaySearchCUDA_HH__
3 
4 #include <cmath>
5 #include <complex>
6 
7 #include "MHO_MBDelaySearch.hh"
8 
9 // CUDA includes
10 #include <cuComplex.h>
11 #include <cuda.h>
12 #include <cuda_runtime_api.h>
13 #include <cufft.h>
14 #include <stdint.h>
15 
16 namespace hops
17 {
18 
31 using mbd_axis_pack = MHO_AxisPack< time_axis_type >;
32 using mbd_dr_axis_pack = MHO_AxisPack< delay_rate_axis_type, time_axis_type >;
36 
40 class MHO_MBDelaySearchCUDA: public MHO_MBDelaySearch //public MHO_InspectingOperator< visibility_type >
41 {
42  public:
44  virtual ~MHO_MBDelaySearchCUDA();
45 
46  protected:
48 
56  virtual bool InitializeImpl(const XArgType* in) override;
64  virtual bool ExecuteImpl(const XArgType* in) override;
65 
66  private:
67  //Host data buffer
68  mbd_dr_type fHostBuffer;
69  //Device memory buffer
70  cufftDoubleComplex* fDeviceBuffer;
71  //the cuFFT plan
72  cufftHandle fCUFFTPlan;
73 };
74 
75 } // namespace hops
76 
77 #endif
Class MHO_MBDelaySearchCUDA.
Definition: MHO_MBDelaySearchCUDA.hh:41
virtual bool InitializeImpl(const XArgType *in) override
Initializes MHO_MBDelaySearchCUDA with input arguments and calculates frequency grid for MBD search.
Definition: MHO_MBDelaySearchCUDA.cc:15
MHO_MBDelaySearchCUDA()
Definition: MHO_MBDelaySearchCUDA.cc:6
virtual ~MHO_MBDelaySearchCUDA()
Definition: MHO_MBDelaySearchCUDA.cc:9
virtual bool ExecuteImpl(const XArgType *in) override
Executes MBDelaySearch algorithm using provided input arguments.
Definition: MHO_MBDelaySearchCUDA.cc:107
Class MHO_MBDelaySearch.
Definition: MHO_MBDelaySearch.hh:41
Definition: MHO_ChannelLabeler.hh:17
MHO_TableContainer< visibility_element_type, mbd_axis_pack > mbd_type
Definition: MHO_MBDelaySearch.hh:34
MHO_TableContainer< double, mbd_axis_pack > mbd_amp_type
Definition: MHO_MBDelaySearch.hh:35
MHO_TableContainer< visibility_element_type, mbd_dr_axis_pack > mbd_dr_type
Definition: MHO_BaselineContainers.hh:57
MHO_AxisPack< time_axis_type, delay_rate_axis_type > mbd_dr_axis_pack
Definition: MHO_BaselineContainers.hh:50
MHO_AxisPack< time_axis_type > mbd_axis_pack
Definition: MHO_MBDelaySearch.hh:33
MHO_TableContainer< visibility_element_type, baseline_axis_pack > visibility_type
Definition: MHO_BaselineContainers.hh:52