ngscopeclient v0.2.2
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Averager Class Reference

Helper for GPU accelerated waveform averaging. More...

#include <Averager.h>

Collaboration diagram for Averager:
Collaboration graph
[legend]

Public Member Functions

template<class T >
 __attribute__ ((noinline)) float Average(T *wfm
 
cmdBuf begin ({})
 
m_temporaryResults resize (numThreads)
 
m_computePipeline BindBufferNonblocking (0, m_temporaryResults, cmdBuf, true)
 
m_computePipeline BindBufferNonblocking (1, wfm->m_samples, cmdBuf)
 
m_computePipeline Dispatch (cmdBuf, push, numThreads, 1)
 
m_temporaryResults MarkModifiedFromGpu ()
 
cmdBuf end ()
 
queue SubmitAndBlock (cmdBuf)
 
m_temporaryResults PrepareForCpuAccess ()
 
 for (uint64_t i=0;i< numThreads;i++) final Sum+
 

Public Attributes

vk::raii::CommandBuffer & cmdBuf
 
vk::raii::CommandBuffer std::shared_ptr< QueueHandle > queue
 
const uint64_t numThreads = 16384
 
size_t depth = wfm->size()
 
ReductionSumPushConstants push
 
push numSamples = depth
 
push numThreads = numThreads
 
push samplesPerThread = (depth + numThreads) / numThreads
 
float finalSum = 0
 
return finalSum depth
 

Protected Attributes

std::unique_ptr< ComputePipeline > m_computePipeline
 
AcceleratorBuffer< float > m_temporaryResults
 

Detailed Description

Helper for GPU accelerated waveform averaging.

Member Data Documentation

◆ queue

vk::raii::CommandBuffer std::shared_ptr<QueueHandle> Averager::queue
Initial value:
{
AssertTypeIsAnalogWaveform(wfm)
Definition AcceleratorBuffer.h:204

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