24 #include "cheetah/tdas/Tdas.h" 25 #include "panda/Error.h" 26 #include "panda/Log.h" 35 , _implementations(cuda::
Tdas<T>(_config.cuda_config(),_config))
40 template <
typename Arch,
typename... Args>
45 auto& algo = _implementations.template get<Arch>();
46 return algo.process(resource, data, std::forward<Args>(args)...);
55 template <
typename T,
typename Handler>
59 , _task(_config.pool(), handler)
61 if(_config.cuda_config().active()) {
68 PANDA_LOG <<
"tdas::cuda algorithm activated";
69 _task.template set_algorithms<cuda::Tdas<T>>(
cuda::Tdas<T>(_config.cuda_config(),_config));
71 throw panda::Error(
"tdas::cuda algorithm requested on ENABLE_CUDA=False build");
76 PANDA_LOG_WARN <<
"No Time Domain Accelerated Search algorithm has been specified";
80 template <
typename T,
typename Handler>
85 template <
typename T,
typename Handler>
88 PANDA_LOG_DEBUG <<
"Tdas::operator() invoked" 89 <<
"Num blocks in DmTime object: " << (data->blocks()).size();
91 for (
auto it = data->begin(_config.dm_trials_per_task()); it < data->end(); ++it)
93 std::shared_ptr<DmTimeSliceType> slice = *it;
94 PANDA_LOG_DEBUG <<
"First DM in slice: " << (*(slice->cbegin())).dm();
96 PANDA_LOG_DEBUG <<
"Tdas::operator() " << _config.dm_trials_per_task() <<
" DM trials submitted for processing";
Top-level synchronous interface for the Tdas module.
Class that wraps a subset of DMs from a DmTime object.
Async + Sync mixed interface for Tdas.
Some limits and constants for FLDO.
std::shared_ptr< data::Ccl > process(panda::PoolResource< Arch > &resource, DmTimeSliceType const &data, Args &&... args)
Process a DmTimeSlice in search of significant periodic signals over a range of acceleration values...
Tdas(ConfigType const &config, Handler &handler)
Construct a new Tdas instance.
TdasBase(Config const &config)
Construct a new TdasBase instance.
CUDA/Thrust implementation of the Tdas module.