Cuda implementation of the Power Spectrum Fourier Transform module.
More...
|
typedef cheetah::Cuda | Architecture |
|
typedef panda::nvidia::DeviceCapability< 2, 0, panda::nvidia::giga/2 > | ArchitectureCapability |
|
typedef panda::PoolResource< Architecture > | ResourceType |
|
|
| Pwft (Config const &config, pwft::Config const &algo_config) |
| Construct a new instance. More...
|
|
| Pwft (Pwft const &)=delete |
|
| Pwft (Pwft &&)=default |
|
template<typename T , typename InputAlloc , typename OutputAlloc > |
void | process_direct (ResourceType &gpu, data::FrequencySeries< Architecture, typename data::ComplexTypeTraits< cheetah::Cuda, T >::type, InputAlloc > const &input, data::PowerSeries< Architecture, T, OutputAlloc > &output) |
| Form power spectrum using absolute squared. More...
|
|
template<typename T , typename InputAlloc , typename OutputAlloc > |
void | process_nn (ResourceType &gpu, data::FrequencySeries< Architecture, typename data::ComplexTypeTraits< cheetah::Cuda, T >::type, InputAlloc > const &input, data::PowerSeries< Architecture, T, OutputAlloc > &output) |
| Form power spectrum using absolute squared with nearest neighbour comparison. More...
|
|
Cuda implementation of the Power Spectrum Fourier Transform module.
Definition at line 25 of file Pwft.cuh.
◆ Pwft()
ska::cheetah::pwft::cuda::Pwft::Pwft |
( |
Config const & |
config, |
|
|
pwft::Config const & |
algo_config |
|
) |
| |
Construct a new instance.
- Parameters
-
Definition at line 10 of file Pwft.cu.
11 : utils::AlgorithmBase<Config, pwft::Config>(config,algo_config)
◆ process_direct()
template<typename T , typename InputAlloc , typename OutputAlloc >
Form power spectrum using absolute squared.
Each power measurement is found by output[i] = |input[i]|^2
- Parameters
-
| gpu | The gpu resource to process on |
[in] | input | A FrequencySeries object of complex data type |
[out] | output | A FrequencySeries object of real data type |
- Template Parameters
-
T | The value type of the input and output FrequencySeries |
InputAlloc | The allocator type of the input FrequencySeries |
OutputAlloc | The allocator type of the output FrequencySeries |
Definition at line 45 of file Pwft.cu.
49 PANDA_LOG_DEBUG <<
"GPU ID: "<<gpu.device_id();
50 output.resize(input.size());
51 output.frequency_step(input.frequency_step());
52 output.degrees_of_freedom(2.0);
53 thrust::transform(thrust::cuda::par,
55 input.end(),output.begin(),
56 detail::FormPower<T>());
◆ process_nn()
template<typename T , typename InputAlloc , typename OutputAlloc >
Form power spectrum using absolute squared with nearest neighbour comparison.
Each power measurement is found by comparing neighbouring bins such that output[i] = max(|input[i]|^2, |input[i]-input[i-1]|^2)
- Parameters
-
| gpu | The gpu resource to process on |
[in] | input | A FrequencySeries object of complex data type |
[out] | output | A FrequencySeries object of real data type |
- Template Parameters
-
T | The value type of the input and output FrequencySeries |
InputAlloc | The allocator type of the input FrequencySeries |
OutputAlloc | The allocator type of the output FrequencySeries |
Definition at line 60 of file Pwft.cu.
64 PANDA_LOG_DEBUG <<
"GPU ID: "<<gpu.device_id();
65 output.resize(input.size());
66 output.frequency_step(input.frequency_step());
67 output.degrees_of_freedom(2.0+RSQRT2);
69 thrust::transform(thrust::cuda::par,
70 input.begin()+1, input.end(),
71 input.begin(), output.begin()+1,
72 detail::FormPowerNN<T>());
The documentation for this class was generated from the following files: