25 #ifndef _PROG_GPU_UTILS 26 #define _PROG_GPU_UTILS 44 Xdim=Ydim=Zdim=Ndim=yxdim=zyxdim=nzyxdim=0;
50 Xdim=Ydim=Zdim=Ndim=yxdim=zyxdim=nzyxdim=0;
52 resize(_Xdim, _Ydim, _Zdim, _Ndim);
55 void resize(
int _Xdim,
int _Ydim=1,
int _Zdim=1,
int _Ndim=1)
58 if (_Xdim*_Ydim*_Zdim*_Ndim==nzyxdim){
69 yxdim=(size_t)_Ydim*_Xdim;
74 cpuMalloc((
void**)&data, nzyxdim*
sizeof(T));
93 gpuArray.
resize(Xdim,Ydim,Zdim,Ndim);
108 gpuArray.
resize(Xdim,Ydim,Zdim,numCopy);
111 for(
int i=0;
i<numCopy;
i++){
119 out.
resize(Xdim,Ydim,Zdim,1);
120 memcpy(out.
data, data[idx*zyxdim], zyxdim*
sizeof(T));
124 memcpy(data[idx*zyxdim], in.
data, zyxdim*
sizeof(T));
void resize(const GpuMultidimArrayAtGpu< T1 > &array)
void copyToGpu(GpuMultidimArrayAtGpu< T > &gpuArray, myStreamHandle &myStream)
void copyToGpuMultiple(GpuMultidimArrayAtGpu< T > &gpuArray, int numCopy, myStreamHandle myStream)
#define MULTIDIM_ARRAY(v)
void fillImage(int n, const MultidimArray< T > &from)
void giveOneImage(GpuMultidimArrayAtCpu< T > out, int idx)
void gpuCopyFromGPUToCPUStream(void *d_data, void *data, size_t Nbytes, myStreamHandle &myStream)
void copyFromGpu(GpuMultidimArrayAtGpu< T > &gpuArray, myStreamHandle myStream)
void resize(int _Xdim, int _Ydim=1, int _Zdim=1, int _Ndim=1)
GpuMultidimArrayAtCpu(int _Xdim, int _Ydim=1, int _Zdim=1, int _Ndim=1)
void gpuCopyFromCPUToGPUStream(void *data, void *d_data, size_t Nbytes, myStreamHandle &myStream)
void cpuMalloc(void **h_data, size_t Nbytes)
void setOneImage(GpuMultidimArrayAtCpu< T > in, int idx)