walberla::gpu::GeneratedNonUniformGPUPackInfo Class Referenceabstract

#include <GeneratedNonUniformGPUPackInfo.h>

+ Inheritance diagram for walberla::gpu::GeneratedNonUniformGPUPackInfo:

Public Member Functions

 GeneratedNonUniformGPUPackInfo ()=default
 
virtual ~GeneratedNonUniformGPUPackInfo ()=default
 
virtual bool constantDataExchange () const =0
 
virtual bool threadsafeReceiving () const =0
 
void packDataEqualLevel (const Block *sender, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
virtual void unpackDataEqualLevel (Block *receiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream)=0
 
virtual void communicateLocalEqualLevel (const Block *sender, Block *receiver, stencil::Direction dir, gpuStream_t stream)=0
 
void packDataCoarseToFine (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
virtual void unpackDataCoarseToFine (Block *fineReceiver, const BlockID &coarseSender, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream)=0
 
virtual void communicateLocalCoarseToFine (const Block *coarseSender, Block *fineReceiver, stencil::Direction dir, gpuStream_t stream)=0
 
virtual void communicateLocalCoarseToFine (const Block *coarseSender, Block *fineReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream)=0
 
void packDataFineToCoarse (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
virtual void unpackDataFineToCoarse (Block *coarseReceiver, const BlockID &fineSender, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream)=0
 
virtual void communicateLocalFineToCoarse (const Block *fineSender, Block *coarseReceiver, stencil::Direction dir, gpuStream_t stream)=0
 
virtual void communicateLocalFineToCoarse (const Block *fineSender, Block *coarseReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream)=0
 
virtual uint_t sizeEqualLevelSend (const Block *sender, stencil::Direction dir)=0
 
virtual uint_t sizeCoarseToFineSend (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir)=0
 
virtual uint_t sizeCoarseToFineReceive (Block *fineReceiver, stencil::Direction dir)=0
 
virtual uint_t sizeFineToCoarseSend (const Block *fineSender, stencil::Direction dir)=0
 
void clearBufferSizeCheckMap ()
 

Protected Member Functions

virtual void packDataEqualLevelImpl (const Block *sender, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream) const =0
 
virtual void packDataCoarseToFineImpl (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream) const =0
 
virtual void packDataFineToCoarseImpl (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream) const =0
 

Protected Attributes

std::map< const Block *, std::map< stencil::Direction, std::map< uint_t, size_t > > > bufferSize_
 

Constructor & Destructor Documentation

◆ GeneratedNonUniformGPUPackInfo()

walberla::gpu::GeneratedNonUniformGPUPackInfo::GeneratedNonUniformGPUPackInfo ( )
default

◆ ~GeneratedNonUniformGPUPackInfo()

virtual walberla::gpu::GeneratedNonUniformGPUPackInfo::~GeneratedNonUniformGPUPackInfo ( )
virtualdefault

Member Function Documentation

◆ clearBufferSizeCheckMap()

void walberla::gpu::GeneratedNonUniformGPUPackInfo::clearBufferSizeCheckMap ( )
inline

◆ communicateLocalCoarseToFine() [1/2]

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalCoarseToFine ( const Block coarseSender,
Block fineReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
)
pure virtual

◆ communicateLocalCoarseToFine() [2/2]

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalCoarseToFine ( const Block coarseSender,
Block fineReceiver,
stencil::Direction  dir,
gpuStream_t  stream 
)
pure virtual

◆ communicateLocalEqualLevel()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalEqualLevel ( const Block sender,
Block receiver,
stencil::Direction  dir,
gpuStream_t  stream 
)
pure virtual

◆ communicateLocalFineToCoarse() [1/2]

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalFineToCoarse ( const Block fineSender,
Block coarseReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
)
pure virtual

◆ communicateLocalFineToCoarse() [2/2]

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalFineToCoarse ( const Block fineSender,
Block coarseReceiver,
stencil::Direction  dir,
gpuStream_t  stream 
)
pure virtual

◆ constantDataExchange()

virtual bool walberla::gpu::GeneratedNonUniformGPUPackInfo::constantDataExchange ( ) const
pure virtual

◆ packDataCoarseToFine()

void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataCoarseToFine ( const Block coarseSender,
const BlockID fineReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream = nullptr 
) const
inline

◆ packDataCoarseToFineImpl()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataCoarseToFineImpl ( const Block coarseSender,
const BlockID fineReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
) const
protectedpure virtual

◆ packDataEqualLevel()

void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataEqualLevel ( const Block sender,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream = nullptr 
) const
inline

◆ packDataEqualLevelImpl()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataEqualLevelImpl ( const Block sender,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
) const
protectedpure virtual

◆ packDataFineToCoarse()

void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataFineToCoarse ( const Block fineSender,
const BlockID coarseReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream = nullptr 
) const
inline

◆ packDataFineToCoarseImpl()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::packDataFineToCoarseImpl ( const Block fineSender,
const BlockID coarseReceiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
) const
protectedpure virtual

◆ sizeCoarseToFineReceive()

virtual uint_t walberla::gpu::GeneratedNonUniformGPUPackInfo::sizeCoarseToFineReceive ( Block fineReceiver,
stencil::Direction  dir 
)
pure virtual

◆ sizeCoarseToFineSend()

virtual uint_t walberla::gpu::GeneratedNonUniformGPUPackInfo::sizeCoarseToFineSend ( const Block coarseSender,
const BlockID fineReceiver,
stencil::Direction  dir 
)
pure virtual

◆ sizeEqualLevelSend()

virtual uint_t walberla::gpu::GeneratedNonUniformGPUPackInfo::sizeEqualLevelSend ( const Block sender,
stencil::Direction  dir 
)
pure virtual

◆ sizeFineToCoarseSend()

virtual uint_t walberla::gpu::GeneratedNonUniformGPUPackInfo::sizeFineToCoarseSend ( const Block fineSender,
stencil::Direction  dir 
)
pure virtual

◆ threadsafeReceiving()

virtual bool walberla::gpu::GeneratedNonUniformGPUPackInfo::threadsafeReceiving ( ) const
pure virtual

◆ unpackDataCoarseToFine()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::unpackDataCoarseToFine ( Block fineReceiver,
const BlockID coarseSender,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
)
pure virtual

◆ unpackDataEqualLevel()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::unpackDataEqualLevel ( Block receiver,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
)
pure virtual

◆ unpackDataFineToCoarse()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::unpackDataFineToCoarse ( Block coarseReceiver,
const BlockID fineSender,
stencil::Direction  dir,
GpuBuffer_T buffer,
gpuStream_t  stream 
)
pure virtual

Member Data Documentation

◆ bufferSize_

std::map< const Block *, std::map< stencil::Direction, std::map< uint_t, size_t > > > walberla::gpu::GeneratedNonUniformGPUPackInfo::bufferSize_
mutableprotected

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