> > > > Futuremark 3DMark Time Spy – подробности поддержки Asynchronous Compute

Futuremark 3DMark Time Spy – подробности поддержки Asynchronous Compute

Опубликовано:

По поводу поддержки Asynchronous Compute в свежем тесте Time Spy от Futuremark ходит много слухов, поэтому разработчик решил выступить с заявлением. В нем, в частности, Futuremark отвечает на обвинения в том, что процессы Asynchronous Compute реализованы некорректно, отвергая подозрения в предпочтении того или иного производителя GPU.

В частности, при использовании видеокарт на GPU Maxwell от NVIDIA поддержка Asynchronous Compute не активируется, хотя производитель GPU заявляет о ее наличии. Но драйвер переключается на альтернативный путь рендеринга, что несколько ухудшает результаты. Все это мы наблюдали в наших тестах, что позволило высказать предположение о некорректной работе Asynchronous Compute на архитектуре NVIDIA Maxwell.

Распределение процессов 3DMark Time Spy
Распределение процессов 3DMark Time Spy

Анонс Futuremark вызвал путаницу, поскольку, если верить разработчику, Time Spy стал первым настоящим тестом DirectX 12, изначально разработанным под новый интерфейс. Но Time Spy опирается только на функциональный уровень DirectX 11_0, лишь частично используя уровень DirectX 12_0. Как раз для упомянутых Async Compute и Explicit Multi-Adapter.

Теперь Futuremark выступила с заявлением, в котором детально пояснила реализацию Direct Compute и очередей. Разница между GeForce GTX 1080, GeForce GTX 970 и Radeon RX 480 поясняется графически, в виде разной структуры очередей.

Если верить Futuremark, Asynchronous Compute является наиболее важной частью DirectX 12 и очень сильно влияет на тест Time Spy. По реализации поддержки Futuremark работала со всеми заинтересованными сторонами, в том числе AMD, Intel, Microsoft, NVIDIA и некоторыми другими.

Процедура работы была во всех случаях одинаковая, какой-либо оптимизации под конкретного производителя не вносилось. Поэтому результаты на разных видеокартах сравнимы друг с другом, какому-либо "железу" предпочтение не отдается. Выполнение очередей Compute Queue последовательно или параллельно задается не тестом, а драйвером, и здесь, если верить Futuremark, как раз и наблюдаются отличия по результатам теста. Futuremark не имеет возможности влиять на поведение процессов/очередей или оптимизировать их под специфические нужды. Обработка теста зависит от драйвера и аппаратного обеспечения.

Direct и Compute Queue на видеокартах GeForce GTX 970, GeForce GTX 1080 и Radeon R9 Fury

Futuremark также привела детальный анализ, который мы рассмотрим ниже. Для анализа использовалась программа GPUView. GPUView отображает пакеты, которые сортируются и выполняются в очередях. Очереди Direct и Compute отображаются с горизонтальным разделением.

Для GeForce GTX 970 мы получаем следующую картину:

Очереди и процессы GeForce GTX 970 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute) Очереди и процессы GeForce GTX 970 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Очереди и процессы GeForce GTX 970 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Слева выводится GPUView с активными Asynchronous Compute, справа – с отключенными. В обоих случаях мы наблюдаем похожую картину, очереди Compute Queue последовательно обрабатываются драйвером в аппаратную 3D-очередь. GPUView предполагает наличие двух отдельных очередей (со смешанными процессами Direct и Compute), но они объединяются в одну аппаратную очередь.

Поведение Radeon R9 Fury совсем иное:

Очереди и процессы Radeon R9 Fury (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)Очереди и процессы Radeon R9 Fury (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Очереди и процессы Radeon R9 Fury (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Здесь две отдельные очереди, которые видны со стороны контекста (то есть игры, в данном случае теста Time Spy) переводятся в две аппаратные очереди. Процессы, которые относятся к этим очередям, могут обрабатываться параллельно. Ситуация меняется, если выключить поддержку Asynchronous Compute. В таком случае можно видеть только одну очередь со стороны контекста и со стороны аппаратного обеспечения. Аппаратное обеспечение и драйвер при выключенной Asynchronous Compute не создают очередь для дополнительных вычислений. Такой случай предусмотрен в тесте Time Spy, на видеокарту накладывается соответствующая нагрузка. Влияние со стороны драйвера или видеокарты исключается.

Для демонстрации разницы с GeForce GTX 970 интересно взглянуть на работу GeForce GTX 1080:

Очереди и процессы GeForce GTX 1080 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)Очереди и процессы GeForce GTX 1080 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Очереди и процессы GeForce GTX 1080 (слева с Asynchronous Compute, справа – с отключенным Asynchronous Compute)

Мы наблюдаем такую же картину, что и с Radeon R9 Fury, хотя очереди обрабатываются немного иначе, чем в случае NVIDIA, поэтому и внешний вид отличается. Но хорошо видно, что у GeForce GTX 1080 используется дополнительная очередь Compute Queue, в которой могут одновременно выполняться процессы Direct и Compute. Если отключить поддержку Asynchronous Compute, то и соответствующая очередь исчезает.

Социальные сети

комментарии (5)

#1
Зарегистрирован: 20.06.2015

Пользователь
Постов: 77
А для тупых можно разжевать?)) По картинкам ничего понять не смог.
#2
customavatars/avatar3071_1.gif
Зарегистрирован: 19.03.2016
Russia
Новичок
Постов: 43
Так всё-таки на GPU Maxwell от NVIDIA, есть поддержка Asynchronous Compute? В частности интересует GTX 980Ti.
#3
customavatars/avatar4_1.gif
Зарегистрирован: 04.03.2012

Администратор
Постов: 909
Нет поддержки, все идет в одну очередь.
#4
customavatars/avatar2759_1.gif
Зарегистрирован: 26.01.2015

Постоялец
Постов: 458
И тем не менее 980-я без нативной поддержки Asynchronous Compute уделывает по этому показателю карту с её полной реализацией в "железе" (фурию). Если я правильно понял новый тест Time Spy?
Ну чё, браво Хуан! Ну и ребяткам из футурымарка можно тоже похлопать. :)
#5
Зарегистрирован: 13.02.2014

Постоялец
Постов: 144
Zitat Див;22291
И тем не менее 980-я без нативной поддержки Asynchronous Compute уделывает по этому показателю карту с её полной реализацией в "железе" (фурию). Если я правильно понял новый тест Time Spy?
Ну чё, браво Хуан! Ну и ребяткам из футурымарка можно тоже похлопать. :)




Ну ребятам из футурымарка хлопать не за что. А вот хуанг и правда молодец - красные извращаются как могут ( и память новую ставят, и разный асинхрон придумывают. и поддержки всякие пиарят)
А хуан просто берет, перелопачивает/ доводит до ума архитектуру, оттачивает ПО, и ставит красных раком. ( и даже поддержка фич на аппаратном уровне не помогает АМДы)

ЗЫ
недаром есть пословица - простота сестра таланта, прогресс зависит от нюансов (доведенных до ума нюансов)
Войдите, чтобы оставить комментарий