2
내 질문은 다음과 같습니다 :커널 내에서 포인터를 사용하는 CUDA 4.0 - 오류
두 가지 방법으로 커널을 사용하고 싶습니다.
- 난
cutilSafeCall(cudaMemcpy(d_array, array, 100*sizeof(double),
cudaMemcpyHostToDevice));
또는
- I 입력 통해
cudaMemcpy
을 이용하여 복사 된 배열d_array
, 즉을 사용하여 이중mydouble
직접 즉double mydouble = 3;
I는 입력 배열은 단순히 (잘 작동하는)를 사용하는 경우 :
kernel<<<1, 100>>>(d_array, 100, output);
I 입력 (하지 잘 작동을 수행하는 !!) 내가 사용하는 이중 경우 :
kernel<<<1, 100>>>(&mydouble, 1, output);
내 커널은 아래와 같습니다
:
___global___ void kernel(double * d_array, int size_d_array, double * output)
{
double a;
if (size_d_array == 100)
{output[threadIdx.x] = d_array[threadIdx.x];}
else
{output a[threadIdx.x] = d_array[0];}
}
정확한 코드입니까? '커널 (d_array, 100) <<<1, 100> >>;은 최소한 커널 <<<1, 100> >> (d_array, 100); – Bart
롤, 죄송합니다 가짜 코드 ...하지만 질문이 남아 있기 때문에. – gamma123
실제 코드를 실제 커널 호출 및 메모리 할당과 함께 게시하십시오. – Bart