Использование асинхронных вычислительных блоков повышает производительность AMD Radeon в DirectX 12

08/04/2015 10:28 460
В каждом графическом процессоре AMD с архитектурой GCN имеются так называемые асинхронные вычислительные блоки (Asynchronous Compute Engines, ACEs). Они отвечают за одновременную обработку нескольких задач. И, как оказалось, эти блоки можно использовать для работы с асинхронными шейдерами DirectX 12, получая выигрыш в производительности до 46%.

Графический конвейер в DirectX 11


Асинхронные шейдеры — новая возможность низкоуровневых API нового поколения, таких как DirectX 12, Vulkan и Mantle, недоступная на старых версиях DirectX и OpenGL. Она позволяет одновременно и асинхронно запускать несколько задач на выполнение на вычислительных ядрах графического процессора, будучи аналогом классической многопоточности, реализованной в современных центральных процессорах.



Параллелизм в DirectX 12


Зачатки многопоточности были реализованы ещё в DirectX 11, однако в современных графических процессорах, состоящих из тысяч вычислительных ядер, они не могут раскрыть всего их потенциала. В частности, DirectX 11 не допускает одновременный запуск многочисленных задач без существенного усложнения кода, а значит, существенная доля ресурсов GPU остаётся невостребованной и простаивает в ожидании.





Так дела обстояли до появления новых API: DirectX 12, Mantle и Vulkan, в которых были реализованы вышеупомянутые асинхронные шейдеры, позволяющие независимый запуск и одновременное выполнение множества задач. Но для работы данной технологии требуется и соответствующая поддержка со стороны графического процессора. Таковая поддержка имеется в чипах AMD с архитектурой GCN — каждый чип содержит минимум два блока ACE, а старшие модели несут на борту по восемь таких блоков.





Тестирование в LiquidVR показало, что использование асинхронных шейдеров увеличило производительность со 158 до 230 кадров в секунду, то есть примерно на 46 %. И дело не ограничивается демонстрационными программами и тестами: уже выпущен ряд игр, поддерживающих асинхронные шейдеры — Battlefield 4, InFAMOUS Second Son и The Tomorrow Children на платформе PS4 и Thief на платформе PC.





Пример с LiquidVR лишь показывает, какой выигрыш может обеспечить включение лишь одной функции — асинхронных шейдеров. Потенциал действительно впечатляет, и остаётся только надеяться, что этим потенциалом в должной мере воспользуются разработчики современных игр.

captcha

Компьютерный мир

Вся информация на страницах сайта предназначена только для личного не коммерческого использования, учёбы, повышения квалификации и не включает призывы к каким либо действиям.

Частичное или полное использование материалов сайта разрешается только при условии добавления ссылки на непосредственный адрес материала на нашем сайте.