Зміст

  • Вступна нашого експерименту
  • Апаратна трасування променів — благо чи примха?
  • Навіщо взагалі ігрової відеокарти якийсь інтелект?
  • ОК, нові фічі гарні, а що зі старими іграми?
  • Але $1000! Наживається чи Nvidia на гравцях або рухає індустрію?
  • Епічність финалочка

Вступна нашого експерименту

Для початку — що це таке ви читаєте і про що йтиметься далі. Ні, це не огляд відеокарт, та ні, це навіть не огляд нової графічної архітектури. Це експериментальний формат: просто рандомные думки по темі, які відвідували автора під час численних гарячих обговорень у форумах і соцмережах після анонсу нової лінійки відеокарт Nvidia. Повноцінний огляд обов’язково з’явиться на нашому сайті, але він буде готовий рівно тоді, коли буде готовий. Кілька днів ще доведеться почекати.

Ну а тепер давайте просторікувати розмірковувати. Нагадаю, що компанія Nvidia анонсувала ігрові рішення лінійки GeForce RTX ще в серпні, на ігровій виставці Gamescom у Кельні. Створені вони на основі нової архітектури Тьюринга, представленої трохи раніше — на SIGGraph 2018. А сьогодні настав той день, коли можна публічно розкривати всі відомі подробиці про нові архітектурі і відеокартах каліфорнійської компанії.

Якщо хтось ще не в курсі, то нових моделей GeForce RTX поки що оголошено три штуки: RTX 2070, RTX 2080 і RTX 2080 Ti, вони засновані на трьох графічних процесорах: TU106, TU104 і TU102 відповідно. Так, Nvidia змінила систему найменувань як самих відеокарт (RTX — від ray tracing, тобто трасування променів), так і відеочіпів (TU — Тьюринга), але ми сьогодні не будемо жартувати на тему Ту-104, адже у нас предостатньо інших приводів для обговорення.

Цікаво, що молодша модель GeForce RTX 2070 заснована на TU106, а не TU104, як припускали багато — до речі, це єдина відеокарта нової лінійки, що має повноцінний чіп без урізання за кількістю виконавчих блоків. Вона і вийде пізніше двох інших відеокарт, так як TU106 підготували до виробництва дещо пізніше старших чіпів. Ми не будемо сьогодні докладно зупинятися на кількісних характеристиках, залишивши це повноцінного огляду новинок, але розглянемо різницю між чіпами по складності.

Застосовувана модифікація TU102 за кількістю блоків рівно вдвічі більше, ніж TU106, середній чіп TU104 містить чотири блоки TPC на кластера GPC, а TU102 і TU106 мають по 6 блоків TPC на кожен GPC. Але зараз для нас важливіше складність і розміри графічних процесорів (чому — зрозумієте далі, коли мова піде про ціни). TU106, що лежить в основі GeForce RTX 2070, має 10,6 млрд транзисторів і площа 445 мм2, що більш ніж на сотню міліметрів більше, ніж у GP104 на архітектурі Pascal (7,2 млрд і 314 мм2). Те ж саме стосується і інших рішень: модель GeForce RTX 2080 Ti виконана на злегка урізаною версією TU102, що має площу 754 мм2 і 18,6 млрд транзисторів (проти 610 мм2 та 15,3 млрд у GP100), GeForce RTX 2080 базується на урізаному TU104 з площею 545 мм2 і 13,6 млрд транзисторів (порівняйте з 471 мм2 і 12 млрд у GP102).

Тобто по складності чіпів Nvidia як би зрушила лінійку на крок: TU102 швидше гіпотетично відповідає передбачуваному чіпу з індексом 100, TU104 більше схожий на «TU102», а TU106 — на «TU104». Це якщо дивитися по сімейству Pascal, яке, до речі, вироблялося по техпроцесу 16 нм на TSMC, а всі нові графічні процесори — на… гм… більше новому 12 нм у тих же тайванців.

Але за розмірами чіпів це зміна помітити важко, тому що техпроцеси дуже близькі за характеристиками, попри свої начебто різні найменування — інформація про них на сайті TSMC навіть розміщена на одній сторінці. Так що великої переваги у собівартості виробництва бути не повинно, але площа всіх GPU-то помітно зросла… Запам’ятайте цю інформацію і випливає з неї логічний висновок — вони ще знадобляться нам в кінці матеріалу.

Апаратна трасування променів — благо чи примха?

Так звідки ж узялися всі ці «зайві» транзистори в нових GPU, адже кількість основних виконавчих блоків (CUDA-ядер) зросла не так вже сильно? Як стало відомо з анонса архітектури Тьюринга і професійних рішень лінійки Quadro RTX на SIGGraph, нові графічні процесори Nvidia крім раніше відомих блоків вперше включають також і спеціалізовані RT-ядра, призначені для апаратного прискорення трасування променів. Переоцінити їх поява у відеокартах неможливо, це великий крок вперед для якісної графіки в реальному часі. Ми написали для вас докладну статтю про трасуванні променів та її переваги, які проявляться вже в найближчі роки. Якщо вас цікавить ця тема, то настійно радимо ознайомитися.

Якщо зовсім коротко, то трасування променів забезпечує значно більш високу якість зображення в порівнянні з прастеризацией, навіть при тому, що її застосування поки обмежена можливостями апаратного забезпечення. Але анонс технології Nvidia RTX і відповідних GPU дав розробникам принципову можливість почати дослідження алгоритмів, що використовують трасування променів, що стало самим значним зміною в графіку реального часу за довгі роки. Це переверне все уявлення про графіку, але не відразу, а поступово. Перші приклади використання трасування будуть гібридними (поєднання трасування променів і растеризації) і обмеженими за кількістю та якістю ефектів, але це єдино правильний крок до повної трасуванні променів, яка стане доступною вже через кілька років.

Завдяки первісткам сімейства GeForce RTX, вже зараз можна використовувати трасування для частини ефектів — якісних м’яких тіней (буде реалізовано у свіжій гри Shadow of the Tomb Raider), глобального освітлення (очікується в Metro Exodus і Enlisted), реалістичних відображень (буде в Battlefield V), а також відразу кілька ефектів одночасно (це було показано на прикладах Assetto Corsa Competizione, Atomic Heart і Control). При цьому для GPU, не мають апаратних RT-ядер, можна використати звичні методи растеризації. А RT-ядра у складі нових чіпів використовуються виключно для розрахунку перетину променів з трикутниками і обмежують обсягами (BVH), найважливішими для прискорення процесу трасування (подробиці читайте в повному огляді), а обчислення закраске пікселів все так само робляться в шейдери, виконуваних на звичних мультипроцесорах.

Що стосується продуктивності нових GPU при трасуванні, то публіці назвали цифру в 10 гигалучей в секунду. Багато це чи мало? Оцінювати продуктивність RT-ядер в кількості обсчитываемых променів у секунду не зовсім коректно, так як швидкість сильно залежить від складності сцени та когерентності променів. І вона може відрізнятися в десяток разів і більше. Зокрема, слабо когерентні промені при обрахуванні відбиття та заломлення вимагають більшого часу для розрахунку порівняно з когерентними основними променями. Так що показники ці суто теоретичні, і порівнювати різні рішення потрібно в реальних сценах при однакових умовах. Але вже відомо, що нові GPU до 10 разів швидше (це в теорії, а в реальності — швидше до 4-6 разів) у завданнях трасування порівняно з попередніми рішеннями аналогічного рівня.

Про потенційні можливості трасування променів не варто судити по раннім демонстрацій, в яких навмисно випускають на перший план саме ці ефекти. Картинка з трасуванням променів завжди реалістичніше в цілому, але на даному етапі маси ще готові миритися з артефактами при розрахунку відбиттів і глобального затінення в екранному просторі, а також іншими хакамі растеризації. Але з трасуванням можна отримати приголомшливі результати: подивіться на скріншот з нової демки компанії Nvidia з трасуванням променів, застосовуваної для повного прорахунку висвітлення, у тому числі глобального, м’яких тіней (правда, лише від одного джерела світла — сонця, зате його можна переміщати) і реалістичних відображень, не кидаються в очі, як ми це бачили в інших демонстраціях.

Сцена в демці (нам обіцяли пізніше випустити її привселюдно, щоб усі могли подивитися вживу) наповнена об’єктами складної форми із різних матеріалів: барна стійка, стільці, світильники, пляшки, натертий до блиску паркетна підлога і ін. Для згладжування використовується просунутий алгоритм з застосуванням штучного інтелекту — DLSS, і сцена при всьому цьому отрісовиваємих майже в реальному часі лише на парі відеокарт GeForce RTX 2080 Ti! Так, поки що в іграх такого не побачиш, але все ще попереду. Трохи більше інформації про цій демці — під спойлером в останній главі матеріалу.

Недовірливий гравець відразу ж причепиться до парі топових GPU: «Ага, я завжди знав, що трасування променів буде сильно просаджувати продуктивність!» Ні, далеко не завжди для трасування потрібні дві топові відеокарти вартістю по тисячі доларів кожна, в грі Enlisted (Gaijin Entertainment) застосовується настільки хитрий метод розрахунку глобального освітлення в реальному часі з застосуванням апаратної трасування Nvidia, що включення GI не приносить втрат продуктивності взагалі!


GI вимкнений — 117,9 FPS

GI включений — 118,3 FPS

Якщо ви зверніть увагу на лічильник FPS в кутку екрану, то легко помітите, що включення GI не знизило частоту кадрів зовсім, хоча значно збільшило реалістичність освітлення (картинка без GI плоска і нереалістична). Це стало можливо на GeForce RTX завдяки хитрому алгоритмом Gaijin і спеціалізованим RT-ядрам, які виконують всю роботу по прискоренню спеціальних структур (BVH — Bounding Volume Hierarchy) і пошуку перетинів променів з трикутниками. Так як велика частина роботи виконується саме на виділених RT-ядрах, а не CUDA-ядер, то і зниження продуктивності в даному конкретному випадку це практично не приносить.

Песимісти скажуть, що рівно так само можна попередньо розрахувати GI і «запекти» інформацію про висвітлення у спеціальні лайтмапы, але для великих локацій з динамічним зміною погодних умов і часу доби зробити це просто фізично неможливо. Так що апаратно експрес трасування променів мало того що приносить підвищення якості, вона полегшить працю дизайнерів, та ще при всьому цьому може бути «дешевої» або навіть «безкоштовної» в деяких випадках. Звичайно, так буде не завжди, якісні тіні і заломлення складніше розрахувати, але спеціалізовані RT-ядра сильно допомагають у порівнянні з трасуванням променів чисто за допомогою обчислювальних шейдерів.

Взагалі, ознайомившись з безліччю думок простих гравців після анонсу технології RTX і перегляду демонстрацій в іграх, можна зробити висновок про те, що далеко не всі зрозуміли, що принципово нового дає трасування променів. Багато говорять щось типу: «А що, тіні в іграх зараз і так реалістичні і відображення є — ті, які показала Nvidia з використанням трасування, нічим не краще». В тому-то і справа, що краще! Хоча растеризування за допомогою численних хитрих хаків і трюків до наших днів дійсно досягла відмінних результатів, коли у багатьох випадках картинка виглядає досить реалістично для більшості людей, в деяких випадках промалювати коректні відображення і тіні при растеризації неможливо принципово.

Самий явний приклад — відображення об’єктів, які знаходяться поза сценою — типовими методами відтворення відбитків без трасування променів повністю реалістично промалювати їх неможливо. Чи не вийде зробити реалістичні м’які тіні і коректно розрахувати освітлення від великих за розміром джерел світла (площинні джерела світла — area lights). Для цього користуються різними хитрощами, начебто розставляння вручну великої кількості точкових джерел світла і фейкового розмиття кордонів тіней, але це не універсальний підхід, він працює тільки в певних умовах і вимагає додаткової роботи й уваги від розробників.

Для якісного ж стрибка в можливостях і поліпшення якості картинки перехід до гібридного рендерингу і трасуванні променів просто необхідний. Точно такий же шлях у свій час проходила кіноіндустрія, в якій в кінці минулого століття застосовувався гібридний рендеринг з одночасною прастеризацией і трасуванням. А ще через 10 років всі в кіно поступово перейшли до повної трасуванні променів. Те ж саме буде і в іграх (тільки не через 10 років, а раніше), цей крок з відносно повільною трасуванням і гібридним рендерингом неможливо пропустити, так як він дає можливість підготуватися до трасуванні всього і вся.

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

В кіноіндустрії перехід до повної трасуванні променів привів до збільшення часу роботи художників безпосередньо над контентом (моделюванням, текстурированием, анімацією), а не над тим, як зробити неідеальні методи растеризації реалістичними. Наприклад, зараз дуже багато часу йде на розподіл джерел світла, попередній розрахунок освітлення і «запікання» його на статичні карти освітлення. При повній трасуванні все це буде не потрібне, і навіть просто підготовка карт освітлення на GPU замість CPU дасть прискорення цього процесу. Тобто перехід на трасування дає не просто поліпшення картинки, а стрибок і в якості самого контенту.

Хтось скаже, що в перехідний гібридний період в іграх все буде блискуче і відображає, і це нереалістично. А як нібито колись було інакше! Коли тільки почалося впровадження відбиттів в екранному просторі (SSR — screen space reflections) в іграх, то кожна перша автогонка (згадайте серію Need for Speed, починаючи з Underground) вважала своїм обов’язком показувати чи не виключно мокрі нічні дороги. Ймовірно, відображають об’єктів з впровадженням трасування теж стане більше, але в основному з тієї причини, що раніше рендеринг реалістичних відображень був або складний, або зовсім неможливий в певних випадках. Плюс, цілком природно, що в перших демонстраціях технології нам показують в основному ті поверхні, на яких ефект добре видно, але в іграх майбутнього зовсім не обов’язково буде так.

На перших стадіях впровадження трасування є і явна проблема нестачі її продуктивності, але апетити розробників постійно ростуть, як тільки вони розпробують нову технологію. Наприклад, творці гри Metro Exodus спочатку планували додати в гру лише розрахунок Ambient Occlusion, додати тіней в основному в кутах між поверхнями, але потім вони вирішили впровадити вже повноцінний розрахунок глобального освітлення GI. Результат вийшов досить непоганим вже зараз:

Спочатку візуальна різниця між максимально опрацьованими алгоритмами растеризації і починає свій шлях апаратної трасуванням променів нерідко дійсно буде не надто великий, і в цьому є певна небезпека для Nvidia. Користувачі можуть сказати, що вони не готові заплатити за таку різницю, і з споживчої точки зору зрозуміти їх можна.

З іншого боку, перехідного періоду не уникнути, і хто, як не лідер індустрії, здатний потягнути його, заодно умовивши і своїх партнерів? Тим більше правильно робити це при нинішньому положенні справ, коли єдиний конкурент вирішив взяти велику (ні, не так: ВЕЛИЧЕЗНУ) паузу у розробці своїх рішень.

Навіщо взагалі ігрової відеокарти якийсь інтелект?

З трасуванням променів більш-менш розібралися, і вона, безумовно, корисна для графіки, нехай і дається спочатку досить великою ціною. Але для чого в ігрових графічних процесорах залишили тензорні ядра, які вперше з’явилися в архітектурі Volta і в дорогу відеокарту для ентузіастів — Titan V? Ці тензорні ядра прискорюють завдання із застосуванням штучного інтелекту (так зване глибоке навчання), і навіщо все це гравцям, на думку деяких вимушеним платити за те, що вони не використовують?

Головне, для чого потрібні тензорні ядра GeForce RTX — для допомоги все тієї ж трасуванні променів. Поясню: в початковій стадії застосування апаратної трасування продуктивності вистачає тільки для порівняно невеликої кількості розраховуються променів на кожен піксель, а мала кількість розраховуються семплів дає вельми «гучну» картинку, яку доводиться додатково обробляти (подробиці читайте в нашій статті про трасуванні). У перших проектах буде від 1 до 4 променів на піксель, в залежності від завдання і алгоритму. Приміром, у Metro Exodus для розрахунку глобального освітлення використовується за три променя на піксель з розрахунком одного відображення, і без додаткової фільтрації результат до застосування не дуже придатний.

Для вирішення цієї проблеми можна використовувати різні фільтри шумопониження, що покращують результат без необхідності збільшення кількості вибірок (променів). Шумодавы дуже ефективно усувають неідеальність результату трасування з малою кількістю вибірок, і результат їх роботи часто не відрізнити від зображення, отриманого за допомогою в рази більшої кількості вибірок.

На даний момент Nvidia використовують різні шумодавы, в тому числі і засновані на роботі нейромереж. Які можуть бути прискорені на тензорних ядрах. У майбутньому такі методи із застосуванням ШІ будуть поліпшуватися і здатні повністю замінити всі інші. Головне, що потрібно зрозуміти: на поточному етапі застосуванням трасування променів без фільтрів шумозаглушення не обійтися, багато в чому саме тому тензорні ядра обов’язково потрібні на допомогу RT-ядер.

Але далеко не тільки для цієї задачі можна використовувати штучний інтелект (ШІ) і тензорні ядра. Зокрема, Nvidia вже показувала новий метод як би згладжування — DLSS (Deep Learning Super Sampling). «Як би» — тому, що це не зовсім звичне згладжування, а технологія, що використовує штучний інтелект для поліпшення якості відтворення аналогічно згладжування.

Для успішної роботи DLSS нейромережа «тренують» в офлайні на тисячах зображень, отриманих із застосуванням суперсэмплинга з великою кількістю вибірок (саме тому технологію назвали Super Sampling, хоча це не суперсэмплинг). Потім вже в реальному часі на тензорних ядрах відеокарти виконуються обчислення (инференс), які «домальовують» зображення на основі раніше навченої нейромережі.

Тобто, нейромережа на прикладі тисяч добре згладжених зображень вчать «додумувати» пікселі, роблячи з грубої картинки згладжену, і вона успішно робить це потім вже для будь-якого зображення з гри. І такий метод працює значно швидше будь-якого традиційного методу з аналогічним якістю. В результаті гравець отримує чіткі зображення вдвічі швидше, ніж GPU попереднього покоління з використанням традиційних методів згладжування типу TAA. Та ще і з кращою якістю, якщо придивитися до наведених вище прикладів.

На жаль, у DLSS є один важливий недолік: для впровадження цієї технології потрібна підтримка з боку розробників, так як для роботи алгоритму потрібні дані з буфера векторами руху. Але таких проектів вже досить багато — 25 штук на сьогоднішній день, включаючи такі відомі ігри, як Final Fantasy XV, Hitman 2, PlayerUnknown’s Battlegrounds, Shadow of the Tomb Raider, Hellblade: Senua’s Sacrifice та інші:

Але DLSS — ще далеко не все, для чого можна застосовувати нейромережі. Все залежить від розробника, він може використовувати міць тензорних ядер для «розумного» ігрового ШІ, для поліпшеної анімації (такі методи вже є), та багато чого ще можна придумати. Навіть, здавалося б, абсолютно дикого — приміром, можна в реальному часі покращувати текстури і матеріали в старих іграх! Ну а чому б і ні? Натренувати нейромережа на основі парних зображень старих і поліпшених текстур, і нехай вона далі сама працює. Або взагалі «перенесення стилю» — як вам психологічний трилер у візуальному стилі Сальвадора Дали? І це я ще не говорю про банальне збільшення дозволу (upscale), з яким ШІ вже справляється ідеально.

Головне, що можливості застосування нейромереж фактично безмежні, ми поки навіть не здогадуємося про те, що ще можна зробити з їх допомогою. Раніше продуктивності було надто мало для того, щоб застосовувати нейромережі масово і активно, а тепер, з появою тензорних ядер у простих ігрових відеокартах (нехай поки що тільки дорогих — ми ще повернемося до цього питання) і можливістю їх використання за допомогою спеціального API і фреймворку Nvidia NGX (Neural Graphics Framework), це стає лише справою часу.

ОК, нові фічі гарні, а що зі старими іграми?

Одним з найважливіших питань, що хвилюють гравців по всьому світу, став питання продуктивності у вже існуючих проектах. Так, нові фічі дадуть швидкість і якість, але чому Nvidia на презентації в Кельні нічого не сказала про швидкості в нинішніх іграх у порівнянні з лінійкою Pascal? Напевно там не все так добре, ось тому й приховують! Дійсно, відсутність яких-небудь даних про швидкості рендеринга вже вийшли в іграх з боку компанії було явною помилкою, яку вони потім поспішили виправити, випустивши слайди про приріст швидкості до 50% у відомих іграх у порівнянні з аналогічними моделями з лінійки GeForce GTX.

Громадськість начебто трохи заспокоїлася, але залишився нерозкритим головне питання: як цього вдалося досягти? Адже кількість CUDA-ядер та інших звичних блоків (TMU, ROP і т. д.) не надто зросла порівняно з Pascal, так і тактова частота зросла не дуже сильно. Дійсно, чисто по цих характеристиках приросту в 50% взятися нізвідки. Але виявляється, що Nvidia зовсім не сиділа, склавши руки, і внесла деякі зміни і у вже відомі нам блоки.

Наприклад, в архітектурі Тьюринга стало можливим одночасне виконання цілочисельних (INT32) команд разом з операціями з плаваючою комою (FP32). Деякі пишуть, що в CUDA-ядер «з’явилися» блоки INT32, але це не зовсім вірно: вони там є вже давно, просто раніше одночасне виконання цілочисельних і FP-інструкцій було неможливо.

Тепер же в ядра були внесені зміни аналогічно Volta, які дозволяють виконувати INT32 – і FP32-операції паралельно і незалежно. За даними Nvidia, типові ігрові шейдери, крім операцій з плаваючою комою, в середньому використовують при виконанні та близько 36% додаткових цілочисельних операцій (адресація, спеціальні функції і т. п.), так що вже одне це нововведення здатне серйозно підвищити продуктивність у всіх іграх, а не тільки з трасуванням променів і DLSS.

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

Це не єдине поліпшення основних обчислювальних ядер. У нових SM також серйозно змінили архітектуру кешування, об’єднавши кеш першого рівня і текстурний кеш (у Pascal вони були окремими). В результаті вдвічі зросла пропускна здатність L1 кешу, знизилися затримки доступу до нього разом з збільшенням ємності кеша, а кожен кластер TPC в чіпах архітектури Тьюринга тепер має вдвічі більше кеш-пам’яті другого рівня. Обидва цих значних архітектурних зміни призвели до приблизно 50% поліпшення продуктивності шейдерних процесорів в іграх (таких як Sniper Elite 4, Deus Ex, Rise of the Tomb Raider та інших).

Крім цього, також були покращені технології стиснення інформації без втрат, що заощаджують відеопам’ять і її пропускну здатність. Архітектура Тьюринга включає нові техніки стиснення, за даними Nvidia до 50% більш ефективні в порівнянні з алгоритмами в сімействі чіпів Pascal. Разом з застосуванням нового типу пам’яті GDDR6 це дає пристойний приріст ефективної ПСП, так що нові рішення точно не будуть обмежені можливостями пам’яті.

Додамо трохи інформації та про ті зміни, які можуть позначитися як у старих, так і в нових іграх. Наприклад, за деякими фічами (feature level) з Direct3D 12 чіпи Pascal відставали від рішень AMD і навіть інтегрованим GPU Intel! Зокрема, це стосується таких можливостей, як Constant Buffer Views, Unordered Access Views та Resource Heap (якщо ви не знаєте, що це таке — просто повірте, що ці можливості трохи полегшують роботу програмістам, спрощуючи доступ до різних ресурсів). Так ось, за можливостями Direct3D feature level нові GPU вже не відстають від конкурентів.

Крім цього, було покращено ще одне, не так давно колишнє хворим місце чіпів Nvidia — асинхронне виконання шейдерів, високу ефективність якого можуть похвалитися рішення AMD. Воно вже непогано працювало і в останніх чіпах Pascal, але в Тьюринга цей самий async shading був поліпшений додатково, за словами Джони Албена, головного по розробці графічних чіпів в компанії. На жаль, ніяких подробиць він не видав, хоч розповів також і про те, що нові CUDA-ядер здатні виконувати операції з плаваючою комою зниженою точності (FP16) з подвійним темпом, в додаток до озвученої раніше здібності Тьюринга виконувати такі операції та на тензорних ядрах (ура, ще одне застосування «марним» тензорам!).

І дуже коротко розповімо про те, які ще зміни в Тьюринга націлені на майбутнє. Nvidia пропонує метод, що дозволяє значно знизити залежність від потужності CPU і одночасно з цим у багато разів збільшити кількість об’єктів в сцені. Біч CPU overhead давно вже переслідує ПК-ігри, і хоча частково він вирішувалося в DirectX 11 (меншою мірою) і DirectX 12 (більшою), радикально нічого особливо не покращився — кожен об’єкт вимагає декількох викликів функцій відтворення (draw calls), кожен з яких вимагає обробки на CPU, що не дає GPU показати всі свої можливості.

Головний конкурент Nvidia ще при анонсі сімейства Vega запропонував можливе рішення проблем — primitive shaders, але справа не пішла далі заяв. У Тьюринга пропонується аналогічне рішення під назвою Mesh Shading — це як би нова шейдерна модель, яка відповідальна відразу за всю роботу над геометрією, вершинами, теселяцією і т. д. При Mesh Shading стають непотрібними вершинні шейдери і тесселяція, весь звичний верховий конвеєр замінюється аналогом обчислювальних шейдерів для геометрії, якими можна робити все, що заманеться: трансформувати вершини, додавати або прибирати, використовуючи вершинні буфери як завгодно, або створювати геометрію прямо на GPU.

На жаль, такий радикальний метод вимагає підтримки від API — ймовірно, саме тому у конкурента далі заяв справа не пішла. Припускаємо, що у Microsoft вже працюють над додаванням цієї можливості, раз вона тепер підтримується двома основними виробниками GPU (Intel, ау!), і в якийсь з майбутніх версій Directх вона з’явиться. Поки що її начебто можна використовувати за допомогою спеціалізованого NVAPI, який в т. ч. і створений для впровадження нових GPU, ще не підтримуваних графічних API. Але так як це не універсальний метод, широкої підтримки Mesh Shading до оновлення популярних графічних API можна не чекати, на жаль.

Ще одна цікава можливість Тьюрінга — Variable Rate Shading (VRS), шейдинг з перемінним кількістю семплів. Коротко, ця можливість дає розробнику контроль над тим, скільки вибірок використовувати в разі кожного з тайлів буфера розміром 4×4 пікселя. Тобто для кожного тайла зображення з 16 пікселів можна вибрати свою якість на етапі зафарбування пікселей. Важливо, що це не стосується геометрії, так як буфер глибини залишається в повному дозволі.

Навіщо все це потрібно? У кадрі завжди є ділянки, на яких легко можна знизити кількість семплів зафарбування практично без втрат якості — наприклад, це частини зображення, згодом замилені постэффектами типу Motion Blur або Depth of Field. І розробник може задавати достатня, на його думку, якість шейдинга для різних ділянок кадру, що може збільшити продуктивність. Зараз для подібних завдань іноді застосовують так званий checkerboard rendering, але він не універсальний і погіршує якість зафарбування для всього кадру, а з VRS можна робити все це максимально тонко.

Можна спрощувати шейдинг тайлів в кілька разів, мало не з однією вибіркою для блоку в 4×4 пікселя (така можливість не показано на картинці, але вона є, наскільки нам відомо), а буфер глибини залишається в повному дозволі, і навіть при такій низькій якості шейдинга кордону полігонів будуть зберігатися в повному якості, а не один на 16. Наприклад, на зображенні вище найбільш змащені ділянки дороги рендеряться з економією ресурсів вчетверо, інші — вдвічі, і лише найважливіші відмальовує з максимальною якістю забарвлення.

А крім оптимізації продуктивності, ця технологія дає і деякі неочевидні можливості, начебто майже безкоштовного згладжування для геометрії. Для цього потрібно відображати кадр в буфер вчетверо більшого дозволу (роблячи як би суперсэмплинг 2×2), але включити shading rate на 2×2 по всій сцені, що прибирає вартість вчетверо більшою роботи з закраске, але залишає згладжування геометрії в повному дозволі. Таким чином вийде, що шейдери виконуються лише один раз на піксель, але згладжування буде з якістю 4х MSAA практично безкоштовно, так як основна робота GPU полягає саме в шейдинге. І це лише один з варіантів використання VRS, програмісти напевно придумають та інші.

Але $1000! Наживається чи Nvidia на гравцях або рухає індустрію?

Нарешті ми підійшли, мабуть, до самого спірного моменту для GeForce RTX. Так, нові можливості Тьюринга і GeForce RTX зокрема виглядають досить вражаюче, це неможливо не визнати. У нових GPU були поліпшені традиційні блоки, а також з’явилися абсолютно нові, з новими ж можливостями. Здавалося б — біжи скоріше в магазин робити попереднє замовлення! Але ні, дуже багатьох потенційних покупців сильно збентежили ціни нових рішень Nvidia, які виявилися вище передбачуваних.

І це так, ціни дійсно зовсім немаленькі, особливо для нашої країни. Але не варто забувати і про особливості нашого національного… ціноутворення, звинувачуючи Nvidia. Все ж у нас люблять порівнювати ціни без податків у США (а вони в штатах можуть досягати 10%-15%) і російські ціни з додатково закладеним ПДВ, логістичними витратами і чималими ризиками, пов’язаними з нестабільністю національної валюти, що теж закладається в ціну. Все перераховане сильно зблизить американську ціну без податків з нашої роздрібної. Тим більше не потрібно порівнювати ціни референсних зразків і заявлені ціни на карти партнерів — почекаємо практики. Бути може, різниця між цінами у нас і «там» на ділі буде не такий великий. Ну а якщо вона буде великою навіть з урахуванням специфіки ринку, то з радістю приєднаємося до вашої лайки.

А хто взагалі зараз може собі дозволити віддати 96 тисяч за топову GeForce RTX 2080 Ti або навіть 64 і 48 тисяч за менш потужні варіанти? Адже це лише відеокарта з вартістю в цілий ПК! Але почекайте, навколишнє нас об’єктивна реальність така, що представлений днями топовий смартфон дуже популярної марки (без особливих поліпшень в порівнянні з попереднім поколінням, до речі) і то дорожче. Чому тоді відеокарта не може стільки коштувати?

Новинки Nvidia… ні, не «любі», а «дорожче попередніх рішень». Різниця є, і потрібно розуміти, що це не висока ціна — вона просто вище цін на попередні покоління GPU. Чому є в тому числі і цілком об’єктивні причини:

  • Висока собівартість розробки — проектування настільки просунутих графічних архітектур протягом декількох років потрібно якось відбивати. А Nvidia витратила на неї довгі роки роботи і мільярди зовсім не рублів.
  • Дорожнеча у виробництві великих GPU при необхідності забезпечення прибутковості. Чіпи в кінцевому рахунку вийшли вельми непрості і великі по площі (згадуємо цифри з першої глави), що також обмежує можливості зниження цін на готову продукцію компанії. Тим більше, що технологічний процес TSMC використовується досить новий, хоч і споріднений вже освоєному 16 нм.
  • Фактична відсутність конкуренції у верхньому ціновому сегменті — у компанії AMD не передбачається нічого схожого по продуктивності і можливостям найближчим часом (схоже, що довгі місяці), а очікуваного ходу Intel доведеться чекати ще мінімум пару років, та й то не факт, що все у них вийде вчасно і добре.
  • Відповідно, при капіталізмі в Nvidia мають право призначати будь-які ціни, і конкретно з їх точки зору цілком логічно, що ціни виявилися вищими, ніж на попередні рішення. Це ж не ринок, тут немає місця благодійності. І все ж, у кінцевому підсумку все вирішить покупець (баланс попиту і пропозиції — пам’ятаєте?). Купувати нові відеокарти чи ні — це ваша особиста справа, саме цим ви і можете впливати на ринок.

    Кому ми сміливо можемо рекомендувати купувати новинки серії GeForce RTX:

  • Любителям всього самого кращого — ну, тут все зрозуміло, у нової лінійки конкурентів зараз просто немає (і продуктивності, можливостей), і не схоже, що вони взагалі з’являться в 2018 році, а значить, і ніякого вибору у хворих на самому топовому немає. Треба брати!
  • Ентузіастам 3D-графіки — такі важливі технології, як апаратна підтримка трасування променів, що з’являються на ринку раз у десятиліття, і пропускати її впровадження в маси для справжніх ентузіастів не зовсім розумно. Ви ж пам’ятаєте, як запускали демо-програми з привабливими русалками і огидними хамелеонами, першими піксельними шейдерами і іншими ефектами, яких в іграх довелося чекати ще роками? Ось і тут так само: ви будете на передньому краю прогресу, бачити всі першим і власноруч брати участь в розвитку 3D-графіки реального часу. Ну да, і платити за це — а як інакше?..
  • Просто бажаючим підтримати індустрію (і Nvidia зокрема, як одного з головних локомотивів) фінансово і морально — чому б і ні; якщо різні блогери і стримери отримують ваші донати, то чим високотехнологічна компанія гірше? Тим більше, що саме геймери і дозволили всієї індустрії вдосконалюватися так швидко, дійшовши до універсальних процесорів, виконують значно більш широкий круг обчислень, ніж тільки графічні. Так, така мотивація спірна і рідкісна, але тим не менш.
  • Комусь, можливо, варто почекати (наступного/наступного покоління/потужних конкурентів/другого пришестя):

  • Коли грошей немає. Зовсім ні. Тут без варіантів — залишається чекати, коли технології подешевшають і стануть більш доступними широким масам. Грайте на GeForce GTX 1060, вона до цих пір дуже хороша!
  • Прихильникам стратегії «не хочу підтримувати комерційні компанії грошима або вважаю, що індустрія йде по неправильному курсом». Право на це ви маєте, звичайно, але знайте: більшість ігрових розробників вважає, що апаратна трасування променів — безсумнівне благо і єдино правильний шлях розвитку 3D-графіки в перспективі. Їх обмежує тільки поширення відповідного апаратного забезпечення, а значить, і ваша (не)бажання сприяти розвитку.
  • Перманентним власникам відеокарт Radeon HD 5850 (умовно! справжні власники цієї моделі — не ображайтеся!), днями і ночами сидить на форумах і розповідають про те, що «нові технології не потрібні», буде краще купити б/у модель попереднього покоління будь-якого з виробників за смаком. Це теж цілком собі тактика частини покупців, яка має право на життя. Але див. вище — індустрії ви не допомагаєте. Відповідно, не плачте про те, що графіка в іграх все не стає краще і не стає.
  • Природно, Nvidia прекрасно розуміють, що їм нікуди не дітися від критики у зв’язку з «непотрібними» тензорними і RT-ядрами і нібито завищеною ціною на нові рішення: «Краще зробіть швидко і в десять разів більше текстур по-старому і не лізьте в нові дорогі технології!» Критикують нові технології подібним чином на користь більш простих і дешевих чимось схожі на тих, хто виступає проти освоєння космосу до тих пір, поки є хоч один голодувальник на нашій планеті (без жартів — це вкрай важливо, але не скасовує досліджень більш високого рівня).

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

    Хтось напевно захотів би появи таких же складних і великих GPU взагалі без тензорних і RT-ядер, так як вони їм не потрібні». Це справа виробника, і якщо на ринку буде попит на подібні рішення, то, може бути, якась інша компанія випустить їх. А може бути, і ні, це вже вони самі вирішать. Можливо, вони теж запровадять апаратне прискорення «нікому не потрібних» речей, хто знає.

    А може, Nvidia просто наживається на бідних гравців? Зараз приготуйтеся, будуть шокуючі новини: будь-яка комерційна компанія робить це! Взагалі будь-яка, просто їх апетити можуть дещо відрізнятися, а мета завжди одна. Але у покупця завжди є вибір: платити гроші чи ні. Ми не закликаємо сліпо робити ні те, ні інше. Якщо ви ентузіаст, вас влаштовує продуктивність нової лінійки і ви хочете допомогти в просуванні трасування променів та штучного інтелекту в ігри — купуйте. Вважаєте, що ціна завищена або трасування вам не потрібна (чи взагалі) — не купуйте. Ринок сам все відрегулює рано чи пізно.

    Епічність финалочка

    Не читайте спойлер, якщо не хочете відчути себе обманутим!

    Після всіх обговорень про можливості та ціни GeForce RTX давайте повернемося до того вражаючому скріншоту з нової демки Nvidia з трасуванням променів, який я навів у статті. Подивіться ще раз, як точно прораховуються всі промені, що виходять від сонця, пройшли через вікна, що відбиваються від поверхонь і заломлюються у напівпрозорих різнокольорових пляшках.

    Всі тіні на зображенні мають ідеально м’які краю і накладаються один на одного строго за законами оптики. І повірте мені, якщо наблизитися до них, то все залишається вельми реалістичним, а трохи зайвого шуму лише додає фотореалізму…

    А тепер — шок! Я вас нахабно обдурив, це фотографія реального інтер’єру готелю Radisson Blu в Кельні. Але якщо ви мені повірили, то це означає лише одне: сучасна графіка реального часу уже і так настільки хороша, що статичні картинки з фотореалізмом вона цілком собі долає, та тільки ще краще зробить це з застосуванням трасування променів або хоча б гібридного рендеринга.

    Підводячи остаточний підсумок, потрібно визнати, що Nvidia йде на пристойний ризик для себе, випускаючи ігрові рішення з підтримкою відразу двох абсолютно нових (для користувацького ринку) типів спеціалізованих обчислювальних ядер. Але вони роблять це просто тому, що саме вони і можуть! Спеціалізоване апаратне забезпечення для трасування променів з’являлося і в минулому, але не було успішним з-за великої різниці в растеризації і трасуванні. Попередні рішення добре роблять або трасування, або растеризацію, і тільки рішення Тьюринга здатні на те і на інше з досить високою ефективністю. Саме можливість якісного гібридного рендеринга і робить лінійку GeForce RTX настільки цікавою, відрізняючи її від попередніх спроб просування трасування променів.

    З нинішнім, практично домінуючим становищем на ринку високопродуктивних GPU компанія вирішила певною мірою зробити крок у невідомість. Основне питання полягає в тому, чи зможуть вони отримати достатню підтримку від індустрії — з реальним використанням нових фіч і нових типів спеціалізованих ядер. На даний момент Nvidia вже оголосила про підтримку нових технологій в декількох десятках проектів (трасування і DLSS), але їм необхідно не знижувати темп і напругу в просуванні всіх цих можливостей. Ймовірно, вже в наступному році на ігрових конференціях і виставках типу E3 і GDC ми побачимо значно більшу кількість ігор з застосуванням трасування променів і можливостей нейромереж, але до тих пір Nvidia потрібно продати певну кількість (критичну масу) GeForce RTX, щоб отримати підтримку від розробників, виражену в їх щирому бажанні самостійно впроваджувати нові фічі.

    Ми ж припускаємо, що вихід GeForce RTX (та й Quadro RTX) серйозно вплине на всю індустрію в середньостроковій і довгостроковій перспективі як мінімум і посприяє просуванню апаратно прискореної на GPU трасування променів в якості стандарту для рендеринга зображень як в реальному часі, так і в офлайні. Саме тому вся лінійка GeForce RTX крута в абсолюті — навіть незалежно від роздрібних цін і продуктивності в старих іграх (так і бути, я відкрию вам маленький секрет: вона і там досить непогана).

    P. S. Автор заздалегідь готовий до звинувачень у продажності і т. п., так як за довгі роки роботи давно звик до цього. Ви можете вірити чи ні, але весь текст був написаний просто від особи одного з ентузіастів 3D-графіки, який знає про переваги трасування променів в офлайні вже не один десяток років, якого банально вражають поява трасування реального часу та інші глобальні зміни в індустрії, пов’язані з появою GeForce RTX.