Почему каждый поток имеет свой собственный счетчик адресов команд внутри деформации? - PullRequest
0 голосов
/ 24 сентября 2019

Деформации в CUDA всегда включают 32 потока, и все эти 32 потока выполняют одну и ту же инструкцию , когда деформация выполняется в SM.Предыдущий вопрос также говорит, что каждый поток имеет свой собственный счетчик команд, как указано ниже.

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

Каждый поток имеет свой собственный счетчик адресов команд и состояние регистра и выполняет текущую инструкцию на своих собственных данных

1 Ответ

3 голосов
/ 26 сентября 2019

Я не могу ответить непосредственно на цитируемый текст, потому что у меня нет книги, из которой он исходит, и я не знаю намерений авторов.

Однако для каждой темы имеется независимый счетчик программ.считается новой функцией в Volta, см. рисунок 21 и заголовок в техническом описании Volta :

Вольта поддерживает ресурсы планирования для каждого потока, такие как счетчик программ (ПК) истек вызовов (S), в то время как более ранние архитектуры поддерживали эти ресурсы в зависимости от основы.

Эта же техническая документация, вероятно, справляется примерно так же хорошо, как вы поймете, зачем это нужно в Volta, и, вероятно, она несетперейти к более новым архитектурам, таким как Тьюринг:

Независимое планирование потоков Volta позволяет графическому процессору обеспечивать выполнение любого потока, либо для более эффективного использования ресурсов выполнения, либо для того, чтобы один поток ожидал, пока данные будутпроизводится другим.Чтобы максимизировать параллельную эффективность, Volta включает оптимизатор расписания, который определяет, как группировать активные потоки из одной и той же основы вместе в блоки SIMT.Это сохраняет высокую пропускную способность выполнения SIMT, как в предыдущих графических процессорах NVIDIA, но с гораздо большей гибкостью: теперь потоки могут расходиться и повторно сходиться с гранулярностью суб-деформации, в то время как оптимизатор сходимости в Volta по-прежнему будет группировать потоки, которые выполняют тот же код, изапускайте их параллельно для максимальной эффективности

Из-за этого деформация Вольта может иметь любое количество подгрупп потоков (вплоть до размера деформации, 32), которые могут находиться в разных местах в инструкцииручей.Дизайнеры Volta решили, что лучший способ поддержать эту гибкость состоит в том, чтобы предоставить (среди прочего) отдельный ПК для каждого потока в варпе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...