Shader Model 6.10 та AgilitySDK 720: Microsoft показали нові можливості

Microsoft представила попередню версію Shader Model 6.10 та AgilitySDK 1.720, які запроваджують нові можливості для API DX12.

Що нового в Shader Model 6.10

Цей реліз розширює функціонал попередньої версії Shader Model 6.9, DXR 1.2 та покращень, представлених в AgilitySDK 1.619. Shader Model 6.10 включає набір API для роботи з матрицями, що отримав назву LinAlg (скорочення від Linear Algebra). Ця функція дозволяє розробникам керувати інструментами нейронного рендерингу безпосередньо з окремих потоків шейдерів у графічних конвеєрах у режимі реального часу. Також забезпечується використання високошвидкісних матричних обчислень MMA для застосунків машинного навчання та обробки зображень.

Ключові зміни та покращення

  • LinAlg API: Надає потужні інструменти для роботи з матрицями, оптимізовані для машинного навчання та нейронного рендерингу.
  • Нові функції для координації хвиль: Вбудовані функції GetGroupWaveIndex та GetGroupWaveCount передають обчислювальним, сітчастим, підсилювальним та вузловим шейдерам інформацію про структуру хвиль всередині груп потоків. Це дозволяє координацію роботи без небезпечних обхідних шляхів, забезпечуючи коректну роботу для всіх розмірів хвиль.
  • Зняття обмежень спільної пам’яті: Shader Model 6.10 скасовує обмеження у 32 Кб на спільну пам’ять для груп. Новий атрибут [GroupSharedLimit(<bytes>)] дозволяє розробникам встановлювати максимальний обсяг групової пам’яті, необхідний шейдеру, що оптимізує використання ресурсів GPU.
  • Покращена обробка ресурсів: Застарілі команди, такі як ClearUnorderedAccessViewFloat/Uint, ResolveSubresource, CopyBufferRegion, тепер виконуються ефективніше завдяки функції Batched Async Commands. Нові методи списків команд усувають неявну серіалізацію, дозволяючи драйверу та обладнанню працювати незалежно, а розробники можуть використовувати явну синхронізацію лише там, де це дійсно необхідно.
Shader Model 6.10 та AgilitySDK 720: Microsoft показали нові можливості 1

Використання атрибуту [GroupSharedLimit(<bytes>)] дозволяє компілятору перевіряти пропускну здатність під час компіляції, зберігаючи доступ до повної потужності сучасних GPU. Шейдери, які не використовують цей атрибут, перевіряються на відповідність старим обмеженням, тому наявний код не зазнає змін. Це розблоковує такі можливості, як відбирання великих фрагментів, програмна растеризація та обробка великих матриць, які раніше обмежувалися специфікаціями, а не можливостями обладнання.

Shader Model 6.10 та AgilitySDK 720: Microsoft показали нові можливості 2

Вердикт ІТ-Блогу: Обов’язкове оновлення для розробників, які створюють графічні додатки, ігри та застосунки, що вимагають інтенсивних обчислень, особливо в галузі машинного навчання та реального часу рендерингу.

Подробиці можна знайти на сайті: itc.ua

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *