예제 #1
0
  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");
  }
예제 #2
0
  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");
  }