Как шейдеры соотносятся с реальным оборудованием GPU

в попытке лучше понять Программирование GPU и GPU, я хотел бы получить лучшую ментальную картину шейдеров и как они реализованы на GPU. Существует ли связь 1 к 1 между программой шейдера и ядром GPU? Итак, программа вершинного шейдера работает на одном ядре, а фрагментный шейдер работает на другом ядре? Затем данные передаются из ядра вершинного шейдера в ядро фрагментного шейдера? Или каждое отдельное ядро на GPU отвечает за все шейдеры и все графический конвейер? Смысл один графический процессор Core содержит вершинных шейдеров, тесселяции, шейдер геометрии и т. д. и каждое ядро будет выводить последний пиксель. Любая информация, которая поможет укрепить мою ментальную картину, будет полезна.

12
задан Boagz
02.05.2023 21:10 Количество просмотров материала 2964
Распечатать страницу

1 ответ

точное отношение зависит от карты и водителя. Шейдерные программы преобразуются из универсальных форм (OpenGL или DirectX, например) во что-то, что карта может работать напрямую, как JIT-in-time компиляция для таких языков, как Java, которые используют байт-код.

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

современные карты назначают работу динамически, поэтому редко существует отношение 1:1. Каждое ядро имеет несколько потоковых процессоров, поэтому может обрабатывать несколько шейдеров одновременно, если они не слишком сложны.

0
отвечен 2023-05-04 04:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх