Ошибка cudaMalloc через несколько часов - PullRequest
0 голосов
/ 25 декабря 2011

Есть ли причина, по которой cudaMalloc не может выделить память при запуске кода GPU в течение 2-3 часов?
Я использую программу «Process Explorer» для проверки использования глобальной памяти. Внезапно cudaMalloc не удается выделить, хотя свободная глобальная память на графическом процессоре все еще доступна.

Как я могу проверить основную причину этого сбоя? я делаю это:

if ( cudaSuccess !=cudaMalloc((void **) &arr, sizeof(int)*100)) 
    printf("Cannot Allocate Mem");

Есть ли лучший способ напечатать фактическую причину сбоя в cuda?

1 Ответ

2 голосов
/ 25 декабря 2011

Вы можете сделать ниже:

cudaError_t err= cudaMalloc((void **) &arr, sizeof(int)*100);
if(err != cudaSuccess){
     printf("The error is %s", cudaGetErrorString(err));
}

Это напечатает точную причину ошибки. Например. неверный указатель устройства означает, что вы обращаетесь к указателю, который ни на что не указывает.

...