Dedisperser(Filterbank& filterbank, unsigned int num_gpus=1) :filterbank(filterbank), num_gpus(num_gpus) { killmask.resize(filterbank.get_nchans(),1); dedisp_error error = dedisp_create_plan_multi(&plan, filterbank.get_nchans(), filterbank.get_tsamp(), filterbank.get_fch1(), filterbank.get_foff(), num_gpus); ErrorChecker::check_dedisp_error(error,"create_plan_multi"); }
Dedisperser(Filterbank& filterbank, std::vector<int> gpu_ids, unsigned int num_gpus=1) // new dedisperser constructor using GPU IDs specified by the user :filterbank(filterbank), gpu_ids(gpu_ids), num_gpus(num_gpus) { killmask.resize(filterbank.get_nchans(),1); dedisp_error error = dedisp_create_plan_multi(&plan, // dedisp_create_plan_multi is a part of dedisp library in file dedisp.cu filterbank.get_nchans(), filterbank.get_tsamp(), filterbank.get_fch1(), filterbank.get_foff(), filterbank.get_mean(), filterbank.get_std_dev(), filterbank.get_mean_array(), filterbank.get_stdev_array(), filterbank.get_chunk_nsamps(), num_gpus, gpu_ids); ErrorChecker::check_dedisp_error(error,"create_plan_multi"); }