У попередній статті ми розглянули технологію об’єднання декілька відеокарт для їх спільної роботи від 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), яка застосовується до цих пір.
Але, проте, відеокарта FURY MAXX просто мала два GPU, поєднувати дві відеокарти від ATI було не можна — в ті часи була шина AGP, і цей порт на материнських платах був тільки один. У 2004 році була представлена шина PCI Express, яка дозволяла ділити лінії — а значить і робити кілька портів і підключати декілька відеокарт. Цим скористалася і Nvidia, представивши нову технологію SLI і ATI, змінила назву MAXX на CrossFire.
Відмінностей між ними тоді вистачало: для створення 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К на ультра-налаштуваннях графіки.

Закінчив магістратуру КПІ за спеціальністю “Інженерія програмного забезпечення.”
Захистив кандидатську за темою: “Проектування дидактичної системи інноваційної підготовки фахівців в області програмної інженерії”.
Працюю і пишу на теми, пов’язані з програмуванням, влаштуванням комп’ютерів і комп’ютерних систем.