26#include "core/DataTypes.h"
28#include "domain_decomposition/IBlock.h"
30#include "stencil/Directions.h"
32#include "gpu/GPUField.h"
33#include "gpu/GPUWrapper.h"
34#include "gpu/communication/GeneratedGPUPackInfo.h"
40 :
public ::walberla::gpu::GeneratedGPUPackInfo {
45 void pack(stencil::Direction dir,
unsigned char *buffer, IBlock *
block,
46 gpuStream_t
stream)
override;
49 gpuStream_t )
override {
51 "Local Communication not implemented yet for standard PackInfos. To "
52 "run your application, turn off local communication in the "
53 "communication class, e.g. with useLocalCommunication=false")
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
~PackInfoVecSinglePrecisionCUDA() override=default
uint_t size(stencil::Direction dir, IBlock *block) override
void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block, gpuStream_t stream) override
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