0
내가 어려움을 발견 잘못 그러나cudaMalloc 전역 배열 원인은 SEG
float globTemp[3][3] = "some value in here";
__device__ float* globTemp_d;
__global__ void compute(int *a, int w)
{
int x = threadIdx.x + blockDim.x * blockIdx.x;
int y = threadIdx.y + blockDim.y * blockIdx.y;
int i = y*w+x;
if(x<3 && y<3)
a[i] = 1+globTemp_d[i];
}
int hostFunc(){
float *a_d;
cudaMalloc((void**)&a_d, 3*3*sizeof(int));
cudaMalloc((void**)&globTemp_d, 3*3*sizeof(int));
cudaMemcpy(globTemp_d,globTemp, 3*3*sizeof(float), cudaMemcpyHostToDevice);
compute<<<1,1>>>(a_d,3);
cudaMemcpy(a,a_d, 3*3*sizeof(float), cudaMemcpyDeviceToHost);
}
을 난 내가 globTemp_d에 액세스하려고 할 때 잘못 SEG 얻을, [I] . 내가 여기서 잘못하고있는거야?
globTemp_d가 이제까지 초기화 되었습니까? – ldrumm
@Ldrumm 나는 cudaMalloc이 globTemp_d를 초기화한다고 생각하십니까? –
컴파일러 속성을 확인했습니다. 나는 피곤해 보이고 아마도 CUDA에 의문을 제기해서는 안됩니다. – ldrumm