Мой вызов ядра завершается с ошибкой "недостаточно памяти".Это существенно использует кадр стека, и мне было интересно, является ли это причиной его сбоя.
При вызове nvcc с параметром --ptxas-options = -v выводится следующая информация профиля:
150352 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 59 registers, 40 bytes cmem[0]
Аппаратное обеспечение: GTX480, sm20, 1,5 ГБ памяти устройства, 48 КБ разделяемой памяти / мультипроцессор.
Мой вопрос: где выделяется кадр стека: в общей, глобальной памяти, постоянной памяти, ..?
Я пробовал с 1 потоком на блок, а также с 32 потоками на блок.То же «нехватка памяти».
Другая проблема: количество резидентов, принадлежащих одному мультипроцессору, можно увеличить только в том случае, если общее количество регистров не превышает количество доступных регистров в мультипроцессоре (32 тыс. Для моей карты).Относится ли что-то подобное к размеру фрейма стека?