PTX - разница между.local и.param

Я изучаю PTX, и я не понимаю разницу между .param а также .local государственные пространства.

.local переменные, видимые потокам и хранящиеся в их стеке (который, кстати, является памятью потоков)

.param переменные, используемые для размещения объектов (если они передаются по значению), параметры функций и возвращаемые значения, а также входные параметры, и они также размещаются в стеке

В руководстве по PTX есть:

В PTX адрес входного параметра функции может быть перемещен в регистр с помощью инструкции mov. Обратите внимание, что параметр будет скопирован в стек при необходимости, и поэтому адрес будет в .local пространство состояний и доступ через ld.local а также st.local инструкции.

Я не понимаю: зачем копировать .param в стек, если .param == .local и все уже в стеке?

1 ответ

Решение

.param - это абстракция PTX-уровня для данных, передаваемых с хоста на устройство как часть вызова ядра, то есть это параметры или аргументы вызова ядра. В ранних графических процессорах фактическое хранилище, используемое для этой цели, было общей памятью, в более поздних графических процессорах это было изменено на постоянный банк памяти.

Другие вопросы по тегам