[indent]
__global__ void holoKernel(float *d_xx, float *d_yy, float *d_zz, int N,float *d_x,float *d_y, float *d_Result)
{
// Each thread computes a single element in holography
int row = blockIdx.y*blockDim.y + threadIdx.y;
int col = blockIdx.x*blockDim.x + threadIdx.x;
float sum = 0.f;
float dis = 0.f; //点距离全息图上当前点的距离
for (int n = 0; n < N; ++n)
{
dis = (d_xx[row*N+col] - d_x[row*N+col])*(d_xx[row*N+col] - d_x[row*N+col]) + (d_yy[row*N+col] - d_y[row*N+col] )*(d_yy[row*N+col] - d_y[row*N+col] ) + d_zz[row*N+col]*d_zz[row*N+col] ;
sum = sum + 1.0/dis;
}
d_Result[row*512+col] = sum;
}
现在的问题是d_Result里传回host之后没有值。之前Memcpy 之后都用checkCUDAError(“memcpy”);检测过,没发现问题。
但执行kernel后checkCUDAError(“kernel invocation”); 就会报错。invalid configuration argument
是不是kernel写得不正确?
[/indent]