Содержание
Microsoft показала, как Shader Execution Reordering (SER) в составе Shader Model 6.9 может ускорять сложный рендеринг. В демонстрационном тесте компания получила до +90% к частоте кадров на видеокартах Intel Battlemage (B-series).
Параллельно Microsoft зафиксировала прирост и на флагмане NVIDIA: в том же примере GeForce RTX 4090 прибавила около 40%. Речь именно про sample-тест, а не про «среднюю игру по больнице». Поэтому в реальных проектах эффект может оказаться ниже.
SER в DirectX: что именно оптимизируют
SER расшифровывается как Shader Execution Reordering. Это техника, которая повышает эффективность трассировки лучей, когда один луч попадает в разные объекты и для каждого нужен свой шейдер. В таких сценах GPU часто упирается не в «сырой» TFLOPS, а в организацию исполнения.
Проблема в том, что при разнородных шейдерах потоки внутри одного «пакета» исполнения (warp) начинают ждать друг друга. Часть вычислительных блоков простаивает, пока остальные заканчивают свою работу. SER меняет порядок выполнения так, чтобы шейдеры шли более «согласованно» и уменьшали простои.
Как работает переупорядочивание шейдеров в трассировке лучей
По описанию Microsoft, подход выглядит так: когда луч «собирает» попадания по сцене, результаты временно складывают, а затем переупорядочивают. Критерии — близость в пространстве и схожесть требуемых шейдеров. После этого GPU исполняет задачи более когерентно, и это повышает загрузку блоков.
Отдельно Microsoft отмечает связку HitObject и SER. Она помогает переупорядочивать работу и эти с учетом информации в HitObject и подсказок от разработчика. Итог — выше когерентность при обработке hit/miss, а значит меньше «холостых» циклов.
Shader Model 6.9 и требования: AgilitySDK 1.619
SER входит в Shader Model 6.9. Для него нужен AgilitySDK 1.619. Microsoft позиционирует SER как часть стандартного стека, который будет доступен через будущий драйверный код.
По аппаратным ограничениям ясности пока мало. На момент публикации Microsoft не перечислила жесткий список поддерживаемых GPU. Но по демонстрации видно, что технологию как минимум проверяли на Intel Battlemage и на NVIDIA Ada Lovelace (RTX 4090).
Сравнение с подходом NVIDIA: SER уже применяли в Path Tracing
SER — не идея «с нуля». NVIDIA уже внедряла похожую оптимизацию в контексте Path Tracing, и это давало приросты в рендеринге. Для тех, кто хочет копнуть глубже в официальные детали, у Microsoft есть разбор в блоге DirectX: Shader Execution Reordering (SER) в DirectX.
Что это значит на практике
Цифры Microsoft выглядят внушительно, но их нельзя напрямую переносить на любые игры. Компания тестировала SER на демонстрационном примере, а игровые движки смешивают много разных нагрузок. Если разработчики начнут активно использовать Shader Model 6.9, SER может стать еще одним способом «дешевле» ускорять трассировку лучей без роста энергопотребления и цены железа.
Источники: Microsoft