Я использую GeForce 9800 GX2. Я установил драйвера и CUDA SDK я написал простую программу, которые выглядят S так:Ядро CUDA не запускается
__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);
}
код компилирует правильно, но ядро, похоже, не будет запускать ... сообщение не печатаются со стороны ядра. Что я должен сделать, чтобы решить эту проблему?
Вы можете начать с добавления проверки ошибок. Каждый из этих вызовов API возвращает статус. Вы должны проверить каждый из них, чтобы узнать, какая ошибка сообщается и где она происходит. – talonmies
Кроме того, вы использовали код образца SDK, верно? Linux или Windows? Скомпилировать и работать образцы SDK? Все они? – Patrick87
Я попытался установить API для определения ошибки во время выполнения, но он показывает 'никакого устройства с поддержкой CUDA обнаружено в simple_device_call.cu по строке 30' ... я использую код примера linux и SDL, также не работает –