20#ifndef REALM_CUDA_ACCESS_H
21#define REALM_CUDA_ACCESS_H
31 namespace PieceLayoutTypes {
32 static const LayoutType CudaArrayLayoutType = 3;
40 template <
int N,
typename T>
55 virtual void print(std::ostream &os)
const;
59 unsigned next_delta)
const;
69 namespace PieceLookup {
72 static const Opcode OP_CUDA_ARRAY_PIECE = 4;
75 static const unsigned ALLOW_CUDA_ARRAY_PIECE = 1U << Opcodes::OP_CUDA_ARRAY_PIECE;
77 template <
int N,
typename T>
98 size_t _size_in_bytes,
bool _read_only);
101 size_t _size_in_bytes);
110 template <
typename S>
113 template <
typename S>
123 virtual void print(std::ostream &os)
const;
144 template <
typename S>
147 template <
typename S>
157 virtual void print(std::ostream &os)
const;
176 template <
typename S>
179 template <
typename S>
189 virtual void print(std::ostream &os)
const;
194#include "realm/cuda/cuda_access.inl"
Definition cuda_access.h:42
virtual PieceLookup::Instruction * create_lookup_inst(void *ptr, unsigned next_delta) const
virtual size_t calculate_offset(const Point< N, T > &p) const
static Serialization::PolymorphicSerdezSubclass< InstanceLayoutPiece< N, T >, CudaArrayLayoutPiece< N, T > > serdez_subclass
Definition cuda_access.h:63
bool serialize(S &serializer) const
CudaArrayLayoutPiece(void)
virtual void relocate(size_t base_offset)
virtual size_t lookup_inst_size() const
static InstanceLayoutPiece< N, T > * deserialize_new(S &deserializer)
virtual void print(std::ostream &os) const
virtual InstanceLayoutPiece< N, T > * clone(void) const
Definition cuda_access.h:132
Memory suggested_memory() const
bool serialize(S &serializer) const
virtual ExternalInstanceResource * clone(void) const
ExternalCudaArrayResource(int _cuda_device_id, cudaArray *_array)
ExternalCudaArrayResource()
ExternalCudaArrayResource(int _cuda_device_id, CUarray_st *_array)
virtual bool satisfies(const InstanceLayoutGeneric &layout) const
static Serialization::PolymorphicSerdezSubclass< ExternalInstanceResource, ExternalCudaArrayResource > serdez_subclass
Definition cuda_access.h:155
CUarray_st * array
Definition cuda_access.h:161
int cuda_device_id
Definition cuda_access.h:160
virtual void print(std::ostream &os) const
static ExternalInstanceResource * deserialize_new(S &deserializer)
Definition cuda_access.h:95
uintptr_t base
Definition cuda_access.h:127
static ExternalInstanceResource * deserialize_new(S &deserializer)
size_t size_in_bytes
Definition cuda_access.h:128
bool read_only
Definition cuda_access.h:129
int cuda_device_id
Definition cuda_access.h:126
bool serialize(S &serializer) const
ExternalCudaMemoryResource(int _cuda_device_id, void *_base, size_t _size_in_bytes)
virtual void print(std::ostream &os) const
ExternalCudaMemoryResource(int _cuda_device_id, const void *_base, size_t _size_in_bytes)
ExternalCudaMemoryResource()
virtual ExternalInstanceResource * clone(void) const
virtual bool satisfies(const InstanceLayoutGeneric &layout) const
static Serialization::PolymorphicSerdezSubclass< ExternalInstanceResource, ExternalCudaMemoryResource > serdez_subclass
Definition cuda_access.h:121
Memory suggested_memory() const
ExternalCudaMemoryResource(int _cuda_device_id, uintptr_t _base, size_t _size_in_bytes, bool _read_only)
Definition cuda_access.h:164
Memory suggested_memory() const
virtual ExternalInstanceResource * clone(void) const
ExternalCudaPinnedHostResource(const void *_base, size_t _size_in_bytes)
ExternalCudaPinnedHostResource(uintptr_t _base, size_t _size_in_bytes, bool _read_only)
virtual void print(std::ostream &os) const
static Serialization::PolymorphicSerdezSubclass< ExternalInstanceResource, ExternalCudaPinnedHostResource > serdez_subclass
Definition cuda_access.h:187
ExternalCudaPinnedHostResource()
ExternalCudaPinnedHostResource(void *_base, size_t _size_in_bytes)
bool serialize(S &serializer) const
static ExternalInstanceResource * deserialize_new(S &deserializer)
Definition instance.h:405
Definition instance.h:443
Definition inst_layout.h:164
Definition inst_layout.h:289
Definition serialize.h:363
#define REALM_CUDA_HD
Definition compiler_support.h:95
#define REALM_PUBLIC_API
Definition compiler_support.h:217
unsigned char LayoutType
Definition inst_layout.h:256
unsigned char Opcode
Definition inst_layout.h:121
Definition activemsg.h:38
Definition cuda_access.h:36
int offset[3]
Definition cuda_access.h:37
Definition cuda_access.h:78
REALM_CUDA_HD unsigned delta() const
REALM_CUDA_HD const Instruction * next() const
CUarray_st * array
Definition cuda_access.h:86
CudaArrayPiece(unsigned next_delta)
int offset[3]
Definition cuda_access.h:87
Definition inst_layout.h:131