Количество активных деформаций в графическом процессоре (Fermi)

У меня есть небольшой вопрос об активных деформациях в графическом процессоре (я бы предпочел узнать это в Fermi). Для конкретного ядра количество активных варпов в любом цикле SM одинаково для всего времени выполнения ядра? Как я экспериментировал, есть некоторая корреляция между общим количеством активных варпов (за все время выполнения) и количеством синхронизаций в ядре программы. Кто-нибудь может прояснить это отношение? Спасибо


person Zk1001    schedule 13.07.2011    source источник


Ответы (2)


Количество активных деформаций может меняться со временем, поскольку:

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

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

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

person Tom    schedule 13.07.2011
comment
Спасибо за четкий ответ. Любые другие дополнения или комментарии будут оценены! - person Zk1001; 13.07.2011
comment
Позвольте мне спросить немного дальше. Имея определенное количество разделяемой памяти и регистров на поток, мы знаем, сколько варпов может быть активным одновременно. Однако из-за того, что длина каждой деформации может быть разной, некоторые из них могут заканчиваться раньше других. Затем планировщик выдает инструкции из других блоков потока? Или он ждет, пока закончатся все деформации в активных блоках, а затем активирует совершенно другую группу блоков? - person Zk1001; 19.07.2011

Связь между барьерной синхронизацией и переносом объясняется в этой статье Демистификация микроархитектуры GPU с помощью микробенчмаркинга.

person veda    schedule 13.07.2011