Потоки в деформации CUDA выполняются параллельно на многопроцессорном компьютере?
Деформация - 32 потока. 32 потока выполняются параллельно в многопроцессорном режиме? Если 32 потока не выполняются параллельно, тогда в варпе нет условия гонки. Я получил это сомнение после просмотра некоторых примеров.
2 ответа
В модели программирования CUDA все потоки внутри основы работают параллельно. Но фактическое выполнение в аппаратном обеспечении может не быть параллельным, потому что число ядер в SM (потоковом мультипроцессоре) может быть меньше 32. Например, архитектура GT200 имеет 8 ядер на SM, а потокам в деформации потребуется 4 тактовых цикла. закончить исполнение.
Если несколько потоков записывают в одно и то же место (совместно используемую память или глобальную память) и если вам не нужна гонка, вам придется использовать атомарные операции или блокировки, потому что модель программирования CUDA не гарантирует, какой поток собирается писать.
Да. 32 потока в WARP будут выполняться параллельно. Графический процессор представляет собой SIMT (однопроцессный многопоточный) компьютер, единственная команда которого выполняется несколькими потоками параллельно.
Кстати, SIMT - это в некотором смысле маркетинговый термин, он в основном такой же, как и SIMD.