Асинхронные шейдеры
В ускорителях GTX 900-й серии с архитектурой Maxwell, новый API DirectX 12 был реализован посредственно, за что Nvidia получила немало критики. Дело в том, DirectX 12 позволяет более эффективно использовать вычислительную мощность GPU за счет асинхронных шейдеров. Но в Maxwell с DX12 и, соответственно, асинхронными шейдерами «кинули». И пусть игры с поддержкой нового API можно пересчитать по правой руке фрезеровщика, получилось все равно неприятно.
Pascal, в свою очередь, существенно доработан в этом плане. Конечно, в архитектуре Nvidia это реализовано иначе, чем в AMD GCN. Интернет-дебаты по этому поводу точно будут.
Для понимания работы асинхронных шейдеров в реализации «зеленых» приведу пример:
Видеокарта проводит графические и физические просчеты каждой сцены. Сцены бывают разные, где-то больше физики, где-то графики. Соответственно, графическая часть может просчитаться быстрее физический, или наоборот. Предположим, графики меньше. Блоки, которые взяли на себя обработку графики, справятся с задачей быстрее, и пока не будет досчитана физическая часть, и не начнется обработка следующего кадра, блоки будут простаивать. GPU Pascal научился перераспределять нагрузку с уже посчитанной части, на не посчитанную. Кроме того, графический процессор теперь может прерывать некоторое задачи, и переключаться на более приоритетные.
Асинхронные вычисления и прочие доработки архитектуры существенно повысили производительность, особенно с очками виртуальный реальности. В обычных играх GTX 1080 лучше GTX 980 в 1,7 раза, при использовании VR – в 2,7 раза.
Означает ли это, что Nvidia продвинулась дальше AMD в асинхронных расчетах? Трудно сказать. К тому же, AMD еще официально не показала свою новую линейку ускорителей – Polaris.