StatMech
Loading...
Searching...
No Matches
ObjectOnGPU.cuh File Reference

Classes

class  ObjectOnGPU_Base< T >
 
class  ObjectOnGPU< T >
 

Functions

template<class T , class... A>
__global__ void constructObject_kernel (T **ptrptr, A... args)
 
template<class T >
__global__ void destructObject_kernel (T **ptrptr)
 

Detailed Description

Author
Shoki Sugimoto (sugim.nosp@m.oto@.nosp@m.cat.p.nosp@m.hys..nosp@m.s.u-t.nosp@m.okyo.nosp@m..ac.j.nosp@m.p)
Version
0.1
Date
2022-07-15

Function Documentation

◆ constructObject_kernel()

template<class T , class... A>
__global__ void constructObject_kernel ( T **  ptrptr,
A...  args 
)
16 {
17 int const idx = blockIdx.x * blockDim.x + threadIdx.x;
18 int const idy = blockIdx.y * blockDim.y + threadIdx.y;
19 if(idx >= 1 || idy >= 1) return;
20 debug_printf(" %s:\n\t ptrptr=%p, ptr=%p\n", __PRETTY_FUNCTION__, ptrptr, *ptrptr);
21 *ptrptr = new T(args...);
22 debug_printf("(END) %s:\n\t ptrptr=%p, ptr=%p\n", __PRETTY_FUNCTION__, ptrptr, *ptrptr);
23 return;
24}

◆ destructObject_kernel()

template<class T >
__global__ void destructObject_kernel ( T **  ptrptr)
27 {
28 int const idx = blockIdx.x * blockDim.x + threadIdx.x;
29 int const idy = blockIdx.y * blockDim.y + threadIdx.y;
30 if(idx >= 1 || idy >= 1) return;
31 debug_printf("%s:\n\t (idx,idy)=(%d,%d) ptrptr=%p, ptr=%p\n", __PRETTY_FUNCTION__, idx, idy,
32 ptrptr, *ptrptr);
33 delete *ptrptr;
34 (*ptrptr) = nullptr;
35 debug_printf("%s:\n\t (END) ptrptr=%p, *ptrptr=%p\n", __PRETTY_FUNCTION__, ptrptr, *ptrptr);
36 return;
37}