Есть ли способ найти идентификатор WARP в потоке в CUDA? Я хочу выполнить ветку на основе идентификатора WARP.Ветвь на основе идентификатора WARP
0
A
ответ
3
Существует регистр %warpid, и нетрудно написать функцию, которая обращается к ней через встроенную сборку.
Однако чрезвычайно необычно, что вы когда-либо захотите его использовать; например
- нити не «остаться» и изменить который деформируется они работают на протяжении времени
- это не глобально уникальный идентификатор
, что делает его возможные случаи использования крайне ограничены. Процитировать документацию:
... Идентификатор warp предоставляет уникальный номер деформации внутри CTA, но не через CTA в сетке. ...
Отметьте, что
%warpid
является изменчивым и возвращает местоположение потока в момент его считывания, но его значение может меняться во время выполнения, ...%warpid
предназначен, главным образом, для того, чтобы код профилирования и диагностики использовался для выборки и регистрации таких как отображение рабочих мест и распределение нагрузки.
«нити не« остаются на месте »и изменят, с какой деформацией они работают со временем». У вас есть ссылка на это? Номер и номер полосы AFAIK фиксируются на срок службы нити – talonmies
@talonmies: Да: документация PTX ISA, как указано. – Hurkyl
Для моей собственной цели, использующей симулятор GPGPU-Sim, я уверен, что идентификатор warp остается неизменным для жизни потока. –