AMD рекламирует технологию асинхронных шейдеров в своей архитектуре GCN

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

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

На сегодняшний день, несмотря на то, что многие задачи обработки графики можно распараллелить, они выполняются последовательно из одной очереди и в заранее определенном порядке. Однако с асинхронными шейдерами доступны три разные очереди — очередь графики, очередь вычислений и очередь копирования — и задачи из разных очередей можно планировать независимо. Очередь Graphics предназначена для обработки основных задач рендеринга, очередь Compute — для таких вещей, как физика, освещение и эффекты постобработки, а очередь Copy — для передачи данных.

слайд 8

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

слайд 7

При использовании асинхронных шейдеров и Direct X12 (или Vulkan, или Mantle ) задачи разбиваются на три доступные очереди и распараллеливаются. Конечным результатом является то, что всю ту же работу можно выполнить за меньшее время, что может уменьшить задержку, повысить частоту кадров или и то, и другое. Ресурсы графического процессора используются более эффективно, а производительность значительно повышается.

слайд 2

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

слайд 3

Использование асинхронных шейдеров возможно с графическими процессорами AMD на базе GCN благодаря тому, что AMD называет асинхронными вычислительными двигателями, обозначенными ACE, расположенными по бокам командного процессора на блок-схеме выше. (в самом верху схемы)

слайд 4

В современных продуктах на базе Hawaii, таких как Radeon R9 290X, может быть до 8 асинхронных вычислительных модулей на каждый GPU, и каждый ACE может управлять до 8 очередями, и все они работают параллельно с командным процессором. Механизмы асинхронных вычислений имеют доступ к кешу L2 графического процессора и кешу Global Data Shared, а также обеспечивают быстрое переключение контекста.

слайд 5

В демонстрации из AMD LiquidVR SDK сцена обрабатывается с отключенными асинхронными шейдерами и эффектами постобработки и отображается со скоростью около 245 кадров в секунду. Включите эффекты постобработки с отключенными асинхронными шейдерами, и частота кадров упадет до 158 кадров в секунду. Все еще быстро, но это, очевидно, значительное падение производительности. Однако при включении асинхронных шейдеров производительность возвращается к диапазону 230 кадров в секунду.

слайд 6

Асинхронные шейдеры имеют множество применений помимо виртуальной реальности и уже используются на PS4 в таких играх, как Battlefield 4, InFAMOUS Second Son и The Tomorrow Children, а также на ПК в Mantle-версии Thief, но они могут быть особенно полезно для таких вещей, как асинхронная деформация времени, чтобы минимизировать задержку отслеживания головы за счет выполнения обработки изображения VR параллельно с реальным рендерингом сцены. Асинхронная деформация времени также является возможностью графических процессоров NVIDIA на базе Maxwell; мы обсуждали это и несколько других функций, связанных с технологиями NVIDIA VR Direct, в нашем первоначальном обзоре запуска GeForce GTX 980 .

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

Источник (англ.)

Поставить оценку
Кофебрейкер | Интернет-журнал