Ветвь на основе идентификатора WARP

Есть ли способ найти идентификатор WARP потока в CUDA? Я хочу выполнить ветку на основе идентификатора WARP.

1 ответ

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

Тем не менее, крайне необычно, что вы когда-нибудь захотите использовать его; например

  • потоки не "остаются на месте" и изменят, на какой основе они работают
  • это не глобально уникальный идентификатор

что делает его возможные случаи использования чрезвычайно ограниченными. Цитировать документацию:

... Идентификатор основы предоставляет уникальный номер основы в CTA, но не в CTA в сетке....

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

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