Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Tdrt.cu
1 #include "cheetah/tdrt/cuda/Tdrt.cuh"
2 #include "cheetah/tdrt/cuda/TdrtMap.cuh"
3 #include "cheetah/cuda_utils/cuda_thrust.h"
4 #include "panda/Log.h"
5 
6 namespace ska {
7 namespace cheetah {
8 namespace tdrt {
9 namespace cuda {
10 
11 
12 template <typename T, typename Alloc>
13 void Tdrt::process(ResourceType& gpu,
16  data::AccelerationType acceleration)
17 {
18  typedef thrust::counting_iterator<std::size_t> CountIt;
19  typedef thrust::transform_iterator< TdrtMap, CountIt > MapIt;
20  PANDA_LOG_DEBUG << "GPU ID: "<<gpu.device_id();
21  output.resize(input.size());
22  CountIt begin(0);
23  MapIt iter(begin, TdrtMap(acceleration, input.size(), input.sampling_interval()));
24  thrust::gather(thrust::cuda::par,
25  iter,
26  iter+input.size(),
27  input.begin(),
28  output.begin());
29  output.sampling_interval(input.sampling_interval());
30 }
31 
32 } //cuda
33 } //tdrt
34 } //cheetah
35 } //ska
TimeType const & sampling_interval() const
Retrive the sampling interval.
Definition: TimeSeries.cpp:64
Functor for remapping accelerated time series.
Definition: TdrtMap.cuh:21
Some limits and constants for FLDO.
Definition: Brdz.h:35
ConstIterator begin() const
Iterators to device memory.
Definition: Series.cpp:67
Class for time series data.
Definition: TimeSeries.h:47
void process(ResourceType &gpu, data::TimeSeries< Architecture, T, Alloc > const &input, data::TimeSeries< Architecture, T, Alloc > &output, data::AccelerationType acceleration)
Resample a time series to a given acceleration.
Definition: Tdrt.cu:13
void resize(std::size_t size)
resize the data
Definition: Series.cpp:115
std::size_t size() const
the size of the series
Definition: Series.cpp:109