воскресенье, 27 сентября 2020 г.

Огляд відеокарти NVIDIA GeForce RTX 3080

 Коментар до однієї з головних прем'єр 2020 року (а до виходу центральних процесорів архітектури Zen 3 і прискорювачів Radeon на великому ядрі Navi мабуть що й найголовніша), ми змушені почати з поганої новини. Сьогодні ми обмежимося аналізом чіпів Ampere і специфікацій продуктів на їх основі. Благо серія RTX 30 справляє сильне враження навіть на папері, а оновлена ​​архітектура, нехай в цей раз інженери з Санта-Клари зосередилися на зростанні чистої швидкодії замість функціональних нововведень, теж заслуговує грунтовного розгляду, щоб зрозуміти, яким чином NVIDIA вдалося так сильно прокачати характеристики.


Нові GPU і правда настільки відірвалися від своїх попередників, ніби повернулися золоті роки Kepler, Maxwell і Pascal, дарували експоненціальне зростання продуктивності з кожної ітерації заліза. Потім трапився Turing - без сумніву, історична подія не тільки для NVIDIA, але і для споживчої 3D-графіки взагалі. Ось тільки самі споживачі не надто були зраділи цінами відеокарт, які чипмейкер зміг встановити без оглядки на AMD, в той час усунути від конкуренції за ринок топових прискорювачів. До того ж всі старання розробників Turing були спрямовані на розширення функцій рендерингу за допомогою апаратного трасування променів і обробки даних нейромережами, а в іграх без рейтрейсингу продуктивність на долар у GeForce RTX 20-й серії в кращому випадку не змінилася в порівнянні з вічнозеленими «Паскаль».

NVIDIA GeForce RTX 3080

Ігрові прискорювачі GeForce RTX 30-ї серії в одному реченні можна охарактеризувати так: в 2,5-3 рази більше FP32-сумісних CUDA-ядер, посилені блоки трасування променів і тензорні ядра, і все це на чіпах з величезною кількістю транзисторів, побудованих за нормами 8 нм. А головне, за такою ж ціною, як у попередників! Проте у Ampere є цікаві нюанси як в архітектурі, так і чисто практичні властивості.

Давайте розберемося, як влаштований Ampere і чи немає приводів засумніватися в його беззастережному домінуванню на ринку геймерських відеокарт. Як не крути, AMD представить 28 жовтня власні GPU наступного покоління, і, здається, цього разу «червоні» готові до справжньої конкуренції з NVIDIA.

Серія GeForce RTX 30


У презентації, присвяченій ігровим продуктам нового покоління, NVIDIA представила три відеокарти: GeForce RTX 3070, RTX 3080 і RTX 3090. Всі вони мають надійти в продаж протягом наступного місяця, і це відноситься не тільки до референсних (Founders Edition), а й до партнерських моделям, які з'являться на магазинних полицях в той же час. Дата релізу RTX 3080 - 17 вересня, RTX 3090 запланований на 24-е, а RTX 3070 очікується вже 15 жовтня. Але головне, звичайно, це якісь можливості і за яку ціну запропонує NVIDIA, збентежена неоднозначною реакцією на серію GeForce RTX 20, тим більше в умовах відродженої конкуренції з боку AMD.

Судячи з усього, що ми змогли з'ясувати, RTX другого покоління не повинен розчарувати. На третій сходинці п'єдесталу, в якості заміни GeForce RTX 2070, чипмейкер поставив відеокарту з 5888 шейдерними ALU (32-бітними CUDA-ядрами). А це, між іншим, в 2,5 рази більше, ніж у попередника! Виходить, що навіть GeForce RTX 2080 Ti і RTX TITAN поступаються молодшій з новинок як по CUDA-ядер FP32 (4352 і 4608 відповідно), так і з теоретичної пропускної здатності операцій над числами стандартної точності.

Звичайно, це дуже грубий критерій, який не бере до уваги інші компоненти архітектури GPU. Адже ми ще не розібралися, як саме інженери NVIDIA набили стільки ядер в графічний процесор другого ешелону - тут все далеко не так просто, як якщо б Turing роздули до таких розмірів без глибокої структурної реорганізації. Нарешті, як ми ще встигнемо переконатися, в Ampere значно посилили блоки трасування променів і ввели новий, більш ефективний режим роботи тензорних ядер. Не будемо безапеляційно стверджувати, що новий GeForce RTX 3070 відправив на смітник історії всю лінійку RTX 20, включаючи 2080 Ti, але, якщо оцінювати за сумою характеристик, можливо, саме так і вийде в добре розпаралелених завданнях GP-GPU, професійних рейтрейсерах зразок Blender і, зрозуміло, в іграх з трасуванням променів, де GeForce RTX 3070 обіцяє при вирішенні 1440p продуктивність на 60% вище, ніж у RTX 2070.


І все це - увага! - за рекомендованою ціною $ 499! В даному випадку доречна поправка на те, що NVIDIA свого часу проапгрейдить RTX 2070 до RTX 2070 SUPER, зберігши колишню вартість, а це вже зовсім інша відеокарта на більш потужному GPU. Як наслідок, зростання швидкодії на долар вже не настільки великий, хоча все одно йдеться про таки надбавку FPS, які ми давно відвикли одержувати від виробників дискретної графіки. Практика націнки на відеокарти Founders Edition і їх розгін, на щастя, теж залишилася в минулому: ціни, рекомендовані для партнерських продуктів, збігаються з тими, по яких NVIDIA буде продавати референсні пристрої у власному інтернет-магазині.



Нагадаємо, мова поки йде про молодшу модель нового сімейства, яка, якщо це теоретичні викладки і внутрішні бенчмарки NVIDIA зійдуться з практикою, виявиться більш доступною і в той же час більш продуктивною заміною GeForce RTX 2080 Ti. Перед RTX 3080 стоїть більш амбітне завдання підняти швидкодію в іграх і робочих додатках на нову висоту. Старші моделі засновані на одному і тому ж чіпі GA102, але, хай склад виконавчих блоків процесора в RTX 3080 серйозно урізано, його специфікації і раніше виробляють надзвичайно сильне враження. GeForce RTX 3080 отримав 8704 FP32-сумісних шейдерних ALU і в результаті дворазово перевершує по проектній пропускній спроможності матеріально чисельних розрахунків GeForce RTX 2080 Ti, а RTX 2080 - в три рази! Якщо додати до цього апгрейд блоків трасування променів і тензорних ядер, цілком справедливою здається попередня оцінка швидкодії новинки - на 100% вище RTX 2080. Як і GeForce RTX 3070, друга по старшинству модель надійде в продаж по тій же рекомендованій ціні, що і її формальний попередник, - $ 699.

GeForce RTX 3090 закриває серію споживчих прискорювачів на чіпах Ampere і, швидше за все, залишиться на вершині модельного ряду аж до виходу наступної графічної архітектури NVIDIA. Згодом ще можуть з'явитися «ампери» з приставкою Ti у назві (а може, як знати, і чергові версії SUPER), але це явно буде не RTX 3090 Ti. Справа в тому, що флагману дістався майже незайманий кристал GA102, який втратив лише два SM і містить фантастичні 10 496 32-бітних CUDA-ядер стандартної точності. За відповідними оцінками швидкодії GeForce RTX 3090 в 2,19 рази перевершує TITAN RTX, не кажучи вже про горезвісні вдосконалення RT- і тензорних ядер. Замість того щоб порівнювати цей в хорошому сенсі жахливий прискорювач з будь-яким з попередніх пристроїв, NVIDIA було досить сказати, що GeForce RTX 3090 став першою відеокартою, яка здатна виводити гру на 8К-екран з пристойною частотою зміни кадрів і високою якістю графіки, включаючи трасування променів - за допомогою масштабування DLSS у відповідних випадках, але тим не менше.


На перший погляд, підбадьорлива тенденція до демократизації цін «зелених» GPU обійшла стороною RTX 3090. Новинку оцінили в безпрецедентно високу за мірками споживчих відеокарт суму $ 1 499. По крайній мірі, одночипових, адже саме стільки коштував AMD Radeon R9 295X2. Втім, нехай GeForce RTX 3090 не по кишені більшості геймерів, RTX 3080 вже настільки сильний, що приводів для туги за додатковими 20% обчислювального потенціалу ми не бачимо. Крім того, RTX 3090 чи не здається обурливо дорогим, якщо зрозуміти, що в рамках нового покоління він займає проміжну позицію відразу перед черговим «Титаном». Не дивно і те, що RTX 3090 залишився останній з «зелених» відеокарт з роз'ємом NVLink і, відповідно, підтримкою багаточіпового рендерингу за допомогою SLI (хоча головне призначення NVLink - це все-таки розрахунки загального призначення). Та й оперативної пам'яті в RTX 3090 більш ніж достатньо - цілих 24 Гбайт.

А ось питання про те, чи є обсяг VRAM у GeForce RTX 3070 і RTX 3080 адекватним їх обчислювальної потужності, залишається відкритим. RTX 3080 отримає 10 Гбайт нового типу GDDR6X, а RTX 3070 - 8 Гбайт звичної пам'яті GDDR6. Тим часом вже не рідкість, коли споживання VRAM сучасними іграми при вирішенні 4К виходить за межі 8 Гбайт. Забігаючи наперед, скажемо, що в перспективі дефіцит локальної пам'яті графічного процесора зможе, принаймні частково, компенсувати програмний інтерфейс Microsoft DirectStorage і апаратна технологія RTX IO, на яку він буде спиратися в чіпах Ampere. Але поки світле майбутнє не настало, RTX 3070 може зіткнутися з обмеженнями за обсягом оперативки, які все-таки заважають назвати його рівноцінною заміною 11-гігабайтного RTX 2080 Ti.


У «зелених» продуктів нового покоління є ще один спірний аспект. NVIDIA не соромиться величин енергоспоживання на рівні 320 Вт для GeForce RTX 3080 і цілих 350 Вт для GeForce RTX 3090 (апетити RTX 3070 оцінені в помірні 220 Вт). Коли в останній раз на нашій пам'яті референсні відеокарти досягали подібної потужності, це був Radeon RX Vega 64 LC зі штатною СЖО (345 Вт) і Radeon VII (300 Вт). Втім, ми завжди стояли на позиції, що користувача стандартного робочого столу не повинно хвилювати енергоспоживання відеокарти, поки вона тихо працює, не перегрівається, а головне, відпрацьовує витрачену електрику в іграх. В останньому ми вже не особливо сумніваємося, а ось для того, щоб гарантувати «Ампер» адекватне охолодження, NVIDIA розробила абсолютно новий і незвичайний дизайн референсних відеокарт.

Останнім і, мабуть, головним приводом для занепокоєння за геймерський Ampere для нас є реальні роздрібні ціни, за якими відеокарти можна буде знайти в продажу, особливо спочатку. Сама NVIDIA може повісити будь-якій ярлик на пристрої Founders Edition, але при такому енергоспоживанні, як у старших «Ампер», виробництво адекватно потужної обв'язки для GPU не може бути дешевим для тайваньських вендорів. Крім того, ходять наполегливі чутки про те, що обов'язково з'являться версії GeForce RTX 3070 і RTX 3080 з подвоєним об'ємом VRAM, які вже точно вийдуть за рамки цін, розрахованих на референсні специфікації.

Графічний процесор GA102

Першими чіпами архітектури Ampere, офіційно представленими NVIDIA, є процесор A100, призначений для дата-центрів і робочих станцій, і GA102, що вінчає лінійку споживчих продуктів GeForce RTX 30. Досить поглянути на титульні характеристики чіпа, щоб переконатися в тому, як далеко пішла вперед «сира» обчислювальна потужність в порівнянні з кремнієм Turing.

Судіть самі. Мікроархітектура повністю функціональної версії GA102 представлена ​​сімома блоками GPC (Graphics Processing Cluster, найбільшими масштабованими компонентами масиву) - проти шести на кристалі TU102. Кожен з них як і раніше містить растеризатор, що виконує проекцію геометрії в пікселі, і 12 потокових мультипроцессоров (Streaming Multiprocessor), ось тільки набір 32-бітових CUDA-ядер, що обробляють речові числа, всередині SM був подвоєний. В результаті формула головних виконавчих блоків GA102 включає 10 752 FP32-сумісних CUDA-ядер і 336 блоків накладення текстур.


Інша особливість GA102, помітна з висоти пташиного польоту, полягає в тому, що блоки операцій растеризації (ROP) більше не прив'язані до контролерів оперативної пам'яті і тепер є компонентом GPC - одиниць, з яких компанія збирає процесори різної потужності під той чи інший транзисторний і доларовий бюджет. В останньому зауваженні і криється причина міграції ROP під одним дахом з потокових мультипроцесорів (SM). Інженери NVIDIA прагнуть вирівняти пропускну здатність початковій і кінцевій стадій конвеєра рендерингу, а саме піксельний філлрейт ROP і швидкість роботи растеризатору. Растеризатор всередині GPC видає 16 кольорових пікселів за такт, а кожен ROP змішує або зафарбовує один піксель. Тепер, коли GPC містить 16 ROP, встановилося співвідношення 1: 1 між пропускною спроможністю растеризатору і блоків растрових операцій, що не залежить від конфігурації шини пам'яті. Загальна кількість блоків операцій растеризації GA102 становить 112 штук.

Таким чином GA102 отримав в загальній складності 112 ROP проти 96 в TU102, уникнувши обмеження по піксельному філлрейту, яке обов'язково виникло б у рамках попередньої архітектури. З іншого боку, в «молодших» чіпах Ampere класу GA106 не виникне пляшкове горлечко на стороні растеризатору, як сталося з TU106: растеризатор в складі трьох GPC випускають 48 пікселів за такт, в той час як 64 ROP можуть зафарбувати, відповідно, 64 пікселя.

Величезний масив виконавчих блоків GA102 живить даними 384-бітна шина оперативної пам'яті з підтримкою нового типу мікросхем GDDR6X, який ми теж обговоримо свого часу. А ось обсяг кеша другого рівня, як і в TU102, дорівнює 6 Мбайт. Нарешті, для зв'язку із зовнішнім світом використовується шина PCI Express Gen 4 і інтерфейс NVLink - активний в GeForce RTX 3090, але відключений в RTX 3080. Хоча загальна пропускна здатність містка залишилася практично такою ж, як у споживчих прискорювачів архітектури Turing (112,5 Гбайт / с в обидва боки проти 100 Гбайт / с раніше), в дійсності це інший інтерфейс, що складається з чотирьох ліній x4 швидкістю 28,13 Гбайт / с замість двох широких x8 на 50 Гбайт / с.

Процесор складається ні багато ні мало з 28 млрд транзисторів і є найбільшим ASIC на сьогоднішній день після самого GA100 (54 млрд). Для порівняння: прямий попередник новинки, старший «Тьюринг» TU102, містить вже не настільки вражаючі 18,6 млрд компонентів. Настільки різкий приріст транзисторного бюджету стало можливим завдяки переходу на наступну технологічну норму після 12-нм процесу TSMC, яким NVIDIA користувалася для виробництва «Тьюринга». Виконавцем замовлення на фотолитографію GA102 став Samsung, а номінальний розмір транзистора становить 8 нм. Точно так же, як 12-нанометровій технології Turing в офіційних документах NVIDIA фігурує під назвою 12 нм FFN (FinFet NVIDIA), самсунговскій вузол 8N був таким собі чином оптимізований під чіпи Ampere. Про особливості цього конвеєра нам взагалі мало що відомо в силу того, що він використовується далеко не так активно, як близький за номіналом 7-нм TSMC. Негайно виникає питання, чому NVIDIA на цей раз вибрала Samsung, а не TSMC, але справа, швидше за все, не в технічних перевагах 8-нм FN, а в ціні виробництва на потужностях TSMC, які зараз завантажені іншими клієнтами першої величини - такими як AMD і Apple, - та й сама NVIDIA замовляє серверні процесори GA100 там же. Благо NVIDIA недавно оголосила про те, що продукти для дата-центрів тепер становлять більшу частину її бізнесу, давно виділила відповідні чіпи в окрему гілку еволюції і не потребує того, щоб здешевлювати виробництво високомаржинальних продуктів за рахунок накрутки обсягу замовлень у того ж підрядника геймерським прискорювачами.


Як би там не було, самсунговскій 8-нм FN не можна розглядати як техпроцес другого сорту. Перехід з вузла 16 нм, на якому побудований кремній Pascal, являє собою один повний крок технологічної норми, в той час як 12-нм був проміжним етапом, що знаходило відображення на розмірі чіпів і споживаної потужності. TU102 став монстром площею 754 мм2, GA102, навпаки, при більш ніж двократному збільшенні головних обчислювальних одиниць, оцінюється цілком помірним числом 628 мм2.

І все-таки GA102 - надзвичайно великий, а головне, ненажерливий шматок кремнію. Однак NVIDIA обіцяє, що з енергоефективністю у Ampere повний порядок: за офіційними даними, продуктивність на ват потужності у GeForce RTX 3080 зросла на 90% в порівнянні з GeForce RTX 2080 SUPER. Головна заслуга в цьому належить техпроцесу 8 нм, але свою роль зіграла і оптимізація схемотехніки - зокрема, роздільні лінії живлення для ядра GPU і системи пам'яті. Крім того, за оприлюдненими тактовими частотами відеокарт Ampere недалеко пішов від Turing. NVIDIA вирішила збільшити швидкодію за рахунок укрупнення чіпів, яке завжди більш вигідне з позиції енергоефективності, а не прямого розгону, зазвичай асоційованого зі зміною технологічної норми.

Крім того, незважаючи на всі лякаючі числа, якими характеризується процесор GA102, - кількість CUDA-ядер, площа і енергоспоживання кристала, гідності Ampere не зводяться до грубої сили. Архітектура графічних процесорів NVIDIA пройшла черговий виток удосконалень, які нам належить розглянути в цьому огляді.


SM в архітектурі Ampere


Починаючи з чіпів Maxwell, інженери NVIDIA ділять Streaming Multiprocessor на чотири секції з різною кількістю обчислювальних блоків всередині (в залежності від конкретної реалізації в тому чи іншому GPU) і в попередньому поколінні архітектури (Turing) прийшли до того, що секція SM містить 16 CUDA- ядер, що оперують форматом даних FP32. Крім того, в процесорах Volta і Turing, відокремили шлях даних для операцій над цілими числами всередині CUDA-ядер від арифметики з плаваючою комою - таким чином виник блок з 16 цілочисельних CUDA-ядер, а загальне число ALU, які можуть бути завантажені одночасно, ефективно подвоїлося.

Всередині секції SM знаходиться власний планувальник, який за такт відправляє на виконання одну інструкцію warp'a (групи з 32 потоків інструкцій - т.зв. робочих одиниць), яка дозволяє зробити одну і ту ж операцію над 32 операндами. Завдяки тому, що блоку з 16 шейдерних ALU потрібно два такти, щоб виконати інструкцію, в другому такті планувальник залишається вільний. Непарні такти планувальника можуть бути зайняті відправленням інструкцій з іншого warp'а на 16 цілочисельних ALU (або інші типи виконавчих блоків, які ми поки не згадували), тому теоретична пропускна здатність Turing при повному завантаженні цілочисельними розрахунками та операціями з плаваючою точкою водночас також збільшилася в два рази в порівнянні з виключно дробовою або виключно цілочисленою арифметикою.

До оглядів прискорювачів на Turing неодноразово звучала думка, що NVIDIA слід вкластися в більше число CUDA-ядер замість спеціалізованих блоків трасування променів, які нібито перешкодили Чіпмейкеру випустити GPU, які здатні зберегти колишні темпи зростання продуктивності. І хоча серія GeForce RTX 20 дійсно виявилася не найвдалішим прикладом зростання швидкодії в порівнянні з її попередниками, не кажучи вже про питому вартість FPS, звинувачувати в цьому рейтрейсінг не зовсім коректно. Зрештою, на ALU загального призначення як і раніше лягає левова частка навантаження при перерахунку шейдерів під час множинних відображень променів, а також денойзінг зображення, необхідний при порівняно низькій щільності останніх в рендеринзі реального часу.


Проте ось відповідь NVIDIA всім тим, кому не доповіли шейдерних ALU в архітектурі Turing: тепер кількість CUDA-ядер FP32 всередині секції SM стало вдвічі більше. Ampere повернувся до вихідних позицій архітектури Pascal, коли на одному і тому ж шляху даних лежить масив 16 ALU FP32 і 16 цілочисельних ALU INT32, але з'явилася окрема гілка з 16 FP32-сумісних CUDA-ядер. Таким чином, при рівній кількості SM теоретична продуктивність Ampere в операціях над 32-бітними числами збільшилася в два рази в порівнянні з Turing. Мабуть, це головне, що потрібно винести з огляду нових чіпів, якщо немає інтересу до більш витончених аспектів нової архітектури.

Користь від реорганізації SM ще і в тому, що транзисторний бюджет процесора не так сильно роздувся, як якщо б NVIDIA просто наростила їх кількість. Щоб наситити потреби посиленого SM в швидкому доступі до даних, обсяг кеша L1, загальний з пам'яттю, був збільшена з 96 до 128 Кбайт, а його пропускна здатність - з 64 до 128 байт за такт. Крім того, Ampere допускає більш гнучкі пропорції між L1 і пам'яттю. Раніше можна було виділити лише 64 з 96 Кбайт одного типу даних. Тепер колективна пам'ять може зайняти аж до 100 Кбайт в задачах GP-GPU, хоча корисний об'єм кеша L1 і текстурного кешу для 3D-візуалізації як і раніше не перевищує 64 Кбайт.

Обсяг реєстрового файлу - найближчого до ALU і, відповідно, найшвидшого типу пам'яті в графічному процесорі - як і раніше становить 256 Кбайт, а значить, залишаються в силі обмеження на одночасне завантаження компонентів SM: якщо точніше, під час роботи тензорного ядра планувальник не може форматувати ніякі інші з основних обчислювальних блоків через тиск на реєстровий файл. Однак тензори в новій архітектурі ми розглянемо докладніше трохи пізніше.

Незважаючи на всю міць Ampere, про реальну швидкодію, близькому до проектних значень, може йти мова тільки при рафінованому матеріально кількісному навантаженні, адже блок INT32-ядер тепер знову висить на одній гілці з одним з двох блоків FP32. Крім того, на такти планувальника в SM претендує маса інших компонентів.

  • Крім власне тензорної математики на тензорних блоках Ampere виконує операції з числами половинної точності (FP16). Тут нічого не змінилося: інструкція warp'а над операндами FP16 як і раніше виконується за один такт - вдвічі швидше стандартної точності.
  • У кожній секції SM присутній блок з чотирьох ALU спеціального призначення (SFU), призначених для виконання геодезичних операцій. Одну інструкцію warp'а SFU виконує за вісім тактів, але займає тільки один такт планувальника для ініціалізації.
  • Пара CUDA-ядер подвійний розрядності (FP64) для сумісності з кодом, що містить високоточні розрахунки.

Нарешті, в Turing і Ampere є скалярні ALU, які використовуються операціями умовного розгалуження, переходу та іншої цілочисельної арифметики. У таких випадках усі значення операцій однією SIMT-інструкції однакові і замість того, щоб завантажувати ними INT32-блоки, 32 операції скаляризуються в одну. Кожна секція SM містить один скалярний блок, який виконує свою інструкцію за два такти і займає один такт планувальника для ініціалізації. Таким чином, скалярні операції Ampere не мають ніяких переваг в пропускній здатності перед векторними, тільки в енергоефективності.

Якщо не брати до уваги скалярних ALU і тензорні операції, конкуренція виконавчих блоків за такти планувальника дозволяє паралельно відпрацьовувати всередині секції SM не більш трьох різнотипних навантажень з чотирьох можливих: арифметика з речовими числами стандартної точності (на CUDA-ядрах FP32), з цілими (INT32), з речовими половинної точності (FP16) і тригонометричні операції (SFU). Завдяки тому, що FP32- і INT32-інструкції бігають на своїх ALU по два такти, а SFU - по вісім, допустимі різні комбінації між ними. Крім того, клієнтом планувальника є ще і блок розгалужень, а також група блоків load / store. Щоб задіяти будь-які з них, в цей такт планувальник не може віддати інструкцію для виконання на шейдерних ALU.

Розрахунки пропускної здатності, яку розвиває SM графічних процесорів Ampere, наведені в таблиці для порівняння з архітектурою Turing, Pascal, а також змагаються «червоними» рішеннями - RDNA і GCN, як і раніше бадьоро відчувають себе в сфері GP-GPU. Зауважимо, що ми не прагнули охопити абсолютно все поєднання інструкцій, які можливі в розглянутих архітектурах. Пропуск тактів ALU, який в чіпах NVIDIA можуть викликати операції load / store, теж не береться до уваги (GCN і, швидше за все, RDNA обходить останнє обмеження за рахунок великого числа портів планувальника). Опустимо і скалярні операції в Turing і Ampere, оскільки вони лише заміщають навантаження на блоках INT32 в потрібний момент. У GCN і RDNA вектор і скалярні інструкції даються одночасно (за умови, що наше розуміння архітеткур AMD в умовах обмеженої інформації коректно).

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


Ampere подвоїв пікову продуктивність в операціях над числами FP32, властиву Turing. Але по таблиці добре видно, що про те можна сказати, якщо взяти за точку відліку конкуруючу архітектуру RNDA. Крім того, присутність в шейдерному коді тригонометричних операцій сильніше б'є по загальній пропускній здатності RDNA, ніж Ampere. Нікуди не поділася і можливість виконувати INT32- і FP32-розрахунки одночасно, яка RDNA не володіє. Втім, порівнюючи Ampere і RDNA, не слід фокусуватися на питомій продуктивності основного будівельного блоку тієї та іншої архітектури - SM у NVIDIA і Compute Unit у AMD. У тому вигляді, як RDNA представлена ​​чіпами Navi, один CU слабкіше амперовского SM, але він, очевидно, і дешевше по транзисторному бюджету. Котрий же з двох підходів виявиться виграшним на наступному витку протистояння між двома чіпмейкерами, ми зможемо з'ясувати на практиці вже в наступному місяці, коли будуть представлені продукти на основі великого Navi і RDNA другого покоління.

Посилені блоки трасування променів


Кожен SM в архітектурі Turing містить RT-ядро, яке виконує пошук перетинів між променем і полігонами сцени. У найпростішому випадку така задача вкрай неефективна і ресурсомісткість вирішується шляхом перебору всіх геометричних примітивів, але RT-двигун Turing використовує поширений метод оптимізації під назвою Bounding Volume Hierarchy. Алгоритм BVH заздалегідь сортує полігони об'єктів по вкладеним один в одного боксів. Таким чином, щоб швидко визначити точку перетину променя з поверхнею примітиву, спершу програмі потрібно рекурсивним чином пройти крізь деревоподібну структуру BVH.

RT-ядра, представлені в чіпах Turing, розділені на два механізми, один з яких відповідає за пошук полігону всередині BVH, а інший - за визначення барицентричних координат перетину з променем на площині самого полігону. І хоча поява RT-ядер сама по собі допомогла Turing вийти на рівень швидкодії, недосяжний в рамках програмного рейтрейсингу, перша ітерація даної архітектури має свої обмеження. А саме, два компонента RT-ядра працюють суворо в послідовному порядку. У Ampere це змінилося: блок перетину з полігоном може займатися одним променем одночасно з тим, як блок BVH відстежує другий. Крім того, перший блок працює вдвічі швидше, ніж раніше.


Нарешті, в апаратному рейтрейсингу на чіпах Ampere є одне функціональне нововведення - трассування motion blur. Інформація про стан геометричного примітиву в кадрі тепер може зберігатися не тільки у вигляді незмінних координат, але ще й у вигляді функції, яка описує його рух. Таким чином, для того, щоб виявити полігон всередині BVH, потрібно поставити запитання: «Де він знаходиться в даний момент часу?». Потім кожен з безлічі променів, що відслідковуються RT-ядром в межах одного кадру, кілька разів перетинає поверхню полігону в інтерпольованих координатах, відповідному мінливому положенню вершин уздовж заданого вектора, і виходить розмиття в русі.

Завдяки спеціалізованому залізу, трассування motion blur на чіпах Ampere виконується у вісім разів швидше в порівнянні з теоретичною швидкістю на Turing. Також зауважимо, що рух полігону не повинен бути лінійним і може, наприклад, бути круговим, як у лопастей вентилятора. У будь-якому випадку результатом стає більш якісний ефект розмиття в порівнянні з іншими, часом більш витонченими, але не настільки елегантними методами.

Технологія вже підтримується пакетами оффлайнового трасування променів, сумісними з інтерфейсом NVIDIA OptiX 7.0, - такими як Blender 2.90, Chaos V-Ray 5.0, Autodesk Arnold і Redshift Renderer 3. А ось в комп'ютерних іграх вона з'явиться не так скоро: як не крути, вона багаторазово збільшує навантаження не тільки на RT-ядра, але і на масив шейдерних ALU.


Тензорні ядра нового покоління


Спеціалізованим виконавчим блоком секції SM в процесорах Turing є два тензорних ядра, які розраховані на єдиний тип операцій - FMA (Fused Multiply Add), а в якості операндів приймають матриці чисел з плаваючою комою. Подібні обчислення використовуються при обробці даних нейромережами (inference) як в професійному, так і в ігровій сфері - наприклад, на них спирається фірмовий алгоритм масштабування кадрів DLSS.

У чіпах Volta і Turing тензорне ядро ​​перемножує дві матриці чисел половинної точності (FP16) розміром 4 × 4 і складає результат з третьою матрицею 4 × 4 (FP16 або FP32), щоб отримати фінальну матрицю FP32. Таким чином, одне тензорне ядро ​​за такт процесора виконує 64 інструкції FMA. Що ж змінилося в наступній ітерації мікроархітектури? По-перше, тензорне ядро ​​Ampere має вдвічі більшу пропускну здатність за рахунок того, що розмірність однієї з перемножуючих матриць збільшилася з 4 × 4 до 4 × 8. Втім, кожна секція SM споживчих чіпів Ampere тепер містить лише одне тензорне ядро, так що питома продуктивність на такт залишилася тією ж. У серверному GA100 вона подвоєна, оскільки кожне тензорне ядро ​​виконує множення матриць розміром 8 × 4 і 8 × 8, але реалізовувати подібну обчислювальну потужність в споживчих продуктах NVIDIA поки не вважає доцільною інвестицією транзисторного бюджету.


Загальним нововведенням для GA100 і геймерських різновидів Ampere є підтримка структурно-розріджених матриць, які дозволяють істотно збільшити пропускну здатність тензорних ядер. Давайте розберемося, про що йде мова. Глибинне навчання нейромережі починається з того, що кожен вузол певного шару з'єднаний з усіма вузлами наступного, а в процесі тренування, з'єднання набувають ваги, які визначають «переміщення» даних, які обробляються нейромережею на практиці. При цьому обов'язково виникають сполуки, що не роблять значного впливу на точність результатів. Такі сполуки, вузли або цілі сегменти прийнято усувати для економії обчислювальних потужностей в той чи інший спосіб, і виходить, власне кажучи, розріджена мережа.

Наприклад, ваги з'єднань, близькі до нуля, обнуляються, після чого проводиться повторне тренування мережі - метод т. з. Fine-Grained Sparsity. В іншому випадку (Coarse-Grained Sparsity) вилучаються цілі сегменти мережі. Перший підхід дозволяє зберегти високу точність, але страждає від низької оптимізації під масивно-паралельну архітектуру виконавчих блоків і пам'яті GPU. Так, для того, щоб отримати дані на виході вузлів в умовах Fine-Grained Sparsity, потрібен різний обсяг обчислень, що викликає проблеми з балансуванням навантаження і нерівномірний доступ до пам'яті. А ось структурна розрідженість (Fine-Grained Structured Sparsity) також допускає присутність в мережі нульових ваг, але разом з тим накладає такі обмеження, що кожен вузол певного ряду повинен мати фіксоване число деактивованих з'єднань. В результаті на кожен вузол доводиться однаковий обсяг обчислень і запитів до даних.

Тензорні ядра Ampere оптимізовані під обробку структурно-розріджених нейромереж таким чином, що в розрахункових матрицях можлива наявність двох ненульових значень в ряду з чотирьох чисел, а загальна продуктивність також збільшується в два рази за рахунок пропуску нулів. Крім того, матриці, розріджені в співвідношенні 2:4, допускають дворазову компресію, яка економить обсяг і пропускну здатність різних ешелонів пам'яті GPU. Зауважимо, що Ampere не виконує розрідження матриць на льоту, але NVIDIA надала для цього простий алгоритм. Спочатку розробник повинен виконати тренування нейромережі з результатом у вигляді щільної матриці, потім остання конвертується в розріджену, і нарешті відбувається тонке налаштування решти ваг. Як стверджує чипмейкер, метод не призводить до істотного падіння точності обробки даних нейромережею (inference) в таких завданнях, як комп'ютерний зір, розпізнавання об'єктів, моделювання природних мов і т. д.


Однак і це ще не все. Наступне нововведення Ampere, пов'язане з тензорними ядрами, яке безпосередньо стосується продуктивності в іграх. Справа в тому, що Turing не дозволяє одночасно навантажувати блоки трасування променів і тензорні ядра. Як наслідок, графічні шейдери можуть оброблятися безперервно у міру рендеринга кадру, але паралельно їм, в окремий момент часу діє тільки один тип розрахункового (compute) навантаження - рейтрейсинг або тензорні операції DLSS. Тепер трасування променів, графічні шейдери і DLSS всередині SM виконуються одночасно, що додатково скорочує час рендерингу. Може виникнути питання, яким чином DLSS знаходить роботу, поки кадр ще не готовий. Відповідь в тому, що DLSS має тимчасову компоненту і залучає дані попередніх кадрів.


Оперативна пам'ять GDDR6С


Колосальний потенціал обчислювальної потужності старших чіпів Ampere потребує відповідної пропускної здатності набортної пам'яті відеокарти. У той же час швидкість перемикання осередків DRAM збільшити нелегко, а пропускну здатність в останні роки вдавалося нарощувати головним чином за рахунок паралелізму. Так, наприклад, в стандартах GDDR5X і GDDR6 ввели режим QDR, який шляхом фазового зсуву чотирьох копій сигналу (частоти WCK, Word Clock) забезпечує подвійну пропускну здатність у порівнянні з чіпами GDDR5, які передають інформацію в режимі DDR. Але при цьому «реальна» частота WCK спочатку була такою ж, як в рамках GDDR5.

Споживчі відеокарти сьогодні оснащуються пам'яттю GDDR6 з номінальною швидкістю передачі даних аж до 16 Гбіт / с на контакт, але схоже, що таким процесорам, як GA102, потрібно черговий якісний стрибок. NVIDIA могла піти шляхом збільшення розрядності шини пам'яті GPU - або за рахунок переходу на HBM2, як зроблено в топових пристроях AMD і «зелених» серверних прискорювачах, включаючи GA100, або за рахунок підключення чіпів GDDR6 до широкої 512-бітної шини. Але виявилося, що є й інший вихід. На замовлення NVIDIA компанія Micron створила для прискорювачів GeForce RTX 30 нові мікросхеми пам'яті GDDR6X. Назва викликає асоціації з GDDR5X, і недаремно. Останній тип SGRAM був розроблений спеціально під потреби передових пропозицій NVIDIA свого часу - GeForce GTX 1080 Ti і прискорювачів Quadro на тому ж чіпі GP102. Згодом стандарт був кодифіковано JEDEC, але жоден інший виробник, крім NVIDIA і Micron, не скористався цією можливістю.

GDDR6X поки теж не є надбанням всієї індустрії, хоча напрацювання Micron ще можуть знайти застосування в прийдешніх версіях пам'яті GDDR. Йдеться про докорінну зміну принципів кодування сигналу WCK. Сьогодні, в пам'яті типу GDDR6, один такт сигналу кодує один біт інформації, який відповідає високій і низькій напрузі провідника. У GDDR6X, навпаки, застосовується амплітудно-імпульсна модуляція, коли амплітуда сигналу може приймати чотири різних значення (PAM4) і, відповідно, в одному такті сигналу закодовані два біта даних. В рамках PAM4 можна вдвічі знизити частоту WCK, зберігши колишню пропускну здатність, а потім поступово нарощувати і те й інше.


Для початку Micron налагодила випуск мікросхем з номіналом 19 і 21 Гбіт / с на контакт шини. 19 Гбіт / с в GeForce RTX 3080 забезпечує пропускну здатність на рівні 760 Гбайт / с при шині RAM, урізаною з 384 до 320 біт. Серед сучасних споживчих відеокарт вищою ПСП може похвалитися лише Radeon VII (1 Тбайт / с), але GeForce RTX 3090 навіть при тому, що NVIDIA обмежилася швидкістю 19,5 Гбіт / с на контакт, вже наближається до показників HBM2 завдяки повністю активної 384 бітної шини пам'яті - 936 Гбайт / с. Порівняно низькі «реальні» частоти сприятливо впливають і на енергоефективність чіпів - за даними Micron, вона збільшилася на 15%, що зовсім не зашкодить надзвичайно ненажерливим новинкам.

Нарешті, NVIDIA відзначає, що кожен чіп GDDR6X тепер пов'язаний з GPU двома псевдо незалежними каналами. Насправді і звичайна пам'ять GDDR6 влаштована так, що половинки мікросхеми мають власні шини передачі команд, адрес і окремі 16-бітові шини передачі даних. Загальною є лише тактова частота - звідси приставка псевдо-. По всій видимості, в даному випадку мова йде про більш гнучке управління кристалами DRAM, яке допомагає прискорити операції проходження структур BVH при трасуванні променів.

Як би там не було, перехід від GDDR6 до GDDR6X не пройшов безкоштовно: PAM4 збільшує продуктивність RAM ціною підвищених вимог до співвідношення «сигнал - шум». І, отже, для того, щоб обслуговувати пам'ять з такими характеристиками, потрібні витончені контролери. Зокрема, NVIDIA використовує в пам'яті прийом, який поширений в телекомунікаційних стандартах, що спираються на амплітудно-імпульсну модуляцію, - перекодування потоку даних для запобігання максимальних коливань амплітуди, - а крім того, алгоритми динамічного підстроювання сигналу. Окрему лінію живлення для підсистеми пам'яті графічного процесора, яку ми згадали на початку статті, вирішили прокласти не в останню чергу для того, щоб знову-таки поліпшити співвідношення «сигнал - шум» в умовах PAM4.


Нарешті, виробникам друкованих плат для GeForce RTX 3080 і RTX 3090 тепер теж доведеться мати справу з більш жорсткими вимогами до схемотехніки, ніж будь-коли раніше. Не дарма чіпи RAM в референсній версії RTX 3080 розпаяні так близько до підкладки GPU. Відзначимо, що мікросхеми GDDR6X випускаються в таких же корпусах, як у GDDR6, і володіють таким же набором контактів для тих чи інших сигналів. У нас немає підтвердження того, що старий і новий тип пам'яті електрично сумісні між собою, але цілком можливо, що так воно і є, а партнери NVIDIA зможуть використовувати один і той же дизайн друкованої плати для GeForce RTX 3080 і RTX 3070, хоча останній розрахований саме на GDDR6.


Головним практичним запереченням при виборі пам'яті для GeForce 30-ї серії є ціна рішення. GDDR6X значно дешевше у виробництві і збірці в порівнянні з HBM2, але все-таки дорожче GDDR6 і потребує більш складних друкованих платах. Всі ці обставини дають нову поживу для сумнівів в тому, що виробники відеокарт оригінального дизайну зуміють утримати приємні роздрібні ціни, рекомендовані NVIDIA. І зрозуміло, не йде ніякої мови про те, щоб дешево коштували «ампери» з подвоєним об'ємом VRAM. Micron ще не випускає чіпів ємністю більше 8 Гбіт, а значить, в гіпотетичні 20-гігабайтні різновиди GeForce RTX 3080 і 16-гігабайтні RTX 3070 доведеться закладати вдвічі більше мікросхем для роботи в clamshell-режимі, не рахуючи ще складнішої схемотехніки друкованих плат. А професійні прискорювачі на базі GA102, можливо, будуть на перших порах обмежені «старою» пам'яттю GDDR6, якщо NVIDIA націлилася на позначку 48 Гбайт.

RTX ІO


Ще один важливий аспект швидкодії GPU, над яким попрацювали творці Ampere, пов'язаний з пропускною спроможністю з'єднання між графічним процесором і іншими компонентами системи. Так, усі відеокарти серії GeForce RTX 30 використовують інтерфейс PCI Express четвертого покоління, але це лише тимчасове рішення складнощів, що виникають при передачі даних між ПЗУ комп'ютера, центральним процесором і локальною пам'яттю графічної карти - зокрема, в таких сценаріях, як попереднє завантаження ресурсів гри або стрімінг останніх в реальному часі, який широко використовується для подолання обмежень ємності VRAM. Тим більше, як ми вже помітили, сам обсяг оперативної пам'яті може створити труднощі для GeForce RTX 3080 в не настільки віддаленому майбутньому, а референсні специфікації GeForce RTX 3070 вже виглядають проблематично.

Деякі сучасні ігри займають на жорсткому диску або SSD понад 200 Гбайт місця, і значна частина цих даних так чи інакше повинна потрапити в оперативну пам'ять GPU. У традиційній логіці введення-виведення це виконується незграбним способом, коли ресурси спершу копіюються в системну пам'ять, а потім в VRAM, двічі проходячи через інтерфейс PCI Express. Крім того, швидкий SSD не завжди підключений безпосередньо до центрального процесора: наприклад, свої обмеження на пропускну здатність може накладати шина DMI між CPU і PCH в архітектурі Intel. Нарешті, домінуючі в десктопах файлові системи також не розраховані на ефективну обробку такої кількості запитів вводу-виводу.


Щоб обійти всі перераховані обмеження, розробники ігор застосовують компресію даних без втрат, але у неї є власні витрати: розпакування даних займає такти процесора. У патологічних випадках, які симулювала NVIDIA, декомпресія потоку даних з твердотільного накопичувача, здатного видати 7 Гбайт / с по шині PCI Express 4.0, повністю поглинає 24 ядра Ryzen Threadripper 3960X! Сучасні ігри, очевидно, не можуть створити настільки вузьке горло пляшки, але, судячи з того, якими темпами наростає обсяг графічних ресурсів, це лише питання часу.


Докорінно вирішити проблему завантаження даних в пам'ять GPU може тільки абсолютно інша архітектура введення-виведення. Такі рішення вже існують. Наприклад, в консолі нового покоління Xbox Series X застосовується спеціальний SSD, блок апаратної декомпресії, а також інтерфейс програмування DirectStorage. Microsoft має намір перенести DirectStorage на PC, і, якщо врахувати майбутні крос-платформні проекти, впровадження нового API в передові гри для персоналок не за горами. Проте для роботи DirectStorage потрібно не тільки SSD, але і засоби прискореної декомпресії даних, що знімають навантаження з центрального процесора.

Саме цю функцію бере на себе технологія RTX IO, яка вносить два ключових зміни в спосіб передачі даних. По-перше, за допомогою DMA-блоків Turing і Ampere (так-так, це не ексклюзивна особливість RTX 30-ї серії) графічні ресурси копіюються безпосередньо в VRAM, минаючи системну пам'ять. По-друге, на шляху від SSD до відеокарти дані залишаються стиснутими, а декомпресію виконує сам графічний процесор шляхом асинхронних обчислень на шейдерних ALU. Таким чином завантаження з ПЗУ може відбуватися на повній швидкості PCI Express 4.0, але при цьому тиск на CPU зменшується в десятки разів. RTX IO під керуванням DirectStorage дасть розробникам ігор можливість більш агресивно використовувати компресію даних, що в результаті радикально зменшить час первинного завантаження ігор. З іншого боку, завдяки швидкісної потокової передачі GPU зможе на льоту отримувати ресурси з ПЗУ - як для того, щоб в іграх в принципі було менше періодів завантаження, так і для економії обсягу VRAM.


Апаратне декодування AV1 і вихід HDMI 2.1


Чіпи Ampere стали першими графічними процесорами з блоками фіксованої функціональності для швидкого декодування AV1 - нового, високоефективного формату стиснення відеозаписів, який призначений головним чином для трансляції відео по мережі. AV1 забезпечує більш високу ступінь компресії, підвищена якість зображення в порівнянні з поширеними кодеками HEVC (H.265) і VP9 і в той же час вільний від ліцензійних відрахувань.

AV1 ідеально відповідає вимогам 8К-відео, але декомпресія формату надає надзвичайно сильне навантаження на процесори загального призначення. Так, навіть сучасний восьмиядерний CPU не гарантує більше 30 кадрів/с при відтворенні записів 8К з високим динамічним діапазоном. Нова версія декодера NVDEC цілком бере цю задачу на себе. Разом з тим на цей раз NVIDIA нічого не говорить про швидкість декодування колишніх форматів H.264, HEVC і VP9. Благо чіпи Turing вже досягли в ній надзвичайно високих показників. Кодувальник NVENC також дістався в спадок новим GPU без будь-яких змін.



Якщо невдовзі GeForce RTX 3090 оголошений відкритий для гри в дозволі 8К, справедливо, що флагманський Ampere і два молодших прискорювача обзавелися інтерфейсом HDMI версії 2.1 з максимальною пропускною здатністю, описаним стандартом (48 Гбіт/с), яка як раз забезпечує передачу 8К-сигналу з частотою оновлення 60 Гц, а завдяки компресії (DSC) - ще й HDR.

Висновки


Якщо прискорювачі сімейства Turing стали в історії графічних процесорів NVIDIA таким же поворотним моментом, як поява програмованих шейдерів в GeForce 256, а потім уніфікованої шейдерної архітектури і обчислень загального призначення в GeForce GTX 8800, Ampere викликає асоціації з такими славними продуктами, як Kepler і Pascal. Тоді NVIDIA зосередилася на зростанні чистої продуктивності, спираючись на переваги передового техпроцесу, а користувачі насолоджувалися колосальною надбавкою ігрової продуктивності. З відеокартами GeForce RTX 30 сталося приблизно те ж саме. Звичайно, інженери NVIDIA не упустили можливості розширити функціональність GPU. Зокрема, таке нововведення, як RTX IO, виглядає досить перспективно і має всі шанси знайти практичне застосування в іграх. Але RTX IO не прив'язана до чіпів Ampere, сумісна з Turing, та й в цілому попереднє покоління «зелених» GPU вже заклало основи архітектури, що стоїть на трьох китах: ефективної організації шейдерних ALU, тензорних обчисленнях і апаратно прискореного трасування променів. Від наступної ітерації кремнію було потрібно тільки наростити продуктивність (тепер уже за два покоління відразу), і, судячи з того, що ми знаємо про Ampere, відеокарти RTX 30 впоралися з цим завданням.

А головне, NVIDIA прислухалася до думки покупців і повернулася до правила «більше FPS за ті ж гроші». Залишилося переконатися в величині надбавки, але це ми з'ясуємо в найближчі дні, коли в нашому розпорядженні з'являться довгоочікувані тестові зразки GeForce RTX 3080 і RTX 3090. Разом з тим повинні зізнатися, що нас дещо турбує в характеристиках новинок. Так, NVIDIA встановила на відеокарти 30-й серії такі ж ціни, як у попередників, а якщо порівнювати GeForce RTX 3090 зі старим «Титаном», то перша коштує навіть менше. Але все, що ми дізналися про Ampere, - висока споживана потужність, що вимагає відповідного охолодження, дорогі чіпи пам'яті і складні друковані плати - говорить про те, що ці пристрої не створені дешевими. Так що ціни партнерських продуктів в результаті можуть сильно розминутися з офіційними цифрами. Крім того, поки не можна бути впевненим в існуванні альтернативних різновидів GeForce RTX 3080 і, що особливо важливо, RTX 3070 з подвоєним об'ємом VRAM, але їх ви точно не зможете купити за рекомендованою вартістю. Наша думка про прискорювачі GeForce RTX 30 і результат насуваючої битви між Ampere і великими чіпами AMD Navi визначать не тільки і не стільки тести швидкодії, скільки ситуація на ринку через місяць-другий після появи у продажу.

Валерій Косихін

Комментариев нет:

Отправить комментарий