Як графічні карти працюють

Як графічні карти працюють

З тих пір, як 3dfx дебютував оригінальний акселератор Voodoo, жодна одиниця обладнання на ПК не вплинула на те, чи може ваша машина грати в якості скромної відеокарти. Незважаючи на те, що інші компоненти абсолютно важливі, найсучасніший ПК з 32 Гб оперативної пам'яті, центральним процесором на 500 доларів і на базі PCIe буде затухати і вмирати, якщо буде запропоновано запустити сучасні типи ААА на десятирічній карті на сучасних рівнях роздільної здатності та деталізації. Графічні карти (також часто називаються графічними процесорами або графічними процесорами) мають вирішальне значення для продуктивності гри, і ми широко їх охоплюємо. Але ми не часто занурюємося в те, що робить гейт-графік тиком і як функціонують карти.

За необхідності, це буде високий рівень огляду функціональності графічного процесора та охоплюватиме інформацію, загальну для AMD, Nvidia та інтегрованих графічних процесорів Intel, а також будь-які дискретні карти, які Intel може побудувати в майбутньому. Він також має бути загальним для мобільних графічних процесорів, створених Apple, Imagination Technologies, Qualcomm, ARM та іншими постачальниками.

Чому ми не запускаємо рендеринг із процесорами?

Перший пункт, який я хочу вирішити, полягає в тому, чому ми не використовуємо процесорів для перенесення навантаження в ігровий процес. Чесна відповідь на це питання полягає в тому, що ви можете запустити робочі навантаження безпосередньо на ЦП, принаймні теоретично. Ранні 3D-ігри, які передували широкій доступності графічних карт, як, наприклад, Ultima Underworld, працювали цілком на центральному процесорі. UU є корисним довідковим документом з кількох причин - він мав більш просунутий двигун рендеринга, ніж ігри, такі як Doom, з повною підтримкою пошуку вгору та вниз, а також додаткові функції, такі як структура текстури. Але така підтримка отримала величезну ціну - багатьом людям не вистачало персонального комп'ютера, який міг реально запустити гру.

Ultima Underworld. Зображення від GOG
Ultima Underworld. Зображення від GOG

У перші дні 3D-ігор, багато назв, таких як Half Life і Quake II, оснащено програмою візуалізації, що дозволяє гравцям без 3D-прискорювачів грати назву. Але причиною того, що ми випустили цей варіант із сучасних назв, є простим: процесори призначені для універсальних мікропроцесорів, що є ще одним способом сказати, що вони не мають спеціалізованого обладнання та можливостей, які пропонує GPU. Сучасний процесор може легко обробляти назви, які, як правило, затримуються при роботі з програмним забезпеченням 18 років тому, але жоден процесор на Землі не може легко керувати сучасною грою ААА з сьогоднішнього дня, якщо працювати в цьому режимі. Не, принаймні, без серйозних змін сцени, роздільної здатності та різних візуальних ефектів.

Що таке графічний процесор?

Графічний процесор - це пристрій із набором конкретних можливостей апаратного забезпечення, які призначені для точного відображення способом виконання різних кодів 3D-двигунів, включаючи налаштування та виконання геометрії, відображення текстур, доступ до пам'яті та шейдери. Існує взаємозв'язок між функціонуванням 3D-двигунів та способом створення архітектури GPU-дизайнерів. Деякі з вас пам'ятають, що сім'я HD 5000 сімейства AMD використовувала архітектуру VLIW5, а деякі високопродуктивні графічні процесори у сімействі HD 6000 використовували архітектуру VLIW4. З GCN, AMD змінив свій підхід до паралелізму, з метою видобутку більш корисної продуктивності за тактовий цикл.

Перші два блоки "GPU Evolution" застосовуються як до AMD, так і до NV; блок "третьої епохи" унікальний для AMD.
Перші два блоки "GPU Evolution" застосовуються як до AMD, так і до NV; блок "третьої епохи" унікальний для AMD.

Nvidia вперше створив термін "GPU" з запуском оригінального GeForce 256 і його підтримку для здійснення апаратного перетворення та освітлення обчислень на GPU (це відповідало приблизно до запуску Microsoft DirectX 7). Інтеграція спеціалізованих можливостей безпосередньо в апаратне забезпечення стала відмінною рисою технологій раннього GPU. Багато хто з цих спеціалізованих технологій все ще працюють (у дуже різних формах), оскільки він більш енергоефективний і швидший, щоб мати спеціальні ресурси на чіпі для обробки певних типів робочих навантажень, ніж спробувати обробляти всі роботи в одному масиві програмованих ядер.

Існує чимало відмінностей між процесорами процесора та процесорами, але на високому рівні, ви можете думати про них так. Процесори, як правило, призначені для виконання однопоточного коду максимально швидко і ефективно. Особливості, такі як SMT / Hyper-Threading, поліпшуються на цьому, але ми масштабувати багатопотокові характеристики шляхом укладання більш високоефективних одножильних ядер один від одного. 32-ядерні / 64-поточні процесори AMD Epyc є найбільшими, які ви можете купити сьогодні. Щоб поставити це в перспективі, найнижчий графічний процесор Pascal з Nvidia має 384 ядер. "Ядро" в архітектурі GPU називається значно меншою одиницею можливостей обробки, ніж у типового ЦП.

Примітка: Ви не можете порівняти або оцінити відносну продуктивність гри між AMD і Nvidia, просто порівнявши кількість ядер GPU. У рамках сімейства графічних процесорів (наприклад, GeForce GTX 10 від Nvidia або сімейства RX 4xx або 5xx сімейства AMD) більший обсяг основних графічних процесорів означає, що GPU є більш потужним, ніж картка нижчого рівня.

Причина, чому ви не можете зробити негайні висновки про продуктивність графічного процесора між виробниками або основними сім'ями, виходячи лише з основних показників, - це те, що різні архітектури є більш і менш ефективними. На відміну від центральних процесорів, графічні процесори призначені для роботи паралельно. І AMD, і Nvidia структурують свої карти в блоки обчислювальних ресурсів. Nvidia називає ці блоки SM (Streaming Multiprocessor), тоді як AMD називає їх як Compute Unit.

Мультипроцесор потокового пакунка (SM).
Мультипроцесор потокового пакунка (SM).

Кожен блок містить групу ядер, планувальник, реєстровий файл, кеш інструкцій, текстуру та кеш L1, а також одиниці відображення текстур. SM / CU можна розглядати як найменший функціональний блок GPU. Вона не містить буквально все - двигуни декодування відео, виводяться виводи, необхідні для фактичного нанесення зображення на екрані, а інтерфейси пам'яті, які використовуються для зв'язку з бортовою VRAM, не входять в його компетенцію, але коли AMD посилається на APU, що має 8 або 11 Vega Compute Units, це еквівалентний блок кремнію, про який вони говорять. І якщо ви подивитесь на блок-схему графічного процесора, будь-який графічний процесор, ви помітите, що це SM / CU, яке дублюється на десятці або більше разів на зображенні.

І ось Паскаль, повне товсте видання.
І ось Паскаль, повне товсте видання.

Чим більша кількість одиниць SM / CU в GPU, тим більше роботи вона може виконувати паралельно за цикл циклу. Відтворення - це тип проблеми, який іноді називають "незграбно паралельним", тобто має величезний потенціал для збільшення масштабу вгору надзвичайно добре, оскільки збільшується число основних.

Коли ми обговорюємо конструкції графічного процесора, ми часто використовуємо формат, який виглядає приблизно так: 4096: 160: 64. Кількість основних графічних процесорів - перше число. Чим більше це, тим швидше графічний процесор, якщо ми порівнюємо їх в межах однієї сім'ї (GTX 970 проти GTX 980 порівняно з GTX 980 Ti, RX 560 проти RX 580 тощо).

Текстурне відображення та відтворення результатів

Існує ще два основних компоненти графічного процесора: структури відображення текстур та відтворення виводу. Кількість елементів відображення текстури в дизайні визначає максимальну продуктивність текселя і як швидко вона може звертатися і наносити текстури на об'єкти. На початку 3D-ігор дуже мало текстурування, оскільки робота з нанесення 3D-полігональних форм була досить складною. Фактури насправді не потрібні для 3D-ігор, хоча список ігор, які не використовують їх в сучасному віці, надзвичайно малий.

Кількість одиниць відображення текстури в графічному процесорі позначається другою цифрою в метриці 4096: 160: 64. AMD, Nvidia та Intel зазвичай порівнюють ці цифри, оскільки вони масштабні сімейство графічних процесорів вгору і вниз. Іншими словами, ви дійсно не знайдете сценарій, в якому один графічний процесор має конфігурацію 4096: 160: 64, тоді як графічний процесор у верхній або нижній частині стек є конфігурацією 4096: 320: 64. Відображення текстур може бути вузьким місцем у іграх, але наступний найвищий графічний процесор у складі продукту, як правило, пропонує щонайменше більше ядер для графічного процесора та структури відображення текстур (чи на вищих картах більше ROP залежить від сімейства графічних процесорів та конфігурації карти )

Рендерингові виходи (також іноді називають трубопроводами растрових операцій) є місцями, де вихідний графічний процесор збирається у зображення для відображення на моніторі або телевізорі. Кількість рендерингових виходів, помножена на тактову частоту GPU, контролює швидкість заповнення пікселя. Більша кількість ROP означає, що більше пікселів можуть виводитися одночасно. ROP також обробляють згладжування, і створення АА, особливо супер-зразка АА, може призвести до обмеженої швидкості заповнення гри.

Пропускна здатність пам'яті, ємність пам'яті

Останні обговорювані компоненти - пропускна здатність пам'яті та об'єм пам'яті. Пропускна спроможність пам'яті - це те, скільки даних можна скопіювати у віддалений буфер VRAM у секунду та від нього. Багато просунутих візуальних ефектів (і більш високі дозволи в цілому) вимагають більшої пропускної спроможності пам'яті, щоб працювати з розумною частотою кадрів, оскільки вони збільшують загальну кількість даних, що копіюються в ядра графічного процесора та виходять з неї.

У деяких випадках брак пропускної здатності пам'яті може стати суттєвим вузьким місцем для GPU. APU-динамічні пристрої AMD, такі як Ryzen 5 2400G, значно обмежені пропускною спроможністю, що означає, що підвищення тактової частоти DDR4 може суттєво вплинути на загальну продуктивність. Вибір ігрового двигуна також може суттєво вплинути на те, наскільки простір пам'яті для GPU потрібно уникнути цієї проблеми, а також цільова роздільна здатність гри.

Загальний об'єм бортової пам'яті - ще один критичний фактор у графічних процесорах. Якщо кількість VRAM, необхідна для роботи на заданому рівні або роздільній здатності, перевищує доступні ресурси, гра часто буде працювати, однак для зберігання додаткових текстурних даних потрібно буде використовувати основну пам'ять центрального процесора - і це значно перевищує GPU щоб витягувати дані з DRAM на відміну від його бортового виділеного VRAM. Це призводить до масового заїкання, оскільки поступовість гри між потягом даних з швидкого пулу локальної пам'яті та загальної оперативної пам'яті системи.

Слід пам'ятати про те, що виробники графічного процесора інколи обладнатимуть низькоякісні або середньочастотні карти з більшою VRAM, ніж в іншому випадку стандартним способом заряджати трохи більше продукту. Ми не можемо зробити абсолютне прогноз щодо того, чи робить це GPU більш привабливим, оскільки, чесно кажучи, результати залежать від обговорюваного GPU. Що ми можемо сказати вам, що в багатьох випадках не варто платити більше за картку, якщо єдиною різницею є більший об'єм буфера пам'яті. Як правило, нижчі графічні графічні процесори, як правило, стикаються з іншими вузькими місцями, перш ніж вони задихаються обмеженою доступною пам'яттю. Якщо ви сумніваєтесь, перевірте огляд картки та знайдіть порівняння того, чи є версія 2 Гб ефективнішою за смаком 4 Гб або якою б не була відповідна кількість оперативної пам'яті. Найчастіше, припускаючи, що між двома рішеннями все рівно, ви знайдете більшу завантаженість ОЗП, яку не варто платити.

Ознайомтеся з нашою серією пояснень для поглибленого висвітлення сьогоднішніх найгарячих технологічних тем.

Читати далі

Як працюють твердотільні накопичувачі?
Як працюють твердотільні накопичувачі?

Ви коли-небудь задавались питанням, як твердотільні накопичувачі читають і записують дані, або що визначає їх ефективність? Наш технічний пояснювач вас охопив.

Як працюють кеші процесорів L1 та L2 та чому вони є важливою частиною сучасних чіпів
Як працюють кеші процесорів L1 та L2 та чому вони є важливою частиною сучасних чіпів

Вам коли-небудь цікаво було, як працюють кеші L1 та L2? Ми раді, що ви запитали. Тут ми глибоко зануримось у структуру та природу одного з найважливіших обчислювальних проектів та інновацій.

Cyberpunk 2077: CDPR «вибачається» за випуск непрацюючої гри, пропонує відшкодування
Cyberpunk 2077: CDPR «вибачається» за випуск непрацюючої гри, пропонує відшкодування

Версія для PS4 та Xbox One S для Cyberpunk 2077 настільки погана, що компанія зараз пропонує відшкодування. Ми рекомендуємо гравцям консолі останнього покоління взяти їх на себе, а не чекати.

Fusion Reactor встановлює запис, працюючи протягом 20 секунд
Fusion Reactor встановлює запис, працюючи протягом 20 секунд

Команда з Південної Кореї щойно зробила серйозний прогрес - пристрій Корейського надпровідного токамакського розширеного дослідження (KSTAR) нещодавно працював 20 секунд. Це може здатися не вражаючим, але це подвоює попередній запис.