Compute shaders — оптимізуйте свій рушій за допомогою compute
Lou Kramer
- Зала:
- Iron Hall (Mix Track)
Про що доповідь
Lou Kramer пояснює, чим compute-шейдери відрізняються від інших шейдерів і як їх ефективно використовувати в рушії. Вони не входять у графічний конвеєр, тому задіюють менше апаратних блоків GPU. Спікерка показує, як робота ділиться на групи потоків і хвилі (wavefront) та розподіляється по обчислювальних блоках. Звідси практичні правила: мінімізувати обмін даними між групами потоків, використовувати локальну пам'ять групи (LDS), не витрачати забагато векторних регістрів, бо це зменшує кількість хвиль і гірше ховає затримки, та уникати розбіжного керування потоком. На прикладі побудови міпмапів показано однопрохідне рішення з атомарним лічильником замість окремих пікселс-шейдерних проходів, що дало приблизно удвічі кращу продуктивність. Корисно графічним програмістам, які оптимізують рушій.