Ядро CUDA не запускается - PullRequest
0 голосов
/ 01 марта 2012

Я использую GeForce 9800 GX2. Я установил драйверы и CUDA SDK. Я написал простую программу, которая выглядит примерно так:

__global__ void myKernel(int *d_a) 
{ 
    int tx=threadIdx.x; 
    d_a[tx]+=1; 
    cuPrintf("Hello, world from the device!\n"); 


} 
int main() 
{ 
    int *a=(int*)malloc(sizeof(int)*10); 
    int *d_a; 
    int i; 
    for(i=0;i<10;i++) 
        a[i]=i; 
    cudaPrintfInit(); 
    cudaMalloc((void**)&d_a,10*sizeof(int)); 
    cudaMemcpy(d_a,a,10*sizeof(int),cudaMemcpyHostToDevice); 
    myKernel<<<1,10>>>(d_a); 
    cudaPrintfDisplay(stdout, true); 
    cudaMemcpy(a,d_a,10*sizeof(int),cudaMemcpyDeviceToHost); 

    cudaPrintfEnd(); 
    cudaFree(d_a); 
} 

Код компилируется правильно, но ядро ​​не запускается ... Со стороны ядра сообщение не выводится. Что я должен сделать, чтобы решить эту проблему?

1 Ответ

1 голос
/ 08 марта 2012

Учитывая, что в ваших комментариях вы говорите, что получаете «Нет устройства с поддержкой CUDA», это означает, что либо у вас нет графического процессора с поддержкой CUDA, либо у вас не установлен правильный драйвер. Учитывая, что вы говорите, что у вас есть оба, я советую попробовать переустановить драйвер для проверки.

Некоторые другие заметки:

  1. Вы пытаетесь сделать это через удаленный рабочий стол? Это не будет работать, поскольку с RDP Microsoft использует фиктивное устройство отображения для удаленной пересылки дисплея, графические процессоры Tesla поддерживают TCC , что позволяет RDP работать, заставляя графический процессор вести себя как устройство без дисплея но с графическими процессорами типа Geforce это невозможно. Запустите консоль или войдите в консоль и используйте VNC.
  2. Также попробуйте запустить пример кода deviceQuery SDK, чтобы убедиться, что он правильно определяет версию вашего графического процессора и драйвера / среды выполнения.
  3. Вы должны проверить все вызовы API CUDA на наличие ошибок.
  4. Звоните cudaDeviceSynchronize() до cudaPrintfDisplay().
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...