Microsoft выпустила технологию Work Graphs, которая является частью последней версии DirectX 12. Данная технология позволит разгрузить центральный процессор за счёт переноса планирования задач на видеокарту, что теоретически даст прирост производительности системам с маломощными CPU.
Сейчас конечная картинка на экране формируется совместными усилиями CPU и GPU, но иногда CPU не успевает подготовить задачи для расчёта на GPU, в результате видеокарта простаивает, ожидая новых указаний. Технология Work Graphs призвана сделать GPU более автономным, чтобы он мог сам подавать себе рабочие задания и сократить количество обращений к CPU.
С помощью Work Graphs разработчики игр могут оптимизировать конвейеры производитель-потребитель, которые эффективно переносят тяжелые рабочие нагрузки с CPU на GPU. В этой системе поток, работающий на GPU (производитель), может зарегистрировать запрос на выполнение другой работы (потребитель). Работа будет запланирована GPU, как только появится свободное место, и при необходимости этот поток также может стать потребителем. Проще говоря, вместо ожидания выполнения каждого этапа расчётов, CPU может составить последовательность задач, которые GPU выполнит, не обращаясь каждый раз к CPU.
Дополнительно ускорить взаимодействие центрального и графического процессоров предполагается благодаря функции GPU Upload Heaps из Shader Model 6.8 — она позволяет CPU и GPU обмениваться данными заметно быстрее, за счёт отсутствия необходимости передавать данные из видеопамяти центральному процессору через шину PCI. Эта функция использует технологию ResizableBAR, позволяющую CPU с минимальными задержками записывать данные в видеопамять.
Work Graphs и Shader Model 6.8 стали доступны разработчикам игр через Agility SDK 1.613. Этот SDK уже можно использовать с новейшими драйверами AMD и NVIDIA. Технология Work Graphs поддерживается графическими процессорами NVIDIA Ampere и Ada Lovelace (GeForce RTX 3000 и RTX 4000) с установленными драйверами версии 551.76 или новее. Что касается AMD, то Work Graphs сейчас работает лишь на графических процессорах с архитектурой RDNA3 (видеокарты Radeon RX 7000). Обновлённые драйвера с поддержкой нового SDK от Intel пока не вышли.
Стоит отметить, что одним лишь обновлением видеодрайвера производительность не поднять — технология Work Graphs должна быть реализована в играх, а значит инициативу должны поддержать и игровые разработчики.
Компания NVIDIA также опубликовала техническую демонстрацию, позволяющую оценить работу Work Graphs. В видео выше показана её работа — примерно в на 1:20 можно увидеть заметный прирост производительности за счёт новой технологии. В тесте использовалась видеокарты GeForce RTX 4090 и процессор Ryzen 7 7700X.
Источники: