waLBerla 7.3
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 () override=default
bool constantDataExchange () const override
bool threadsafeReceiving () 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 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 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 ()

Protected Member Functions

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

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 ( )
overridedefault

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
overrideprotectedvirtual

◆ 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
overrideprotectedvirtual

◆ 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
overrideprotectedvirtual

◆ 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: