Як працюють графічні картки?
З тих пір, як 3dfx дебютував на оригінальному прискорювачі Voodoo, жодне обладнання в ПК не мало такого впливу на те, чи зможе ваша машина грати, як скромна відеокарта. Хоча інші компоненти абсолютно важливі, топовий ПК з 32 ГБ оперативної пам'яті, процесором на $ 4000 і сховищем на базі PCIe задихнеться і загине, якщо попросити запустити сучасні заголовки AAA на десятирічній карті із сучасними роздільною здатністю та рівнями деталізації . Відеокарти, відомі як графічні процесори (графічні процесори), мають вирішальне значення для продуктивності гри, і ми їх широко висвітлюємо. Але ми не часто заглиблюємось у те, що робить галочку графічного процесора і як функціонують картки.
За необхідністю це буде огляд високого рівня функціональності графічного процесора та охоплюватиме інформацію, спільну для інтегрованих графічних процесорів AMD, Nvidia та Intel, а також будь-які дискретні картки, які Intel може створити в майбутньому на основі архітектури Xe. Це також має бути спільним для мобільних графічних процесорів, створених Apple, Imagination Technologies, Qualcomm, ARM та іншими постачальниками.
Чому б нам не запускати рендеринг з центральними процесорами?
Перший момент, на який я хочу звернутися, - це те, чому ми не використовуємо центральні процесори для рендерингу робочих навантажень в іграх. Чесна відповідь на це питання полягає в тому, що ви можете запускати рендеринг робочих навантажень безпосередньо на центральному процесорі. Ранні 3D-ігри, що передували широкій доступності графічних карт, такі як Ultima Underworld, працювали повністю на центральному процесорі. UU є корисним довідковим прикладом з багатьох причин - він мав більш просунутий механізм візуалізації, ніж ігри, такі як Doom, з повною підтримкою пошуку вгору та вниз, а також вдосконаленими на той час функціями, як відображення текстур. Але така підтримка мала високу ціну - багатьом людям бракувало ПК, який міг би насправді запускати гру.
У перші дні 3D-ігор у багатьох назвах, таких як Half-Life і Quake II, був пристрій програмного візуалізації, який дозволяв гравцям без 3D-прискорювачів відтворювати заголовок. Але причина, з якої ми відкинули цей варіант із сучасних назв, проста: ЦП розроблені як мікропроцесори загального призначення, що є ще одним способом сказати, що їм бракує спеціалізованого обладнання та можливостей, які пропонують графічні процесори. Сучасний центральний процесор міг би легко обробляти заголовки, які, як правило, заїкалися при запуску програмного забезпечення 18 років тому, але жоден процесор на Землі не міг би легко впоратися з сучасною грою AAA, якщо запускати її в такому режимі. Не, принаймні, без кардинальних змін сцени, роздільної здатності та різних візуальних ефектів.
Як цікавий приклад цього: Threadripper 3990X здатний запускати Crysis у програмному режимі, хоча і не все так добре.
Що таке графічний процесор?
Графічний процесор - це пристрій з набором специфічних апаратних можливостей, які призначені для того, щоб добре зіставити спосіб, яким різні движки 3D виконують свій код, включаючи налаштування та виконання геометрії, відображення текстур, доступ до пам'яті та шейдери. Існує взаємозв’язок між тим, як працюють двигуни 3D, і тим, як дизайнери графічних процесорів будують обладнання. Деякі з вас, можливо, пам’ятають, що сімейство HD 5000 AMD використовувало архітектуру VLIW5, тоді як певні високоякісні графічні процесори сімейства HD 6000 використовували архітектуру VLIW4. Завдяки GCN AMD змінив свій підхід до паралелізму, в ім’я отримання більш корисної продуктивності за тактовий цикл.
Подальша архітектура AMD щодо GCN, RDNA, подвоїлася на ідеї підвищення IPC, з інструкціями, що надсилаються кожного тактового циклу. Це покращило МПК на 25 відсотків. RDNA2 базується на цих досягненнях і додав такі функції, як величезний кеш L3, щоб ще більше підвищити продуктивність.
Nvidia вперше ввів термін "GPU" із запуском оригінальної GeForce 256 та підтримкою її для здійснення апаратного перетворення та розрахунків освітлення на графічному процесорі (це приблизно відповідало запуску Microsoft DirectX 7). Інтеграція спеціалізованих можливостей безпосередньо в апаратне забезпечення була візитною карткою ранніх технологій GPU. Багато з цих спеціалізованих технологій все ще використовуються (у дуже різних формах). Енергоефективніше та швидше мати виділені ресурси на мікросхемі для обробки певних типів робочих навантажень, ніж спроби обробити всю роботу в одному масиві програмованих ядер.
Існує ряд відмінностей між ядрами графічного та процесорного процесорів, але на високому рівні ви можете думати про них так. Процесори, як правило, призначені для виконання однопотокового коду якомога швидше та ефективніше. Такі функції, як SMT / Hyper-Threading, покращують це, але ми масштабуємо багатопотокові характеристики, складаючи поряд більш високоефективні однопоточні ядра. 64-ядерні / 128-потокові процесори Epyc від AMD - це найбільші, які ви можете придбати сьогодні. Якщо поставити це на перспективу, найнижчий графічний процесор Pascal від Nvidia має 384 ядра, тоді як найбільший на ринку процесор x86 з процесором перевищує 64. “Ядром”, якщо говорити на мові GPU, є значно менший процесор.
Примітка: Ви не можете порівняти або оцінити відносну ігрову ефективність між AMD, Nvidia та Intel, просто порівнявши кількість ядер графічного процесора. У тому ж сімействі графічних процесорів (наприклад, серія GeForce GTX 10 від Nvidia або сімейство RX 4xx або 5xx від AMD), більший показник ядра графічного процесора означає, що графічний процесор потужніший, ніж карта нижчого класу. Порівняння, засновані на FLOPS, є підозрілими з обговорених тут причин.
Причиною того, що ви не можете зробити негайних висновків щодо продуктивності графічного процесора між виробниками або основними сімействами лише на підставі кількості ядер, є те, що різні архітектури є більш і менш ефективними. На відміну від центральних процесорів, графічні процесори призначені для роботи паралельно. Як AMD, так і Nvidia структурують свої карти в блоки обчислювальних ресурсів. Nvidia називає ці блоки SM (Streaming Multiprocessor), тоді як AMD називає їх обчислювальним блоком.
в порядку
Кожен блок містить групу ядер, планувальник, файл реєстру, кеш інструкцій, кеш текстур та L1 та одиниці відображення текстур. SM / CU можна розглядати як найменший функціональний блок графічного процесора. Він не містить буквально всього - механізми декодування відео, виводи рендерів, необхідні для фактичного малювання зображення на екрані, та інтерфейси пам'яті, що використовуються для зв'язку з бортовою VRAM, поза межами його компетенції - але коли AMD посилається на APU, що має 8 або 11 Vega Compute Units, це (еквівалентний) блок кремнію, про який вони говорять. І якщо ви подивитеся на блок-схему графічного процесора, будь-якого графічного процесора, ви помітите, що це SM / CU, що дублюється на зображенні десяток і більше разів.
Чим більша кількість одиниць SM / CU в графічному процесорі, тим більше роботи він може виконувати паралельно за тактовий цикл. Рендеринг - це тип проблем, який іноді називають "незручно паралельним", тобто він має потенціал надзвичайно добре масштабуватися вгору, оскільки кількість ядер збільшується.
Коли ми обговорюємо дизайн графічного процесора, ми часто використовуємо формат, який виглядає приблизно так: 4096: 160: 64. Кількість ядер GPU - це перше число. Чим він більший, тим швидший графічний процесор, за умови, що ми проводимо порівняння в одній родині (GTX 970 проти GTX 980 проти GTX 980 Ti, RX 560 проти RX 580 тощо).
Картографування текстур та результати виведення
Існують ще два основні компоненти графічного процесора: одиниці відображення текстур та результати виведення. Кількість одиниць відображення текстур у дизайні диктує його максимальний вихід текселя та те, як швидко він може звертатись та накладати текстури на об'єкти. Ранні 3D-ігри використовували дуже мало текстури, оскільки робота з малювання тривимірних багатокутних фігур була досить складною. Текстури насправді не потрібні для 3D-ігор, хоча список ігор, які не використовують їх у сучасну епоху, надзвичайно малий.
Кількість одиниць відображення текстур у графічному процесорі позначається другим показником у метриці 4096: 160: 64. AMD, Nvidia та Intel зазвичай переносять ці цифри еквівалентно, коли масштабують сімейство графічних процесорів вгору та вниз. Іншими словами, ви насправді не знайдете сценарію, коли один графічний процесор має конфігурацію 4096: 160: 64, тоді як графічний процесор, що знаходиться вище або нижче в стеці, - це конфігурація 4096: 320: 64. Зіставлення текстур може абсолютно бути вузьким місцем в іграх, але наступний за висотою графічний процесор у наборі продуктів, як правило, пропонує щонайменше більше ядер графічного процесора та одиниць відображення текстур (чи мають старші картки більше ROP, це залежить від сімейства графічних процесорів та конфігурації карт ).
Виходи рендерингу (також іноді звані конвеєрами растрових операцій) - це місце, де вихід графічного процесора збирається у зображення для відображення на моніторі або телевізорі. Кількість виходів візуалізації, помножена на тактову частоту графічного процесора, контролює швидкість заповнення пікселів. Більша кількість ROP означає, що одночасно може виводитися більше пікселів. ROP також обробляють згладжування, і ввімкнення AA - особливо надвибіркового AA - може призвести до гри з обмеженою швидкістю заповнення.
Пропускна здатність пам'яті, ємність пам'яті
Останніми компонентами, які ми обговоримо, є пропускна здатність і ємність пам'яті. Пропускна здатність пам'яті стосується того, скільки даних можна скопіювати в і з виділеного буфера VRAM графічного процесора в секунду. Багато вдосконалених візуальних ефектів (і більш високих роздільних здатностей в цілому) вимагають більшої пропускної здатності пам'яті для роботи з розумною частотою кадрів, оскільки вони збільшують загальний обсяг даних, що копіюються в ядро графічного процесора та з нього.
У деяких випадках відсутність пропускної здатності пам'яті може бути значним вузьким місцем для графічного процесора. APU AMD, такі як Ryzen 5 3400G, сильно обмежені пропускною здатністю, а це означає, що збільшення тактової частоти DDR4 може суттєво вплинути на загальну продуктивність. Вибір ігрового механізму також може суттєво вплинути на обсяг пропускної здатності пам'яті, необхідний графічному процесору, щоб уникнути цієї проблеми, як і цільова роздільна здатність гри.
Загальний обсяг вбудованої пам'яті є ще одним важливим фактором для графічних процесорів. Якщо кількість VRAM, необхідна для запуску з заданим рівнем деталізації або роздільною здатністю, перевищує доступні ресурси, гра часто все одно буде працювати, але їй доведеться використовувати основну пам’ять центрального процесора для зберігання додаткових текстурних даних - і це займає GPU значно довше витягувати дані з DRAM на відміну від власного пулу виділених VRAM. Це призводить до масового заїкання, коли гра хитається між витягуванням даних із швидкого пулу локальної пам'яті та загальної системної оперативної пам'яті.
Варто пам’ятати, що виробники графічних процесорів іноді оснащують низькочастотні чи середньочастотні карти більшою кількістю VRAM, ніж зазвичай, як спосіб зарядити трохи більше за продукт. Ми не можемо зробити абсолютний прогноз щодо того, чи робить це графічний процесор більш привабливим, оскільки, чесно кажучи, результати різняться залежно від графічного процесора. Ми можемо сказати вам, що в багатьох випадках не варто платити більше за карту, якщо єдина різниця полягає в більшому буфері оперативної пам'яті. Як правило, графічні процесори нижчого класу, як правило, стикаються з іншими вузькими місцями, перш ніж їх задушить обмежена доступна пам’ять. Якщо ви сумніваєтеся, перевірте огляди картки та знайдіть порівняння того, чи перевершує версія 2 ГБ за смаком 4 ГБ чи яка обсяг оперативної пам'яті буде. Частіше за все, припускаючи, що все інше рівне між двома рішеннями, ви виявите, що більше завантаження оперативної пам'яті не варто платити.
Ознайомтесь із нашою серією wfoojjaec Explains, щоб детальніше висвітлити найгарячіші сучасні теми.
Читати далі
Intel випускає нові мобільні графічні процесори Xe Max для творців вмісту початкового рівня
Intel випустила новий споживчий мобільний графічний процесор, але він має дуже конкретний варіант використання, принаймні зараз.
Intel детально описує стратегію XPU, запускає новий серверний графічний процесор, OneAPI Gold
Сьогодні Intel зробила пару оголошень щодо своєї ініціативи OneAPI та запуску свого першого серверного графічного процесора на базі графіки Xe.
Nvidia представила графічний процесор Ampere A100 80 ГБ із пропускною здатністю 2 ТБ / с
Цього тижня Nvidia анонсувала графічний процесор Ampere A100 об'ємом 80 ГБ для розробників програмного забезпечення для штучного інтелекту, яким дійсно потрібно трохи місця для розгинання ніг.
PS5, Xbox Series X Тонкий на місці, поряд із центральними процесорами, графічними процесорами
Microsoft і Sony постачають усі апаратні засоби, які можуть, але це, здається, не дуже багато консолей. Однак не хвилюйтеся - все інше теж важко знайти.