24 #ifndef SKA_CHEETAH_FLDO_TEST_UTILS_FLDOUTILS_H 25 #define SKA_CHEETAH_FLDO_TEST_UTILS_FLDOUTILS_H 29 #include "cheetah/fldo/Types.h" 30 #include "cheetah/cuda_utils/cuda_errorhandling.h" 31 #include "panda/Error.h" 32 #include "panda/Log.h" 33 #include "panda/arch/nvidia/CudaDevicePointer.h" 66 CUDA_ERROR_CHECK(cudaEventCreateWithFlags(&event, cudaEventDisableTiming));
67 CUDA_ERROR_CHECK(cudaStreamCreate(&stream));
70 CUDA_ERROR_CHECK(cudaEventDestroy(event));
71 CUDA_ERROR_CHECK(cudaStreamDestroy(stream));
88 CUDA_ERROR_CHECK(cudaEventCreate(&_start_kernel));
89 CUDA_ERROR_CHECK(cudaEventCreate(&_stop_kernel));
93 CUDA_ERROR_CHECK(cudaEventDestroy(_start_kernel));
94 CUDA_ERROR_CHECK(cudaEventDestroy(_stop_kernel));
100 void gpu_event_start()
102 CUDA_ERROR_CHECK(cudaEventRecord(_start_kernel, 0));
108 void gpu_event_stop()
110 CUDA_ERROR_CHECK(cudaEventRecord(_stop_kernel, 0));
116 float gpu_elapsed_time()
119 CUDA_ERROR_CHECK(cudaEventSynchronize(_stop_kernel));
120 cudaEventElapsedTime(&gpu_time, _start_kernel, _stop_kernel);
125 cudaEvent_t _start_kernel;
126 cudaEvent_t _stop_kernel;
140 CUDA_ERROR_CHECK(cudaStreamCreate(&_stream));
145 CUDA_ERROR_CHECK(cudaStreamDestroy(_stream));
153 cudaStream_t
const &stream()
const 158 cudaStream_t _stream;
161 typedef data::Candidate<Cpu, float> CandidateType;
162 typedef data::TimeType TimeType;
164 void load_constant_data(
double *delta_freq,
double *nu,
double *nudot,
float *dm,
165 int *nbins,
int nchannels,
int nchan_per_subband,
size_t nsubint,
double tsamp,
168 void rebin_input_data(
int start,
int current,
int nchannels, std::vector<CandidateRebin>
const &rebin);
170 void fold_input_data(cudaDeviceProp properties,
float *d_folded,
float *d_weight,
int *nbins,
171 CandidateRebin
const &rebin,
int ncand,
int isubint,
int nchannels,
172 int nsubbands, uint64_t nsamp_subslot,
int default_max_phase,
double tobs,
173 bool enable_split, cudaStream_t
const exec_stream);
175 void statistics_float(
float *raw_in,
int N,
float *mean,
float *rms, cudaStream_t stream);
185 #endif // SKA_CHEETAH_FLDO_TEST_UTILS_FLDOUTIL_H Some limits and constants for FLDO.