2013-10-08 3 views
2

Выполняется ли вызов функции устройства CUDA (определенный с помощью __device__) из ядра, аналогичный хост-функции, т. Е. Включает ли нажатие обратного адреса в стеке и нажатие переменных в стеке и извлечение по возврату?Как работает функция устройства CUDA?

Если да, то какая память используется в этом случае для стека? (кеш, общий или глобальный)

ответ

5

Функция __device__ может быть либо встроенной, либо нет (это также относится к функциям хоста, вообще говоря).

Если функция встроена, использование стека не используется.

Если функция не включена, используется использование стека.

Стек - это стежок в потоке, и он живет в логическом пространстве, называемом «локальной» памятью, которым управляет поток в той же физической памяти, где живет логическое пространство, называемое «глобальной» памятью, т.е. встроенный графический процессор.

Есть нюансы относительно того, будет ли функция встроена или нет, вы можете прочитать соответствующий документ section.

Вы можете узнать больше о локальной памяти here (прокрутите вниз до раздела локальной памяти).

Смежные вопросы