CUDA/Thrust implementation of the Tdao module.
More...
|
typedef cheetah::Cuda | Architecture |
|
typedef panda::nvidia::DeviceCapability< 2, 0, panda::nvidia::giga/2 > | ArchitectureCapability |
|
typedef panda::PoolResource< Architecture > | ResourceType |
|
|
| Tdao (Config const &config, tdao::Config const &algo_config) |
| Construct a new Tdao object. More...
|
|
| Tdao (Tdao const &)=delete |
|
| Tdao (Tdao &&)=default |
|
template<typename T , typename Alloc > |
void | process (ResourceType &gpu, data::PowerSeries< Architecture, T, Alloc >const &input, data::Ccl &output, data::DedispersionMeasureType< float > dm, data::AccelerationType acc, std::size_t nharmonics) |
| Find peaks in a power series above a statistical threshold. More...
|
|
template<typename T > |
std::size_t | _execute (typename thrust::device_vector< T >::const_iterator in, std::size_t size, size_t offset, float threshold) |
|
| AlgorithmBase (Config const &impl_config, tdao::Config const &algo_config) |
|
| AlgorithmBase (AlgorithmBase const &)=delete |
|
| AlgorithmBase (AlgorithmBase &&)=default |
|
CUDA/Thrust implementation of the Tdao module.
Definition at line 26 of file Tdao.cuh.
◆ Tdao()
ska::cheetah::tdao::cuda::Tdao::Tdao |
( |
Config const & |
config, |
|
|
tdao::Config const & |
algo_config |
|
) |
| |
Construct a new Tdao object.
- Parameters
-
config | The implementation configuration |
algo_config | The algorithm configuration |
Definition at line 9 of file Tdao.cu.
10 : utils::AlgorithmBase<Config,tdao::Config>(config,algo_config)
◆ process()
template<typename T , typename Alloc >
void ska::cheetah::tdao::cuda::Tdao::process |
( |
ResourceType & |
gpu, |
|
|
data::PowerSeries< Architecture, T, Alloc >const & |
input, |
|
|
data::Ccl & |
output, |
|
|
data::DedispersionMeasureType< float > |
dm, |
|
|
data::AccelerationType |
acc, |
|
|
std::size_t |
nharmonics |
|
) |
| |
Find peaks in a power series above a statistical threshold.
- Parameters
-
| gpu | The gpu to process on |
| input | The input power series |
| output | The output candidate list |
[in] | dm | The dispersion measure of the power series |
[in] | acc | The acceleration value of the power series |
[in] | nharmonics | The number of harmonic sums performed to produce the power series |
- Template Parameters
-
T | The value type of the input |
Alloc | The allocator type of the input |
Definition at line 141 of file Tdao.cu.
148 PUSH_NVTX_RANGE(
"cuda_Tdao_process",0);
149 PANDA_LOG_DEBUG <<
"GPU ID: "<<gpu.device_id();
150 _prepare(input.size());
152 std::size_t end_bin = (std::size_t) (_algo_config.
maximum_frequency()/input.frequency_step()).value();
153 std::size_t start_bin = (std::size_t) (_algo_config.
minimum_frequency()/input.frequency_step()).value();
154 std::size_t size = std::min(end_bin,input.size());
155 PANDA_LOG_DEBUG <<
"Bin range to be searched -> ("<<start_bin<<
", "<<size<<
")";
156 PUSH_NVTX_RANGE(
"cuda_Tdao_process_execute_kernels",1);
157 std::size_t num_copied = _execute<T>(input.begin(),size,start_bin,power_threshold);
159 PANDA_LOG_DEBUG <<
"Found " << num_copied <<
" candidates above power threshold of " 160 << power_threshold <<
" (DM="<< dm <<
", Acc="<<acc<<
", unfiltered)";
161 PUSH_NVTX_RANGE(
"cuda_Tdao_process_filter_unique",2);
162 _filter_unique(input,output,num_copied,dm,acc,nharmonics);
data::FourierFrequencyType maximum_frequency() const
The maximum frequency to search for candidates at.
float significance_threshold() const
The significance threshold for candidates.
data::FourierFrequencyType minimum_frequency() const
The minumum frequency to search for candidates at.
The documentation for this class was generated from the following files: