waLBerla 7.2
Loading...
Searching...
No Matches
walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T > Class Template Reference

#include <GeneratedNonUniformGPUFieldPackInfo.h>

+ Inheritance diagram for walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >:

Public Types

using value_type = typename Field_T::value_type
 

Public Member Functions

 GeneratedNonUniformGPUFieldPackInfo (const BlockDataID fieldID)
 
 ~GeneratedNonUniformGPUFieldPackInfo ()=default
 
bool constantDataExchange () const override
 
bool threadsafeReceiving () const override
 
void packDataEqualLevelImpl (const Block *sender, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) const override
 
void unpackDataEqualLevel (Block *receiver, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) override
 
void communicateLocalEqualLevel (const Block *sender, Block *receiver, stencil::Direction dir, gpuStream_t stream) override
 
void addForLocalEqualLevelComm (const Block *, Block *, stencil::Direction) override
 
void communicateLocalEqualLevel (uint64_t, uint8_t, gpuStream_t) override
 
void packDataCoarseToFineImpl (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) const override
 
void unpackDataCoarseToFine (Block *fineReceiver, const BlockID &coarseSender, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) override
 
void communicateLocalCoarseToFine (const Block *, Block *, stencil::Direction, gpuStream_t) override
 
void communicateLocalCoarseToFine (const Block *coarseSender, Block *fineReceiver, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) override
 
void packDataFineToCoarseImpl (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) const override
 
void unpackDataFineToCoarse (Block *coarseReceiver, const BlockID &fineSender, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) override
 
void communicateLocalFineToCoarse (const Block *, Block *, stencil::Direction, gpuStream_t) override
 
void communicateLocalFineToCoarse (const Block *fineSender, Block *coarseReceiver, stencil::Direction dir, GpuBuffer_T &byte_buffer, gpuStream_t stream) override
 
uint_t sizeEqualLevelSend (const Block *sender, stencil::Direction dir) const override
 
uint_t sizeCoarseToFineSend (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir) const override
 
uint_t sizeCoarseToFineReceive (Block *fineReceiver, stencil::Direction dir) const override
 
uint_t sizeFineToCoarseSend (const Block *fineSender, stencil::Direction dir) const override
 
void sync () override
 
- Public Member Functions inherited from walberla::gpu::GeneratedNonUniformGPUPackInfo
 GeneratedNonUniformGPUPackInfo ()=default
 
virtual ~GeneratedNonUniformGPUPackInfo ()=default
 
void packDataEqualLevel (const Block *sender, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
void packDataCoarseToFine (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
void packDataFineToCoarse (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, GpuBuffer_T &buffer, gpuStream_t stream=nullptr) const
 
void clearBufferSizeCheckMap ()
 

Private Attributes

const BlockDataID fieldID_
 
PackingKernels_T kernels_
 

Additional Inherited Members

- Protected Attributes inherited from walberla::gpu::GeneratedNonUniformGPUPackInfo
std::map< const Block *, std::map< stencil::Direction, std::map< uint_t, size_t > > > bufferSize_
 

Member Typedef Documentation

◆ value_type

template<typename Field_T , typename PackingKernels_T >
using walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::value_type = typename Field_T::value_type

Constructor & Destructor Documentation

◆ GeneratedNonUniformGPUFieldPackInfo()

template<typename Field_T , typename PackingKernels_T >
walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::GeneratedNonUniformGPUFieldPackInfo ( const BlockDataID fieldID)
inline

◆ ~GeneratedNonUniformGPUFieldPackInfo()

template<typename Field_T , typename PackingKernels_T >
walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::~GeneratedNonUniformGPUFieldPackInfo ( )
default

Member Function Documentation

◆ addForLocalEqualLevelComm()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::addForLocalEqualLevelComm ( const Block * ,
Block * ,
stencil::Direction  )
inlineoverridevirtual

◆ communicateLocalCoarseToFine() [1/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalCoarseToFine ( const Block * ,
Block * ,
stencil::Direction ,
gpuStream_t  )
inlineoverridevirtual

◆ communicateLocalCoarseToFine() [2/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalCoarseToFine ( const Block * coarseSender,
Block * fineReceiver,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream )
overridevirtual

◆ communicateLocalEqualLevel() [1/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalEqualLevel ( const Block * sender,
Block * receiver,
stencil::Direction dir,
gpuStream_t stream )
overridevirtual

◆ communicateLocalEqualLevel() [2/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalEqualLevel ( uint64_t ,
uint8_t ,
gpuStream_t  )
inlineoverridevirtual

◆ communicateLocalFineToCoarse() [1/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalFineToCoarse ( const Block * ,
Block * ,
stencil::Direction ,
gpuStream_t  )
inlineoverridevirtual

◆ communicateLocalFineToCoarse() [2/2]

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::communicateLocalFineToCoarse ( const Block * fineSender,
Block * coarseReceiver,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream )
overridevirtual

◆ constantDataExchange()

template<typename Field_T , typename PackingKernels_T >
bool walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::constantDataExchange ( ) const
inlineoverridevirtual

◆ packDataCoarseToFineImpl()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::packDataCoarseToFineImpl ( const Block * coarseSender,
const BlockID & fineReceiver,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream ) const
overridevirtual

◆ packDataEqualLevelImpl()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::packDataEqualLevelImpl ( const Block * sender,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream ) const
overridevirtual

◆ packDataFineToCoarseImpl()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::packDataFineToCoarseImpl ( const Block * fineSender,
const BlockID & coarseReceiver,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream ) const
overridevirtual

◆ sizeCoarseToFineReceive()

template<typename Field_T , typename PackingKernels_T >
uint_t walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::sizeCoarseToFineReceive ( Block * fineReceiver,
stencil::Direction dir ) const
overridevirtual

◆ sizeCoarseToFineSend()

template<typename Field_T , typename PackingKernels_T >
uint_t walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::sizeCoarseToFineSend ( const Block * coarseSender,
const BlockID & fineReceiver,
stencil::Direction dir ) const
overridevirtual

◆ sizeEqualLevelSend()

template<typename Field_T , typename PackingKernels_T >
uint_t walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::sizeEqualLevelSend ( const Block * sender,
stencil::Direction dir ) const
overridevirtual

◆ sizeFineToCoarseSend()

template<typename Field_T , typename PackingKernels_T >
uint_t walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::sizeFineToCoarseSend ( const Block * fineSender,
stencil::Direction dir ) const
overridevirtual

◆ sync()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::sync ( )
inlineoverridevirtual

◆ threadsafeReceiving()

template<typename Field_T , typename PackingKernels_T >
bool walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::threadsafeReceiving ( ) const
inlineoverridevirtual

◆ unpackDataCoarseToFine()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::unpackDataCoarseToFine ( Block * fineReceiver,
const BlockID & coarseSender,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream )
overridevirtual

◆ unpackDataEqualLevel()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::unpackDataEqualLevel ( Block * receiver,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream )
overridevirtual

◆ unpackDataFineToCoarse()

template<typename Field_T , typename PackingKernels_T >
void walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::unpackDataFineToCoarse ( Block * coarseReceiver,
const BlockID & fineSender,
stencil::Direction dir,
GpuBuffer_T & byte_buffer,
gpuStream_t stream )
overridevirtual

Member Data Documentation

◆ fieldID_

template<typename Field_T , typename PackingKernels_T >
const BlockDataID walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::fieldID_
private

◆ kernels_

template<typename Field_T , typename PackingKernels_T >
PackingKernels_T walberla::GeneratedNonUniformGPUFieldPackInfo< Field_T, PackingKernels_T >::kernels_
private

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