Компанія Valve відкрила новий компілятор шейдерів для GPU AMD

Компанія Valve запропонувала у списку розсилки розробників Mesa новий компілятор шейдерів ACO для Vulkan-драйвера RADV, позиціонований в якості альтернативи компілятору шейдерів з AMDGPU, що використовується в OpenGL і Vulkan-драйверах RadeonSI і RADV для графічних чіпів AMD.
Після завершення тестування та доопрацювання функціональності, ACO планується запропонувати для включення до основного складу Mesa.

Запропонований Valve код націлений на забезпечення генерації коду, наскільки це можливо, оптимального для шейдерів ігрових додатків, а також на досягнення дуже високої швидкості компіляції. Компілятор шейдерів, що є в Mesa, використовує компоненти LLVM, які не дозволяють досягти бажаної швидкості компіляції і не дозволяють повністю контролювати керуючий потік, що в минулому вже ставало причиною виникнення серйозних помилок. Крім того, відхід від LLVM дає можливість реалізувати більш агресивний аналіз розбіжностей і більш тонко керувати навантаженням на регістри, що дозволяє генерувати більш ефективні файли, що виконуються.

ACO написаний мовою С++, розробляється з огляду на можливість застосування для JIT-компіляції та використовує швидкі для перебору структури даних, уникаючи структур на основі покажчиків, таких як зв'язані списки та ланцюжки def-use. Проміжне подання коду повністю ґрунтується на SSA (Static Single Assignment) і дозволяє виконувати розподіл регістрів, точно попередньо обчислюючи регістр залежно від шейдера.

В даний час підтримуються тільки піксельні (фрагментні) і обчислювальні шейдери на дискретних GPU AMD (dGPU VI+). Тим не менш, ACO вже коректно збирає шейдери для всіх протестованих ігор, включаючи складні шейдери від ігор Shadow of the Tomb Raider та Wolfenstein II. Запропонований для тестування прототип ACO майже вдвічі перевершує компілятор шейдерів AMDGPU за швидкістю компіляції та демонструє збільшення FPS у деяких іграх, при їх роботі на системах з драйвером RADV.

Компанія Valve відкрила новий компілятор шейдерів для GPU AMD

Компанія Valve відкрила новий компілятор шейдерів для GPU AMD

Джерело: opennet.ru

Додати коментар або відгук