как работает многопоточность в графических процессорах?


Как графический процессор обрабатывает многопоточность ??

В процессорах, например, для каждого потока будут существовать независимые копии файла регистра. Но с большими файлами регистров, как в графических процессорах, это будет невозможно. Итак, как графические процессоры обрабатывают потоки ?? Помещают ли они их в один и тот же файл реестра ? Что делать, если некоторые регистры используются в нескольких потоках ? Как это работает ?

1 2

1 ответ:

Графические процессоры NVIDIA имеют 1-4 планировщика деформации на потоковый мультипроцессор (SM). Каждый планировщик SM warps имеет локальный файл реестра. Деформации выделяются в планировщик деформаций, а регистры выделяются из файла регистров. Распределение длится в течение всего времени существования варпа. На каждом цикле каждый планировщик варпа выбирает подходящий варп (не заглохший) из своего активного списка варпа и выдает 1-2 инструкции (CC

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