CG & C++ blog
57 subscribers
13 photos
2 files
129 links
Краткий обзор публикаций, презентаций, докладов по графике и C++
Download Telegram
Кадр из NSight GPUTrace.
#gpu_sync #nvidia
Особенности шедулера в NVidia

1. Работает 2 очереди, зеленое - пиксельный шейдер, оранжевое - асинхроный компьют шейдер. На NVidia когда активна графическая очередь, на асинхронную компьют очередь выделяется не более 30% варпов.

2. По какой-то причине графическая очередь вытесняет компьют очередь.

3. Заканчивается рендер пасс и начинается обновление юниформ для следующего рендер пасса. Небольшой всплеск похож на рендеринг до фрагментного шейдера, который ждет обновление юниформ.
Барьер никак не затрагивает компьют очередь, асинхронный компьют как раз и нужен чтобы заполнять такие пустоты, но запуск шейдеров не происходит. Как и в начале (1) шедулер раскидывает графику по всем варпам и только потом добавляет к ним асинхронный компьют.

4. Начинаются короткие рендер пассы, разделенные барьерами. При этом на компьют выделяется не более 30% варпов, даже когда часть варпов простаивает (светло-сервый).

5. При более долгом простое (полная остановка графической очереди), компьют очередь занимает более 30%.

В итоге обновление юниформ буфера между рендер пассами может вызвать простой ГП на 0.3мс и даже асинхронные очереди не заполняют простаивающие варпы.
Более правильный способ - обновлять юниформы один раз в начале кадра.
#gpu_sync #nvidia
Advanced API Performance: Async Compute and Overlap
Статья от NVidia, рассказывают как правильно использовать async compute, как профилировать.
#gpu_sync #nvidia
Ada GPU architecture
Описание архитектуры RTX 40xx.
Старшая модель содержит 12 GPC (graphics processing clusters), в каждом кластере свой raster engine, что в теории позволяет рисовать параллельно, но эта фича давно заблокирована в драйверах.
Для трассировки лучей добавили новые возможности:
* Opacity Micromap Engine - используется для ускорения альфа теста, то есть пустые области в геометрии теперь обрабатываются в железе, а не в шейдере (расширение VK_EXT_opacity_micromap).
* Displaced MicroMesh Engine - оптимизирует сложную геометрию, 10х быстрее строится BVH, 20х компактнее.
* Shader Execution Reordering - как следует из описания эта фича только для трассировки и, возможно, требует ручного управления, зато в 2 раза ускоряет вторичные лучи.

Про DLSS 3 пока нечего сказать, надо самому тестировать, прошлые версии местами давали сильные артефакты.

Прошлые модели: Ampere, Turing, Pascal

#nvidia