Я выделяю некоторые массивы флоатов (довольно большие, т.е. 9 000 000 элементов) на графическом процессоре, используя cudaMalloc((void**)&(storage->data), size * sizeof(float))
. В конце моей программы я освобождаю эту память, используя cudaFree(storage->data);
.Освобождение памяти CUDA болезненно медленное
Проблема в том, что первое освобождение происходит очень медленно, около 10 секунд, тогда как другие почти мгновенно.
Мой вопрос в следующем: что может вызвать эту разницу? Является ли память освобождения на графическом процессоре, как правило, медленной?
Да, в этом была проблема. Я спросил на форумах SO и nVidia, чтобы убедиться, что кто-то компетентный ответит, и мне захотелось, чтобы я захотел на обоих;)! Удивительные ребята! Благодаря ! – Wookai