Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Classes | Public Types | Public Member Functions | List of all members
ska::cheetah::dred::cuda::Dred< T > Class Template Reference

CUDA/Thrust implementation of the Dred algorithm. More...

#include <cheetah/dred/cuda/Dred.h>

Inheritance diagram for ska::cheetah::dred::cuda::Dred< T >:
Inheritance graph
Collaboration diagram for ska::cheetah::dred::cuda::Dred< T >:
Collaboration graph

Public Types

typedef cheetah::Cuda Architecture
 
typedef panda::nvidia::DeviceCapability< 2, 0, panda::nvidia::giga/2 > ArchitectureCapability
 
typedef panda::PoolResource< Architecture > ResourceType
 
- Public Types inherited from ska::cheetah::utils::Mock< cheetah::Cuda, Config const &, dred::Config const &>
typedef cheetah::Cuda Architecture
 

Public Member Functions

 Dred (Config const &impl_config, dred::Config const &algo_config)
 Create a new Dred instance. More...
 
 Dred (Dred const &)=delete
 
 Dred (Dred &&)=default
 
template<typename Alloc >
void process (panda::PoolResource< cheetah::Cuda > &resource, data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc >const &input, data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc > &output, data::AccelerationType maximum_acceleration)
 Deredden a complex fourier spectrum. More...
 
template<typename Alloc >
void process (ResourceType &gpu, data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc > const &input, data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc > &output, data::AccelerationType maximum_acceleration)
 
- Public Member Functions inherited from ska::cheetah::utils::Mock< cheetah::Cuda, Config const &, dred::Config const &>
 Mock (Args &&...)
 
void operator() (OperatorArgs &&...)
 
- Public Member Functions inherited from ska::cheetah::utils::AlgorithmBase< Config, dred::Config >
 AlgorithmBase (Config const &impl_config, dred::Config const &algo_config)
 
 AlgorithmBase (AlgorithmBase const &)=delete
 
 AlgorithmBase (AlgorithmBase &&)=default
 

Additional Inherited Members

- Protected Attributes inherited from ska::cheetah::utils::AlgorithmBase< Config, dred::Config >
Config const & _impl_config
 
dred::Config const & _algo_config
 

Detailed Description

template<typename T>
class ska::cheetah::dred::cuda::Dred< T >

CUDA/Thrust implementation of the Dred algorithm.

Mock interface for dred to support implementation in absence of CUDA.

This implementation of Dred uses median of 5 based filtering to produce a series of increasingly smoothed baseline estimates. Based on being passed a maximum acceleration parameter the smoothing window for each frequency in calculated so that acceleration smeared signals are preserved.

Template Parameters
TThe base type of the complex data to be dereddened
TThe value type of the data to be dereddened

Definition at line 33 of file Dred.cuh.

Constructor & Destructor Documentation

◆ Dred()

template<typename T >
ska::cheetah::dred::cuda::Dred< T >::Dred ( Config const &  impl_config,
dred::Config const &  algo_config 
)

Create a new Dred instance.

Parameters
impl_configThe implementation configuration
algo_configThe algorithm configuration

Definition at line 12 of file Dred.cu.

13  : utils::AlgorithmBase<Config,dred::Config>(config, algo_config)
14  , _pwft(_algo_config.pwft_config())
15 {
16 }
pwft::Config const & pwft_config() const
Configuration object for pwft module used by dred.
Definition: Config.cpp:56
Here is the call graph for this function:

Member Function Documentation

◆ process()

template<typename T>
template<typename Alloc >
void ska::cheetah::dred::cuda::Dred< T >::process ( panda::PoolResource< cheetah::Cuda > &  resource,
data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc >const &  input,
data::FrequencySeries< cheetah::Cuda, ComplexType, Alloc > &  output,
data::AccelerationType  maximum_acceleration 
)

Deredden a complex fourier spectrum.

Parameters
resourceThe resource to process on
inputThe input
outputThe output
[in]maximum_accelerationThe maximum acceleration
Template Parameters
AllocThe allocator type of the input and output

The documentation for this class was generated from the following files: