2013-12-18 1 views
2

Из моего понимания архитектуры CUDA от NVIDIA выполнение потоков происходит в группах ~ 32, называемых «warps». Одновременно планируются множественные перекосы, и инструкции выдаются из любого из перекосов (в зависимости от некоторого внутреннего алгоритма).В архитектуре GPU, где хранятся данные для всех неактивных перекопов?

Теперь, если я скажу 16 Кбайт общей памяти на устройстве, и каждый поток использует 400 байт общей памяти, то для одного варпа потребуется 400 * 32 = 12,8 КБ. Означает ли это, что графический процессор не может на самом деле планировать более 1 warp за раз, независимо от того, сколько потоков я запускаю в рамках данного блока?

+0

Вскоре ресурс выделяется только для перекосов/блоков после их активации. И если ядро ​​может удовлетворить компилятор, чтобы найти хотя бы один активный блок, тогда вам хорошо идти. – Zk1001

ответ

3

С ресурсной точки зрения (регистры, общая память и т. Д.) Важным элементом является threadblock, а не деформация.

Для того, чтобы запланировать блокировку потока, должно быть достаточно свободных ресурсов на SM, чтобы покрыть потребности всего threadblock. Все блоки потоков в сетке будут иметь точно такие же требования к ресурсам.

Если SM в настоящее время не выполняет потоковые блоки (например, в момент запуска ядра), то SM должен иметь как минимум достаточные ресурсы для удовлетворения потребностей одного потокаблока. Если это не так, запуск ядра завершится неудачно. Это может произойти, например, если количество регистров на поток, умноженное на количество потоков на блок, превысило количество регистров в SM.

После того, как SM запланирован на один блокнот, дополнительные блоки потоков могут быть запланированы в зависимости от доступных ресурсов. Поэтому, чтобы расширить регистрационную аналогию, если каждый блок потока требует 30K регистров (regs/thread * threads/block), а SM имеет максимум 64K регистра, тогда может быть запланировано не более двух блоков потоков (то есть их перекосы могут быть перенесены в исполнение SM).

Таким образом, любая деформация, которая может быть приведена в исполнение, уже имеет достаточно ресурсов, выделенных для нее. Это основная часть механизма планирования, которая позволяет SM переключать выполнение от одного варпа к другому с нулевой задержкой (быстрое переключение контекста).

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