Вероятно, все вы уже наслышаны о грядущей DirectX 12, особенно о том, как она в разы подымет производительность компьютеров. Но сегодня разговор пойдёт о другом — как этот набор API работает с двумя видеокартами одновременно (а это лишь одна из его особенностей).

Благодаря появлению стратегии Ashes of Singularity подвернулась превосходная возможность протестировать новую версию набора API на подходящем испытуемом. Стоит учесть, что ни сама DirectX 12, ни игра до сих пор не оптимизированы должным образом, но к тесту были готовы. Проект Ashes of Singularity от других игр отличается особо высокими требованиями к железу и, конечно же, поддержкой новой DX 12. Для проведения тестов использовались разные видеокарты: Radeon R9 Fury X, GeForce GTX 980 Ti, Nvidia GeForce GTX Titan X, GTX 680 и Radeon HD 7970. Что до остальной начинки компьютера, использовали 4.2GHz Intel Core i7-4960X вместе с 32GB DDR3 ОЗУ.

https://www.youtube.com/watch?v=R8elZXiCDBI


Было выяснено, что независимо от выбора главной видеокарты, производительность выходит одинаковая. Но, что более занимательно — совмещение двух карт даёт значительно больше кадров в секунду, чем использование одной. Ниже в таблице сравнений вы можете увидеть результаты тестов. И это под разрешением 2560х1440 на высоком показателе качества.



Как вы могли заметить, DX 12 поддерживает помесь карт от разных производителей: GeForce и Radeon (Nvidia / AMD). Теперь вопрос в другом: что будет, если поместить в компьютер две одинаковые карты, а затем поменять на разные? Результаты довольно необычны (представлены ниже). Оказывается, что использование разных карт выдаёт большую производительность.



Производительность после указанных ухищрений подымается на 45-80%. Помирятся ли теперь NVIDIA и AMD? Ведь только дуэт из видеокарт обоих производителей приносит максимальный эффект, и пока не известно, почему происходит именно так. Тем временем, показатели использования памяти компьютера у первой карты достигали 100%, а у второй — 90% (при одновременном использовании двух). Видимо, виной всему послужила необходимость ожидания синхронизации между картами. А ниже представлена таблица тестов с ещё большим разрешением экрана.



Проблема только в том, что обе видеокарты должны быть одного, так скажем, 'уровня'. Сейчас не получится совместить что-то старое - скажем, GTX680 - с топовыми картами (например, с Титаном). Тем не менее, результаты вышли весьма убедительными и будоражащими. Теперь пользователи смогут значительно поднять мощность своих компьютеров. Мало того, по цене будет гораздо выгоднее купить две более дешевые карты и получить отличную мощность, вместо покупки дорогостоящих топовиков, которые обойдутся в десятки раз дороже. Но, к сожалению, кроме Ashes of Singularity пока нет игр, поддерживающих DX 12 (я, по крайней мере, о таких не слышал). Это означает, что почувствовать всю мощь DX 12 мы сможем только на грядущих проектах, да и будет это ещё не скоро.
Комментарии
  • 0Nord | 28 октября 2015 г.
    Чё-та подозрительно, что ни слова об эксклюзивности для Американских Спецслужб 10. Или инфа устарела?
  • 0John_Nyaruki | 28 октября 2015 г.
    Не потянет.
  • 0SAXAHOID | 28 октября 2015 г.
    DirectX — это не программа, это набор API/библиотек.

    По материалу: исследование — фигня, откровенно говоря.
    Самое интересное при переводе автор "потерял" — как организована вся эта штука. В исходном материале про это тоже не то чтобы много написано, но кое-что я могу предположить с высокой долей вероятности.
    "Мостиков" не вижу (да и не поставить их между nVidia/ATI), потому логично предположить, что видеокарты работают вместе исключительно на софтварном уровне. Хорошо это или плохо — другой вопрос, сравнения с "железным" вариантом писатели статьи не сделали.
    Кое в чём это, впрочем, точно плохо. Если не ошибаюсь, под SLI/CrossFire можно было писать, как под одну видеокарту. Всё остальное делал драйвер.
    С таким же сетапом надо писать, точно зная, что видеокарты будет две/три/сколько их там. Причём если планируется поддержка разных производителей, то и это придётся учитывать.

    Всё это, как ни печально, означает, что повсеместной суперпроизводительности мы не увидим. Штука получается на уровне с многоядерными процессорами — под эту фигню надо оптимизировать игру. Ручками, как говорится. Даже сегодня денег на нормальную реализацию этого хватает только у самых что ни на есть ААА (которые опосля ещё и отказываются нормально работать на процессорах с меньшим кол-вом ядер, чем то, под которое их оптимизировали). И это ещё, заметьте, процессоры и Intel, и AMD для игры абсолютно одинаковы (впрочем, тут есть несколько "но"), так как построены на одной архитектуре. nVidia/ATI же... Ой как не факт.
    Использованный для теста билд игры, насколько я понимаю из оригинала, как раз специально оптимизировали на этот случай.

    Т.е. если вообще этот финт с многими картами приживётся, мы придём к моменту, когда для игры будет необходимо несколько дискретных GPU. Как вам такое в минимальных системных требованиях?

    Следующая проблема — из-за различия между картами разных производителей, игру можно оптимизировать под какого-то одного из них. Или именно под связку "Один + другой". Сам тест не показателен в этом смысле — да, полоски можно воспринимать как "Эта связка круче", но вполне можно и как "Под эту связку лучше оптимизировали". Что это может дать? Очевидно — проплаченные производителями оптимизации "против конкурента".

    Наконец, было бы интересно увидеть что-то подобное под 'новый OpenGL', то есть Vulkan. Потому что ДырыИкс®©™ на нормальные системы выйдут очень сомнительно, "железная" поддержка в картах уже есть, и для Vulkan заявлены во многом сходные фичи.

    Зря, кстати, Microsoft держатся за свою пропиетарную технологию. Игры, написанные под DirectX, надо, чтобы портировать куда-то кроме Windows/Xbawks, полностью переделать. Игры, написанные на OpenGL, портируются куда проще. А если ещё на PS4 возьмутся использовать какой-то "стандартный" OpenGL (тот же Vulkan, более низкоуровневый и производительный — чего ещё на консолях надо?), то станет вообще весело.
    А может, не зря. Ну, поживём — увидим. Либо мелкомягких утопят, переключившись на более простой в поддержке в нескольких средах сразу API (на Windows тоже работающий, между прочим), либо они будут продолжать грести деньги лопатой, ещё и усложняя разработчикам портирование (фактически, обеспечивая играм на Windows больший шанс эксклюзивности).

    Ну или, лол, будет как с Mono — напишет кто-то, возмутившись, свободную реализацию Дыр, и вышеупомянутые сложности с портированием эффективно нейтрализует.
    • 0LotusBlade | 28 октября 2015 г.
      Ну, это всего лишь первый альфа-тест ранних версий. Хотя набрасываться и тут, кончено, можно xD. Можно также говорить, что 'твой ребёнок вырастет уголовником, потому что в 5 лет своровал конфету у бабушки на холодильнике' xD Дайте же помечтать, люди. В эру постоянного роста требований к железу это хоть какая-то надежда для таких как я, что не нужно будет покупать новый комп за $1500 (и то, выйдет машинка так-себе), а достаточно будет пришвартовать вторую видеокарту.

      Взять те же VR-игры. Уже появилось с десяток штук, причём в большую часть я играл на ПК без шлема. Да, он предпочтителен, но не обязателен. Сомневаюсь, что выпустят спецом требования под две карты, да ещё и именно под два особых типа / вида. Да, эти игры оптимизированы именно под шлем, но нет, это не влияет на игроков без шлема в плане дополнительных лагов.

      И нет, насколько понял я, игру спецом не оптимизировали под этот тест, о чём было сказано где-то там в новости. Они просто решили наобум сделать тестинг. Есть гайка, есть шуруп, давай-ка проверим... Проверили. Что-то, да вышло. А вот когда подтянут всё до бета-версии или релиза, вот тогда выйдут циферки уже реальные.
      • 0SAXAHOID | 28 октября 2015 г.
        Сравнение с VR некорректно. VR — это просто gimmick, как геймпад или руль, кому-то с ним лучше, кому-то нет.
        Здесь мы говорим о производительности. Сравнение с ядрами процессоров куда точнее — а теперь давай откроем любую современную игру и посмотрим на системные требования. Два ядра, два ядра, два ядра... Скоро уже четыре минимум будет, если ещё таких нет. Да, не всегда игра использует эти ресурсы (а требования просто для маркетинга), but still.
        Из анекдотичного: великий Starcraft 2 требует двухядерного процессора, притом в Wine встречается со старкрафтом глюк, который лечится насильным запихиванием его на одно ядро. Да, от этого у людей быстрее работать начинает.

        >Наобум
        С низкоуровневыми интерфейсами нельзя наобум. И вообще, даже если нарочно не стараться сделать оптимизацию, она вполне может получиться неосознанно.

        Наконец, не всё так просто с "докупить вторую карту".
        Во-первых, производителям невыгодно, чтобы ты купил новый GPU на барахолке (да ещё не их марки!), потому они будут противодействовать этому.
        Во-вторых, даже тому же Intel невыгодно, чтобы игры стали менее требовательными к CPU.
        В-третьих, кому выгодно, так это производителям блоков питания и твоей электростанции. Видеокарта — часто самый мощный потребитель в системе.

        Нет, мечтать — это хорошо, конечно, но я к таким новостям очень скептично отношусь.
        Инструменты ещё десять лет назад стали такими, что основным bottleneck стал человеческий фактор. То есть, какой бы офигенный API не использовался, если движок писал индус, оно не поможет.
        • 0LotusBlade | 28 октября 2015 г.
          Скоро уже четыре минимум будет
          Насколько я знаю, компьютеры не используют 4 ядра в играх. 2 являются стандартом. Да и 'требования' это как этикетка на любом съестном товаре — там пишут то, что хотят (для отвода глаз, обычно) и никогда не пишут то, что соответствует действительности.

          Наконец, не всё так просто с "докупить вторую карту".
          Само собой производителям карт невыгодно, но DX 12 уже создали, так что поздно размышлять о выгодно / не выгодно xD Их карт уже полно на рынке, так что остановить пользователей будет невозможно. Да и всегда есть аматоры, готовые выпустить патчик на софт за 'так', чтобы убрать противодействия.

          Хотя не знаю, что тут невыгодного в снижении требований для ПК игр в несколько раз, я же тогда пойду в магазины и закуплю лицензии этих игр по $40, а так я о них только мечтать могу (тот же Kingdom Uder Fire 2, Blade and Soul). Завышая требования, они тупо теряют клиентов. Плюс всегда можно разработать ультра настройки, рассчитанные на эти мега карты новых поколений, а мне дать нормальные. Я и 30 фпсам буду рад, а сейчас имею 5-10.
          • 0SAXAHOID | 28 октября 2015 г.
            >компьютеры не используют 4 ядра в играх. 2 являются стандартом
            Верно сказано, но неверная причинно-следственная связь. Написано, будто второе вытекает из первого, а на деле первое — из второго. Как только 4 ядра станут стандартом (будут стоять у большинства юзеров), игры перестанут оптимизировать под два, а начнут под четыре. И это отразится в требованиях, разумеется.
            Игры-то не то чтобы в принципе не были способны использовать больше 2 ядер. Их просто пишут так. Некоторые вон уже даже сейчас расширяют, чтобы они подхватывали третье/четвёртое если оно есть, но мало кто так делает, потому что дороговато будет — оптимизацию на несколько вариантов выполнять.

            >Само собой производителям карт невыгодно, но DX 12 уже создали, так что поздно размышлять о выгодно / не выгодно xD
            Ну как сказать.
            Дорелизное тестирование уже тридцать лет как "создали"/придумали (а то и дольше, если учитывать не софт), но игр чего-то с каждым годом косых и кривых выходит всё больше и больше.
            "Целая игра сейчас и сразу" уже тридцать лет как "создали"/придумали, но чего-то ДЛЦ всё набирают и набирают популярность.
            Переносимые абстрактные интерфейсы, которые позволяют не задумываться вообще о том, на чём софт работает, придумали тоже очень давно, а ишь — всякие DirectX и прочие проприетарные технологии до сих пор процветают, а просто взять и перекомпилять в другую среду можно ой как далеко не каждый софт.
            Антимонопольные законы придумали, опять же, тоже очень давно, а мегакорпорации всё равно процветают, и многие даже уверены, что это хорошо.
            Глупо рассчитывать, что простой плебей, сидящий в доме на диване, способен в полную силу противостоять такому чудному понятию как выгодно. В драйвер просто возьмут и впишут, что при наличии чужой/второй карты в системе всё должно глючить. nVidia, если не ошибаюсь, уже так свой физикс на машинах с ATI выключают. Или ещё чего хитрое выдумают. Наконец, банально подкупят основных разработчиков/паблишеров, а, как известно, ААА и их аудитория у нас формируют рынок.
            Простой плебей способен выражать свой протест только индивидуально, написав упомянутый патчик (которые, кстати, появляются в сети далеко не всегда) — хотя к драйверу его ещё шута с два напишешь, надо сказать! — и/или вообще свалив, вон, на Линукс, где имеются свободные драйверы без всякой подобной фигни.
            Сделать так, чтобы выгода перестала иметь значение, получится, лишь если таких плебеев будет реально, ощутимо много. Покамест же хошь-нехошь, а судьба народа — кушать что дают и радоваться, если после недели пустой каши дают помидорку. Ведь, фигурально выражаясь, самому себе кроликов начать разводить — это проблема, неудобно, возиться надо...
            А тут взял — и съел. Включил — и работает. Только денежка трынь-трынь. Ну надо же им продолжать работать, право слово.

            >Хотя не знаю, что тут невыгодного в снижении требований для ПК игр в несколько раз, я же тогда пойду в магазины и закуплю лицензии этих игр по $40
            Это речь уже пошла о разработчиках самих игр, а не производителях железа. Но ладно.
            Оптимизация вышеупомянутая стоит денег. Вон людям проблема на несколько разных DX порт сделать, а тут речь про распараллеливание обработки — не хухры-мухры.
            Я повторюсь, API низкоуровневое. Его за счёт этого продвигают. А "низкоуровневое" означает, что можно достигнуть куда более высокой производительности/гибкости, но для этого надо ковыряться своими собственными ручками и знать матчасть. Любой дурак в школе сделает калькулятор на Delphi с графончиком, но посади этого дурака за тот же C, где "программировать мышкой" нельзя, а надо руками вызывать отрисовывающие функции, и он тут же заглохнет. А если кинуть его в классическую голую консоль, где вышеупомянутый графончик сначала ещё написать с нуля надо, то вообще повесится.
            Но это касается только тех, кто сам себе движки пишет. А остальные? У остальных тоже всплывают некоторые проблемы.
            1) Если это честные разработчики, то им, поверь, абсолютно неохота заниматься поддержкой всего этого цирка. Потому и завышают требования, чтобы к ним не писали с жалобами на старые карты. Мол, мы вам написали, что минимальные требования такие-то. У вас не подходит? Сам себе злобный Буратино. А то, чай, Буратино может и в суд подать, если у него не заработает на "подходящей" карте, которую просто не вышло протестировать у разработчиков.
            Собственно, по этой причине никто из разработчиков официально не одобряет запуск игр под Wine. Обычно, если понимают ситуацию, замалчивают. Потому что поддержка такого костыля — тихий ужас. Хотя, казалось бы, тоже, расширяют клиентскую базу, всё такое.
            2) Насчёт настроек — опять же, денежки. Для настроек пониже надо переделать текстуры, а иногда и модели... И всё оно как бы требует звона монеток, а игры и так вон дороговаты.
            3) Вполне распространённая (не сомневаюсь в этом) практика "покупки" разработчиков. Консольные паблишеры доплачивают за то, что игра выйдет у них эксклюзивом, а производители железа — за то, чтобы на их железе и на их условиях оно работало лучше. Может, Microsoft доплачивает за использование именно DirectX, я не знаю.
            Сколько именно платят — без понятия, но, небось, немало, раз ещё весь мир не перенял практику универсальности и кроссплатформенности.

            Вообще, проблема оптимизации — удивительная штука. И вот простенький, анекдотичный, пример "почему":
            Вася (пишет движок): Блин, память течёт.
            Петя (менеджер): Как течёт? Куда течёт? Что делать?!
            Вася: Ну как-куда, куда-то течёт. По всем прикидкам должно есть один ГиБ, а ест два. Не знаю, что делать. Надо бы сесть, перебрать движок, найти где что криво работает, оптимизировать, структуры покороче организовать и кеширование...
            Петя: Ты с ума сошёл?! Ты и так уже два раза свой бюджет проел! Мы релизимся завтра!.. А оно стабильно 2 ест?
            Веся: Ну стабильно.
            Петя: Значит пишем в требованиях "2 ГиБ" и иди ты к чёрту со своей оптимизацией!
    • 0Pache | 28 октября 2015 г.
      > Т.е. если вообще этот финт с многими картами приживётся, мы придём к моменту, когда для игры будет необходимо несколько дискретных GPU. Как вам такое в минимальных системных требованиях?

      И тут внутри меня всё похолодело. Учитывая, как хорошо приживаются в последнее время практики отъёма денег у населения, это вполне реально... А может даже и было задумано? Я конечно параноик и люблю теории заговора, но мы и не о ангелах говорим.
  • 0Dark_Kraken | 29 октября 2015 г.
    *чуть ли не в истерике*
    Да блин, я только-только карточку поновее купил, а они с очередным "прорывом в графике"! Ну сколько можно-то? Да с запрашиваемыми характеристиками можно уже Трансформеров как в фильме Бэя рендерить(я утрирую несколько, но всё-же), а не то что в игрульки играть.