2016-07-11 3 views
1

В CUDA PTX есть специальный регистр, который содержит индекс деформации нити: %warpid. Теперь, спецификация говорит:В CUDA PTX, что означает% warpid, действительно?

Обратите внимание, что %warpid летуч и возвращает расположение нити в тот момент, когда прочитал, но его значение может изменяться во время выполнения, , например, в связи с переносом сроков потоков следующим упреждения.

Умм, какое место это? Не должно быть местоположения внутри блока, например. для одномерной сетки %tid.x/warpSize? Это какой-то слот для варпа внутри SM (например, warp scheduler или некоторая внутренняя очередь)? Я смущен.

Мотивация: Я хочу избавить себя от необходимости вычислять %tid.x/warpSize, а также освободить регистр, используя этот специальный регистр.

ответ

4

Вы должны прочитать следующие 25 слов документации, которые непосредственно следуют после цитаты, которые вы публикуемая в вашем вопросе:

По этой причине,% ctaid и% TID должна использоваться для вычисления виртуального индекс warp, если такое значение необходимо в коде ядра;

, а затем

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

Нет, вы не можете использовать его для своих нужд. %warpid является фактически слотом планировщика, а не постоянным уникальным индексом деформации внутри блока.

+0

Подтвердите ответ. И ... я читал эту часть, просто не казалось, что это действительно так. В этом случае я действительно не понимаю, почему они называли это% warpid, а не '% warpsmslot' или'% warpidinsm' или '% warpslot' и т. Д. – einpoklum

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