26#include "core/DataTypes.h"
27#include "core/cell/CellInterval.h"
29#include "domain_decomposition/IBlock.h"
31#include "stencil/Directions.h"
33#include "gpu/GPUField.h"
34#include "gpu/GPUWrapper.h"
35#include "gpu/communication/GeneratedGPUPackInfo.h"
41 :
public ::walberla::gpu::GeneratedGPUPackInfo {
46 void pack(stencil::Direction dir,
unsigned char *buffer, IBlock *
block,
47 gpuStream_t
stream)
override;
50 gpuStream_t )
override {
51 WALBERLA_ABORT(
"Local Communication not implemented yet for standard "
52 "PackInfos. To run your application turn of local "
53 "communication in the Communication class")
55 void unpack(stencil::Direction dir,
unsigned char *buffer, IBlock *
block,
56 gpuStream_t
stream)
override;
57 uint_t
size(stencil::Direction dir, IBlock *
block)
override;
void unpack(stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
void communicateLocal(stencil::Direction, const IBlock *, IBlock *, gpuStream_t) override
uint_t size(stencil::Direction dir, IBlock *block) override
void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
virtual ~PackInfoVecSinglePrecisionCUDA()
PackInfoVecSinglePrecisionCUDA(BlockDataID fieldID_)
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
static double * block(double *p, std::size_t index, std::size_t size)
\file PackInfoPdfDoublePrecision.cpp \author pystencils