14:22 / 25.02.2015 Наука и техника

DirectX 12 позволит использовать видеокарты GeForce и Radeon вместе

DirectX 12 упростит синхронизацию видеокарт от разных производителей в одной системе.

Проблема синхронизации нескольких графических карт стоит давно и до сих пор решена лишь частично, по крайней мере, в секторе игровых решений. Профессиональные используют сложные и дорогие системы с функцией genlock, но они обеспечивают не столь хорошую масштабируемость, как технологии AMD CrossFireX и NVIDA SLI. Ещё сложнее подружить карты разных производителей, хотя и такие попытки предпринимались — достаточно вспомнить технологию HYDRA Engine, разработанную в стенах Lucid Logix. Все они были неудачны: стабильность и совместимость такой системы оказались неудовлетворительными. Мы знаем, что новая версия DirectX под номером 12 будет гораздо более низкоуровневой, поскольку концепция высокоуровневых API, похоже, достигла потолка своих возможностей и не может более развиваться эффективно.

Одной из наиболее интересных возможностей DirectX 12, обеспеченных «близостью к железу» является Explicit Asynchronous Multi-GPU (прямая асинхронная многопроцессорная графическая система). Новый API Microsoft умеет распоряжаться ресурсами графических адаптеров куда более эффективно, в том числе, и в плане объединения их в единый пул. А как черпать из этого пула — остаётся решать разработчикам игр. И уже известно, что объем видеопамяти на нескольких видеокартах в системе больше не будет дублироваться. Это позволит отказаться от использования AFR (alternate frame rendering), главным недостатком которой является высокий уровень задержек (порядка 4 — 5 кадров отставания от действий пользователя), и перейти на более эффективные методы разделения нагрузки между графическими процессорами, такие как SFR (split frame rendering). Но самое интересное сообщают источники, которые наши зарубежные коллеги с Tom’s Hardware называют «надёжными».

Речь идёт, ни много ни мало, а о возможности объединения в единую графическую подсистему графических крат разных производителей! То, на что замахнулась и не смогла осилить Lucid Logix с помощью специального коммутатора, похоже, удалось Microsoft с чисто программным подходом к созданию нового API. Причём, в режиме, когда Radeon и GeForce могут работать не просто вместе, а и вовсе над обсчётом одного кадра. Это впечатляет. И открывает немало интересных перспектив, особенно в плане совместного использования технологий, ранее доступных только одному из двух лагерей — «зелёным», либо «красным». Так, предположительно, в связке с DirectX 12 можно будет использовать NVIDIA GeForce Experience и 3D Vision совместно с AMD True Audio и FreeSync. Скорее всего, при этом одна карта будет работать в режиме ведущей, а вторая — ведомой.

Вторая особенность DX 12 это асинхронное использование видеокарт, что позволяет более эффективно использовать ресурсы ускорителей. Теперь SLI конфигурации будут работать не по принципу зеркального отражения памяти, когда несколько видеокарт держало в памяти абсолютно одинаковый набор данных. Из-за этого количество видеопамяти не суммировалось и видеокарты использовали лишь доступную локально для каждого устройства память. Асинхронное использование видеокарт позволяет разбить задачи, и даже конкретные участки экрана между отдельными видеокартами. Участки будут обрабатываться индивидуально, после загрузки в память данных необходимых конкретно для этих задач. Это позволит избавиться от задержки в несколько кадров, возникающей в SLI системах вследствие того что видеокарты изначально работают над чередующимися кадрами. В DirectX 12 они смогут одновременно работать над одним и тем же кадром.

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