CUDA ptxas предупреждений (размер стека для входа) - PullRequest
3 голосов
/ 31 марта 2012

Я получаю следующее предупреждение, которое я не понимаю при компиляции кода CUDA:

CUDACOMPILE: предупреждение ptxas: Размер стека для функции ввода '_Z24gpu_kernel_get_3d_pointsiPK8RtmPointS1_PKfS3_P10ft33 * * * * * * * * * * * * * * * * * * * 100 *is:

__global__ void gpu_kernel_get_3d_points(int count1, const RtmPoint *pPoints1, const RtmPoint *pPoints2, const float *PL, const float *PR, 
RtmPoint3D *pPoints3D, int *pGlobalCount, float bbox)

Все указатели являются указателями на память устройства.Я не понимаю, почему у компилятора должна быть проблема с определением размера стека.В ядре есть несколько локальных переменных, но их немного.Есть идеи?Имеет ли значение это предупреждение?

Ответы [ 2 ]

2 голосов
/ 26 мая 2016

Это предупреждение возникает, когда функция рекурсивная.Cuda пытается выделить пространство стека перед выполнением, что не имеет большого значения, если только вы не используете рекурсию.Проблема в том, что размер стека не предсказуем.Глубина рекурсии не известна, поэтому память, которую будет использовать стек, неизвестна.Это предупреждение на самом деле не актуально, но если вы превысили стек графических данных своими данными, вы должны вручную увеличить размер стека.

2 голосов
/ 21 декабря 2012

Кажется, что ваше ядро ​​динамически распределяет память в куче графического процессора, используя malloc () или оператор new .Это может отрицательно сказаться на производительности вашего ядра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...