Почему только один из варпов исполняется СМ в куда?

Я часто встречал следующие слова в некоторых материалах CUDA:

"В любое время только один из деформаций выполняется SM".

Здесь я не совсем понимаю, поскольку каждый SM может одновременно запускать от сотен до тысяч потоков, почему в один момент времени может быть выполнен только один перекос, который состоит из 32 потоков?

Спасибо!

2 ответа

Решение

Детали различаются для разных поколений аппаратного обеспечения CUDA, но, например, в более ранних поколениях каждый SM имеет 8 исполнительных блоков, каждый из которых выполняет 4 потока (по одной инструкции от каждого потока каждые 4 цикла). Следовательно, вы получаете 4 SMT, которые дают 32 параллельных потока на SM.

Конечно, для каждого графического процессора существует несколько SM, например 30, что будет означать 30 x 32 перекосов потоков = 960 потоков, выполняющихся в любой момент времени. Вдобавок к этому деформации могут включаться и выключаться, так что вы можете иметь гораздо больше, например, 960 "живых" потоков, даже при том, что только 960 из них фактически выполняются в любой момент времени.

Это утверждение верно для архитектуры Тесла, но оно неверно для Ферми и Кеплера. На СМ проще смотреть с точки зрения планировщиков деформации. В каждом цикле планировщик варпа выбирает приемлемый варп (деформация, которая не останавливается) и отправляет одну или две инструкции из варпа юнитам исполнения. Количество исполнительных блоков на SM указано в технических документах Ферми и Кеплера. Ядра CUDA примерно равны количеству исполнительных блоков, которые могут выполнять операции с плавающей запятой с целой и одинарной точностью. Существуют дополнительные исполнительные блоки для операций загрузки / хранения, ветвления и т. Д.

Compute Capability 1.x (Тесла)

  • 1 планировщик основы на SM
  • Отправка 1 инструкции на планировщик деформации

Compute Capability 2.0 (Fermi 1-го поколения)

  • 2 планировщика основы на SM
  • Отправка 1 инструкции на планировщик деформации

Возможность вычислений 2.1 (Fermi 2nd Generation)

  • 2 планировщика основы на SM
  • Отправка 1 или 2 инструкций на планировщик деформации

Compute Capability 3.x (Кеплер)

  • 4 планировщика основы на SM
  • Отправка 1 или 2 инструкций на планировщик деформации
Другие вопросы по тегам