waLBerla 7.2
Loading...
Searching...
No Matches
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 addForLocalEqualLevelComm (const Block *sender, Block *receiver, stencil::Direction dir)=0
 
virtual void communicateLocalEqualLevel (uint64_t level, uint8_t timestep, 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) const =0
 
virtual uint_t sizeCoarseToFineSend (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir) const =0
 
virtual uint_t sizeCoarseToFineReceive (Block *fineReceiver, stencil::Direction dir) const =0
 
virtual uint_t sizeFineToCoarseSend (const Block *fineSender, stencil::Direction dir) const =0
 
virtual void sync ()=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

◆ addForLocalEqualLevelComm()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::addForLocalEqualLevelComm ( const Block * sender,
Block * receiver,
stencil::Direction dir )
pure virtual

◆ 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() [1/2]

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

◆ communicateLocalEqualLevel() [2/2]

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::communicateLocalEqualLevel ( uint64_t level,
uint8_t timestep,
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 ) const
pure virtual

◆ sizeCoarseToFineSend()

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

◆ sizeEqualLevelSend()

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

◆ sizeFineToCoarseSend()

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

◆ sync()

virtual void walberla::gpu::GeneratedNonUniformGPUPackInfo::sync ( )
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: