2D-Zeichen-Array zum CUDA-Kernel

Ich brauche Hilfe bei der Übertragung von char [] [] auf den Cuda-Kernel. Das ist mein Code:

__global__ 
void kernel(char** BiExponent){
  for(int i=0; i<500; i++)
     printf("%c",BiExponent[1][i]); // I want print line 1
}

int main(){
  char (*Bi2dChar)[500] = new char [5000][500];
  char **dev_Bi2dChar;

  ...//HERE I INPUT DATA TO Bi2dChar

  size_t host_orig_pitch = 500 * sizeof(char);
  size_t pitch;
  cudaMallocPitch((void**)&dev_Bi2dChar, &pitch, 500 * sizeof(char), 5000);
  cudaMemcpy2D(dev_Bi2dChar, pitch, Bi2dChar, host_orig_pitch, 500 * sizeof(char), 5000, cudaMemcpyHostToDevice);
  kernel <<< 1, 512 >>> (dev_Bi2dChar);
  free(Bi2dChar); cudaFree(dev_Bi2dChar);
}

Ich benutze: nvcc.exe "-gencode = arch = compute_20, code =" sm_20, compute_20 "--use-local-env --cl-version 2012 -ccbin

Danke für die Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage