Ветвь на основе идентификатора WARP
Есть ли способ найти идентификатор WARP потока в CUDA? Я хочу выполнить ветку на основе идентификатора WARP.
1 ответ
Есть регистр %warpid, и было бы нетрудно написать функцию, которая обращается к нему через встроенную сборку.
Тем не менее, крайне необычно, что вы когда-нибудь захотите использовать его; например
- потоки не "остаются на месте" и изменят, на какой основе они работают
- это не глобально уникальный идентификатор
что делает его возможные случаи использования чрезвычайно ограниченными. Цитировать документацию:
... Идентификатор основы предоставляет уникальный номер основы в CTA, но не в CTA в сетке....
Обратите внимание, что
%warpid
является изменчивым и возвращает местоположение потока в момент чтения, но его значение может измениться во время выполнения,...%warpid
предназначен главным образом для того, чтобы позволить профилирующему и диагностическому коду выбирать и регистрировать такую информацию, как отображение рабочего места и распределение нагрузки.