В предыдущей статье мы рассмотрели технологию объединения несколько видеокарт для их совместной работы от Nvidia — SLI (советую ознакомиться с ней, потому что я буду на нее ссылаться), теперь же рассмотрим схожую технологию от их конкурентов — AMD CrossFireX.
История ATI CrossFire
В конце 90ых дела у ATI шли не очень хорошо — в 1999 Nvidia представила за один год аж два новых поколения — Riva TNT2 и GeForce 256. 3dfx, второй конкурент, в 1998 году представил технологию SLI, позволяющую объединять две видеокарты Voodoo2 вместе на одном ПК. А вот ATI смогла представить лишь RAGE 128 (и чуть позже разогнанную версию PRO), в которых ничего инновационного не было. Поняв, что так и вылететь с рынка видеокарт недолго, они решили скопировать технологию SLI у 3dfx и выпустили «двухголовую» видеокарту ATI RAGE FURY MAXX, которая включала в себя два GPU RAGE 128 PRO. Сама технология объединения видеочипов называлась MAXX (Multiple ASIC Technology), и была чисто программной: каждый из графических процессоров полностью готовит один кадр, и при выводе на экран они чередуются. По сути это была вылитая технология AFR (Alternate Frame Rendering), которая применяется до сих пор.
Отличий между ними тогда хватало: для создания CrossFire нужна была так называемая мастер-карта — она имела внутри чип наложения, позволяющий получать данные с карты-слэйва (slave) и сочетать их попиксельно с основной картой. Объединение происходило через специальный кабель DVI-DMS, а подключение монитора — через еще один коннектор DVI, отходящий от мастер-карты:
Это было жутко неудобно, и в будущем ATI пришла к тому же, что и Nvidia сразу — данные передаются через специальный мостик, и такого понятия как master или slave больше нет (а еще дальше уже компания AMD, купившая ATI, вообще отказалась от мостиков). И если это первое отличие было в минус ATI, то вот второе наоборот, в плюс: если в SLI можно объединять видеокарты только одной серии, то в случае с ATI видеокарты могут быть даже разных поколений.
В дальнейшем, в 2008 году, компания AMD представили Quad CrossFireX — технологию, позволяющую объединять до четырех видеокарт вместе, и сейчас технология объединения видеокарт называется AMD CrossFireX (или, сокращенно, CF).
Алгоритмы построения изображения с использованием CF
Первый алгоритм не является новым — его так же успешно применяет и Nvidia. Называется он Slicing (Нарезка), и заключается в том, что кадр делится на две части — одну обрабатывает одна видеокарта, другую — другая:
Причем части не обязательно могут быть одинаковыми: все зависит от сложности сцены, и области рендеринга для каждой видеокарты могут быть свои. Для игр этот алгоритм подходит слабо, потому что заранее просчитать сложность кадра невозможно.Второй алгоритм ATI/AMD придумали сами. Он называется Tiling (от англ. tile — плитка). Суть алгоритма в том, что весь кадр делится на «плитки» по 32х32 пикселя каждая, и каждая видеокарта в шахматном порядке готовит свою половину плиток:
Плюс этого метода — на каждую из двух видеокарт будет приходиться в среднем половина нагрузки, то есть нет такого, как в Slicing, когда одной видеокарте досталось в игре небо и она подготовила кадр за 5 мс, а другой досталась куча текстур земли, зданий и так далее, и она подготовила кадр за 20 мс: тут каждой из видеокарт досталось и небо, и текстуры земли и других объектов. Но, как и следовало ожидать, есть и минусы: во-первых, требуется максимально точное соответствие характеристик видеокарт: если в Slicing кадр можно делить пропорционально производительности каждой из GPU, то в Tiling разделение нагрузки идет ровно пополам, поэтому видеокарты должны быть полностью идентичны. Во-вторых, между картами не делится геометрическая нагрузка, но в играх обычно она невысокая и проблем с этим не бывает.
Третий алгоритм, AFR, общий с Nvidia — каждая из видеокарт готовит кадры поочередно:
Плюсы те же — никаких артефактов при отрисовке кадра, можно легко распараллелить нагрузку и на 4 GPU. Минус — все кадры имеют разную сложность, что может привести к дерганой картинки при низком fps.
И последний алгоритм «честного» CrossFire — это SuperAA (супер-сглаживание). Принцип схож с таковым у SLI AA — каждая видеокарта сглаживает картинку с некоторым шагом относительно другой, и потом полученные картинки склеиваются в один кадр. Однако отличия от SLI AA все же есть — в случае с Nvidia используется MSAA сглаживание, в случае с AMD — SSAA (оно дает картинку чуть лучше, но и требует больше ресурсов). Доступны режимы сглаживания от х8 до х14 (напомню, что у Nvidia максимум это х32).
В случае с ноутбуками на APU от AMD, включающих в себя как процессор, так и встроенную графику, AMD поступила хитрее Nvidia: если в ноутбуке есть дискретная графика от AMD, то ее можно объединить с интегрированной в режиме Dual Graphics, когда работают обе видеокарты (напомню, что у Nvidia есть технология Optimus, которая позволяет использовать или дискретную графику, или интегрированную, но никак не вместе). Однако у этого метода есть свои ограничения: во-первых, он работает только с DirectX 10 и выше (в принципе, с учетом того, что игры с DirectX 9 старые и нетребовательные по современным меркам — CF там и не нужен). Во-вторых, разница в производительности дискретной и интегрированной видеокарт не может быть больше двухкратной, то есть объединить вместе интегрированную в APU графику с какой-нибудь R9 M390 увы, не получится (опять же — тут интегрированная графика как пятое колесо в телеге и будет только мешаться, так что AMD в принципе поступили правильно).
Системные требования для CrossFireX
Здесь почти все тоже, что и для SLI от Nvidia (поэтому второй раз переписывать требования я не буду), однако есть одно важное различие — вообще не нужны мостики для связи видеокарт (забавно — в тысячной линейке Nvidia не только не отказалась от мостиков для SLI — она ввела новые, еще более быстрые), контроллер CF теперь находится на самой плате видеокарты, а данные передаются через PCI-E. Больше существенных различий нет — все так же подключаются видеокарты одной серии, все так же объем памяти ограничивается таковым у самой слабой видеокарты в DX 11 и суммируется в DX 12.
И самый главный вопрос — имеет ли смысл делать CF? Да, имеет. Тут все просто — приверженцы «зеленых» могут купить одну GTX 1080 Ti, которой за запасом хватит для всех современных игр, поэтому SLI для игр в принципе не нужен. У AMD пока что самая мощная графика это RX 580, которая вообще говоря находится на уровне обновленных GTX 1060, и которой хватает лишь для FHD (в 2К придется существенно снижать настройки, или же играть с 30-40 fps). Так что тут CF имеет смысл — две RX 580 позволят нормально играть в 2К на ультра-настройках графики.