Какова задержка времени выдачи инструкций планировщиков деформации в CUDA?
У меня сложилось впечатление, что (один) планировщик деформации в вычислительных возможностях 1.x GPU выдает одну инструкцию на деформацию каждые 4 цикла, и, поскольку задержка арифметического конвейера составляет 24 цикла, его можно полностью скрыть, имея 6 активных деформаций в любое время.
Что касается вычислительных возможностей 2.1. Графические процессоры, в Руководстве по программированию упоминается, что "В каждый момент выдачи инструкций каждый планировщик выдает две независимые инструкции", а в посте Как Как планировщик деформации CUDA выдает 2 инструкции за раз для деформации? предполагает, что каждый планировщик может выдавать одну инструкцию за деформацию за цикл.
Так, какова точная задержка планировщика деформации? Каждый сколько циклов выдается инструкция за деформацию? Выполняется ли другая инструкция (MIMD) одновременно для любой активной и готовой деформации?
1 ответ
Да, в cc 1.x SM есть один планировщик деформации, и для целочисленных операций и операций с плавающей запятой одинарной точности он выдаст инструкцию в течение 4 тактов для обслуживания всей деформации.
В cc 2.x SM есть два планировщика деформации. Из руководства по программированию мы видим, что поведение этих 2 планировщиков немного отличается между cc 2.0 и cc 2.1:
При каждом выпуске команды каждый планировщик выдает:
• Одна инструкция для устройств с вычислительной способностью 2.0,
• Две независимые инструкции для устройств вычислительной способности 2.1,
для некоторой деформации, которая готова к выполнению, если таковая имеется. Первый планировщик отвечает за деформации с нечетным идентификатором, а второй планировщик отвечает за деформации с четным идентификатором. Обратите внимание, что, когда планировщик выдает инструкцию с плавающей запятой двойной точности, другой планировщик не может выдать какую-либо инструкцию. Планировщик деформации может выдавать инструкцию только половине ядер CUDA. Поэтому, чтобы выполнить инструкцию для всех потоков деформации, планировщик деформации должен выдать инструкцию за два такта для целочисленной или арифметической инструкции с плавающей точкой.