#include <UniformGPUScheme.h>
Classes | |
struct | Header |
Public Member Functions | |
UniformGPUScheme (weak_ptr< StructuredBlockForest > bf, bool sendDirectlyFromGPU=false, bool useLocalCommunication=true, const int tag=5432) | |
UniformGPUScheme (weak_ptr< StructuredBlockForest > bf, const Set< SUID > &requiredBlockSelectors, const Set< SUID > &incompatibleBlockSelectors, bool sendDirectlyFromGPU=false, bool useLocalCommunication=true, const int tag=5432) | |
void | addPackInfo (const shared_ptr< GeneratedGPUPackInfo > &pi) |
void | startCommunication (gpuStream_t stream=nullptr) |
void | wait (gpuStream_t stream=nullptr) |
void | operator() (gpuStream_t stream=nullptr) |
void | communicate (gpuStream_t stream=nullptr) |
std::function< void()> | getCommunicateFunctor (gpuStream_t stream=nullptr) |
std::function< void()> | getStartCommunicateFunctor (gpuStream_t stream=nullptr) |
std::function< void()> | getWaitFunctor (gpuStream_t stream=nullptr) |
Private Types | |
using | CpuBuffer_T = gpu::communication::PinnedMemoryBuffer |
using | GpuBuffer_T = gpu::communication::GPUMemoryBuffer |
Private Member Functions | |
void | setupCommunication () |
Private Attributes | |
weak_ptr< StructuredBlockForest > | blockForest_ |
uint_t | forestModificationStamp_ |
bool | setupBeforeNextCommunication_ |
bool | communicationInProgress_ |
bool | sendFromGPU_ |
bool | useLocalCommunication_ |
mpi::GenericBufferSystem< CpuBuffer_T, CpuBuffer_T > | bufferSystemCPU_ |
mpi::GenericBufferSystem< GpuBuffer_T, GpuBuffer_T > | bufferSystemGPU_ |
std::vector< shared_ptr< GeneratedGPUPackInfo > > | packInfos_ |
ParallelStreams | parallelSectionManager_ |
std::map< mpi::MPIRank, std::vector< Header > > | headers_ |
Set< SUID > | requiredBlockSelectors_ |
Set< SUID > | incompatibleBlockSelectors_ |
|
private |
|
private |
|
explicit |
|
explicit |
void walberla::gpu::communication::UniformGPUScheme< Stencil >::addPackInfo | ( | const shared_ptr< GeneratedGPUPackInfo > & | pi | ) |
|
inline |
std::function< void()> walberla::gpu::communication::UniformGPUScheme< Stencil >::getCommunicateFunctor | ( | gpuStream_t | stream = nullptr | ) |
std::function< void()> walberla::gpu::communication::UniformGPUScheme< Stencil >::getStartCommunicateFunctor | ( | gpuStream_t | stream = nullptr | ) |
std::function< void()> walberla::gpu::communication::UniformGPUScheme< Stencil >::getWaitFunctor | ( | gpuStream_t | stream = nullptr | ) |
|
inline |
|
private |
void walberla::gpu::communication::UniformGPUScheme< Stencil >::startCommunication | ( | gpuStream_t | stream = nullptr | ) |
void walberla::gpu::communication::UniformGPUScheme< Stencil >::wait | ( | gpuStream_t | stream = nullptr | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |