RTX-OFF / RTX-ON или включаем возможность использования трассировки лучей на старых видеокартах
Оглавление
Вступление
В данной статье будут рассмотрены вопросы и технические нюансы возможности использования видеокарт, не поддерживающих трассировку лучей на аппаратном уровне, с играми, графика которых построена на новой технологии.
Но перед тем как углубиться в технические детали, следует вспомнить, что же такое: свет, луч, преломление света и собственно технология компании Nvidia, которая реализует эти физические процессы в трехмерной графике посредством своего нового GPU серии TU102 и других, принадлежащих к архитектуре «Turing».
Если кто-то не в курсе, то новая графическая архитектура «Turing» названа в честь английского математика, логика и криптографа Алана Тьюринга. Она совершила революцию в трехмерной графике и помимо всем привычных потоковых мультипроцессоров добавила в структуру GPU новые RT-ядра.
В самом мощном ускорителе новой линейки — GeForce RTX 2080 Ti — насчитывается 68 RT ядер, а в самом младшем, GeForce RTX 2060, всего 30. На первый взгляд их количество не столь велико, но далее мы выясним, что за ними скрываются большие возможности.
Уроки физики
Вначале обратимся к школьной программе. С седьмого класса на уроках физики начинают изучать оптические явления и понятие электромагнитного излучения, воспринимаемое человеческим глазом (или попросту — свет). Раздел физики, в котором содержится свет, называется «Оптика».
А в одиннадцатом классе изучается закон преломления света, распространение лучей в различных средах, коэффициенты преломления сред, оптические искажения и прочее.
Думаю, все помнят опыты, когда высчитываются углы преломления в призме. Нет? Если честно я и сам подзабыл этот раздел, чего не скажешь об инженерах Nvidia, которые со времен GeForce256 изучают этот раздел науки и с каждым поколением графических ускорителей обещают нам кинематографическую графику.
Итак, луч — это исходящий от источника излучения поток фотонов, обладающий определенной энергией и нулевой массой. Понятие «Свет» сводится к электромагнитному излучению, воспринимаемому человеческим глазом.
Но в графических процессорах с поддержкой RTX эти явления представляются совсем иначе или более упрощенно, поскольку никакого излучения там нет по определению. Луч моделируется в виде вектора, а вектор, напомню из курса геометрии восьмого класса — это направленный отрезок.
У луча есть три основных характеристики, определяющие его свойства. Первое — точка начала луча, второе — точка преломления луча, третье — точка соприкосновения луча с видимой поверхностью.
Получается, чтобы GPU просчитал алгоритм построения графического 3D образа, необходимо выполнить расчеты с тремя инструкциями, данные которых будут содержать точные координаты в трехмерном пространстве. Этим и занимаются все RT-ядра с эффективной производительностью — три операции с лучом за один такт.
Другие GPU также могут выполнять различные физико-математические расчеты, но для этого им потребуется уже как минимум три операции, из-за чего скорость отрисовки трехмерной сцены будет низкой. В лучшем случае мы увидим слайд-шоу, поэтому производитель GPU не выпускает драйверы для ранее вышедших игровых видеокарт.
На самом деле трассировка лучей на старых видеокартах возможна уже сейчас (!), начиная с принадлежащей к архитектуре «Tesla» линейки GPU G80. Ее первым представителем была GeForce 8800 GTX, вышедшая на рынок в далеком 2006-м году.
Сначала GeForce 8800 GTX, а вслед за ним и самый мощный графический ускоритель, построенный на базе GPU G80 — GeForce 8800 Ultra (к слову, последняя «Ультра») — стали поддерживать технологию NVIDIA CUDA (англ. Compute Unified Device Architecture) или программирования общего назначения первого поколения.
Обе видеокарты Tesla оперировали 128-ю скалярными (а не как ранее векторными) блоками ALU с плавающей точкой, способными выполнять любые программируемые операции.
Впечатляющая производительность данного блока достигалась за счет работы ALU на удвоенной частоте GPU (для GeForce 8800 GTX это 1.35 ГГц).
По сути, новая серия графических ускорителей представляла собой небольшой микропроцессор со 128-ю ядрами, каждое из которых в свою очередь оснащалось своим кэшем и исполняло любые поставленные задачи. Главное — определиться, что и CUDA вычислять и отправлять.
Подготовка
А теперь переходим к тому, как это может быть реализовано на практике. Выше уже отмечалось, что трассировка лучей включает три стадии или координаты, изменяемые во времени.
Вначале просчитывается отправная точка луча, затем идет расчет угла отражения и в конце операции следует расчет координаты отрисовки пикселя на экране монитора пользователя.
Первые две стадии нашему глазу не видны, видеокарта отрисовывает результат лишь третьей стадии, иначе бы для полной картины отрисовки всего механизма не хватило бы и пары GeForce RTX 2080 Ti, трудящихся над поставленной задачей в реальном времени.
Формула RTX в реал-тайм режиме проста: Три стадии + три точки координат = три видеокарты. Все верно, для того чтобы не наблюдать слайд-шоу, необходимо, как минимум три GeForce 8800 GTX, а лучше Ultra!
За один временной такт каждая видеокарта будет делать свой участок работы. Первая возьмет вычисление отправной точки луча, вторая рассчитает его преломление, третья подсчитает итоговые координаты.
Как видите, далеко не каждая система, даже чисто физически, сможет это реализовать на практике. Во-первых, нужна соответствующая материнская плата, явно не бюджетного или среднего сегментов, и такие же видеокарты, поддерживающие технологию 3-Way SLI.
Но поддержка таких мультиграфических конфигураций как раз и появилась с восьмой серией 3D ускорителей GeForce GTX.
Существует одна непроверенная легенда, что драйверы с поддержкой трассировки лучей могли быть выпущены давно, но проблема заключалась в операционной системе Windows. Компания Microsoft еще не была готова внедрить в существующий API данную технологию, и лишь с выпуском Microsoft Windows 10 Creators Update такая возможность наконец-то появилась, но мало кто о ней знает.
Если посетить сайт NVIDIA и зайти в раздел «Drivers», можно увидеть, что для видеокарт восьмого поколения доступен сертифицированный Microsoft WHQL драйвер версии 342.01, размером 292.47 Мбайт для операционной системы Windows 10 64-bit edition. Но нам потребуется следующая бета-версия драйвера за номером 342.02 Beta, объемом 468.72 Мбайт. Я не случайно указываю размер файла, так как лишние 176.25 Мбайт строк кода как раз и привносят RTX составляющую.
Данную версию драйверов найти непросто, ее постоянно удаляют по требованию создателя, но она порой встречается на китайских форумах, поэтому ищите ее, переводя название файла на упрощенный китайский, и обязательно смотрите на итоговый объем файла, поскольку можно скачать что угодно, включая набор троянов. Я же по этическим соображениям активные ссылки на закачку давать тут не буду.
Есть и еще один нюанс, но он не связан ни с видеокартами Nvidia, ни с ядрами CUDA. От центрального процессора, который будет заниматься обработкой данных, получаемых от драйвера видеокарт, зависит общая итоговая производительность всей системы при использовании трассировки лучей по вышеописанной схеме.
Использование процессора, поддерживающего AVX инструкции хотя бы первого поколения, будет неоспоримым плюсом. Именно векторные инструкции в режиме реального времени помогут лучам трассироваться в таком же режиме на поверхность с дополнительной прибавкой производительности, доходящей порой до дополнительных трех процентов к общему результату.
Если же ваш процессор поддерживает AVX инструкции второй версии, то прибавка может достигать уже пяти процентов. А при использовании AVX-512 и вовсе приблизится к дополнительным 10% производительности в 3D.
Реализация
В качестве тестовой системы в моем случае будет выступать следующая конфигурация:
- Процессор: Intel Core 2 Extreme QX6700 2667 @ 3400 МГц (Kentsfield);
- Материнская плата: ASUS Striker Extreme, чипсет NVIDIA nForce 680i SLI;
- Оперативная память: DDR2 8 Гбайт Kingston HyperX (PC9600) 1200 МГц, 2.4 В, CL=4;
- Видеокарты: 3 х GeForce 8800 Ultra, 768 Мбайт (341.02 Beta);
- Блок питания: Zalman ZM1000-EBT, 1000 Ватт.
За предоставленную материнскую плату ASUS Striker Extreme выражаю благодарность mentoza, наконец-то и она пригодилась :) А с ее обзором можно ознакомиться по ссылке. В качестве операционной системы использовалась Microsoft Windows 10 Creators Update, 64-bit edition с последними обновлениями на март 2019 года.
Набор тестов:
- Battlefield V, RTX — On, карта «Роттердам». Разрешение — 1920×1080, предустановка графики — высоко, RTX — средний уровень.
- Metro Exodus, RTX — On, карта «Весна». Разрешение — 1920×1080, предустановка графики — ультра, RTX — высокий уровень.
Результаты тестов
На данный момент список игр, поддерживающих технологию построения изображения посредством трассировки лучей (RTX), не слишком большой, хотя с момента анонса 20-й серии NVIDIA прошло уже полгода. За основу были взяты Battlefield V и Metro Exodus, как идеальный вариант для демонстрации возможностей эксперимента. В остальных играх будет наблюдаться аналогичная тенденция.
Для сравнения я добавил результаты тестов настоящих конкурентов в виде GeForce RTX 2080 Ti, GeForce RTX 2070 и GeForce RTX 2060. Что из всего этого получилось, можно увидеть на графике ниже.
1080p, High, RTX — On
Средний результат, FPS
Включите JavaScript, чтобы видеть графики
Вот это поворот событий! Три видеокарты GeForce 8800 Ultra в режиме RTX выдают в Battlefield V фреймрейт на уровне или даже чуть выше, чем у самой младшей модели из семейства RTX — GeForce RTX 2060!
Понятное дело, что в разрешении 4К будет полный провал, несмотря на работу трех GPU, из-за банальной нехватки доступной видеопамяти, но ведь никто не мешает взять пару GeForce следующих поколений.
1080p, High, RTX — On
Средний результат, FPS
Включите JavaScript, чтобы видеть графики
В более «свежей» игре Metro Exodus троица GeForce 8800 Ultra всего на два кадра в секунду уступила новой GeForce RTX 2060, но это также очень достойный результат!
Данная технология использования старых видеокарт, несмотря на свои плюсы, все же затратная со стороны используемых ресурсов, поэтому если у вас есть четыре одинаковых видеокарты, поддерживающие технологию Quad-SLI, можете смело установить их все вместе.
Не забываем, что GPU в некоторых играх рассчитывает еще и физику. Ранее, до появления видеокарт поколения «Tesla» (G80), этими расчетами занимался дискретный ускоритель Ageia Physics, права на который вместе с самой компанией выкупила Nvidia (и позже добавила блок физических расчетов во все последующие GPU).
В самом идеальном варианте построения псевдо-RTX системы будет установлено семь видеокарт. Трудозатраты шести уйдут на трассировку лучей, а седьмая будет заниматься их координацией, прочими физическими расчетами, а также выводом картинки на экран.
Но тут возникает финансовый вопрос, стоит ли игра свеч? Ответ — да, если у вас есть майнинговая ферма для продажи и там установлено несколько видеокарт. Тогда, при наличии на руках семи GeForce GTX 980 Ti, от которых сейчас избавляются разоряющиеся владельцы крипто-ферм, можно получить систему, превосходящую пару GeForce RTX 2080 Ti по производительности на 30–40%.
Дочитав до этого момента, вы убедились, что обладая устаревшими видеокартами и необходимой материнской платой, а также потратив время на поиски нужного драйвера, еще рано списывать со счетов былых флагманов, и нет никакой надобности бежать в магазин за видеокартами серии RTX. Все довольно комфортно может выглядеть и на GPU с поддержкой CUDA.
Тьма
Все мы говорим о трассировке лучей. Лучи, свет…, но мало кто догадывается об обратной стороне этого вопроса или «Луне», где света никогда и не было, а есть лишь «Тьма». Я подразумеваю темную, неосвещенную сторону Луны, и это сравнение приводится для наглядного примера.
Темнота, тьма. Говоря о тьме, я предполагаю лишь один из возможных вариантов развития событий в игровой индустрии. Предположим, в скором времени AMD добавит трассировку лучей в свои видеокарты, затем начнется гонка вооружений между производителями за количество RT-ядер и в конечном итоге может получиться так, что будущие GPU всех игроков рынка будут состоять сплошь и рядом из одних RT ядер, лишившись прочих исполнительных блоков.
С одной стороны, это хорошо, яркие солнечные пейзажи в разрешении 8К и выше будут с легкостью отрисовываться на ура. Даже планеты, похожие на мир из кинофильма «Аватар», где не одно солнце освещало поверхность планеты, а несколько, не создадут особой нагрузки на миллионы RT ядер.
С другой стороны, мы можем лишиться игр класса «Horror» или тех ужастиков, где действия происходят под покровом ночи. Почему? Нет источника света — нет трассировки лучей, нечему преломляться и нечему отражаться.
И в скором времени вы забудете, что значит ходить с лишь одним фонариком, который является одним источником света, и убивать монстров, как например в старом добром Doom III.
Вы лишитесь и ночных гонок, таких как в Need for Speed: Underground, лишитесь и права войти в закрытую комнату, где спрятан очередной секрет (но в ней нет источника света, поскольку NextGen RTX GPU, основанный только на RT ядрах, будет не в силах отрисовать тьму.
Все игры будут похожи на прогулки Супер Марио в яркий солнечный день с наложенными десятью HDR фильтрами. Вот и скажите, готовы ли вы обменять Свет на Тьму?
Но это лишь один из возможных вариантов развития событий. И чтобы не случилось страшного, поделитесь ссылкой на данную статью со всеми своими друзьями и знакомыми… И, возможно, когда наступит день Х, кто-то из них вспомнит, что все могло бы быть иначе…, и когда-то об этом рассказывалось на Overclockers.ru.
Будущее RTX технологий
Надеюсь, краски не сильно сгущены? Может быть, кто-то сразу решил избавиться от своей видеокарты RTX? Не волнуйтесь, я с радостью готов ее принять, все же иногда даже трех GeForce 8800 Ultra бывает недостаточно.
Но в конце мне бы хотелось остановиться на позитивной ноте и кратко рассказать о будущем RTX технологий. В реальной жизни существует много физических явлений, и пока ни один настоящий RTX не в силах кинематографично передать реальную картинку на экран монитора, сколько бы нам этого не обещали.
К примеру, в природе в неоднородно нагретом воздухе лучи света распространяются не прямолинейно, а плавно искривляясь. Вследствие этого возникают миражи, когда посреди жгучей пустыни путешественнику впереди мерещится озеро, которое отражает голубое небо.
Или, думаю, все видели летом мираж, когда в жаркий летний день водителю или пассажиру автомобиля кажется, что он видит лужи на сухом раскаленном асфальте. Это явление происходит из-за разности температур слоев окружающего воздуха и особенностей преломления лучей.
Увы, пока технология миражей (условно назовем ее MTX) недоступна, но в ближайшем будущем и она будет реализована силами NextGEN GPU 300-й серии (осень 2019). Это относится и к северному сиянию, радуге и прочим природным явлениям.
Но после выхода новой серии видеокарт я вернусь к вопросу изучения их характеристик и возможности отрисовки миражей и других физических явлений на видеокартах, не поддерживающих новую технологию трассировки лучей сквозь неоднородные среды.
Заключение
В сети достаточно давно гуляют шутки, связанные с технологией Ray tracing. И не сосчитать, сколько было выпущено карикатур, демотиваторов и мемов о «RTX-ON, RTX-OFF».
Но после прочтения нашей статьи вы, конечно же, сделаете правильные выводы и примете эту технологию такой, как есть. А что будет в будущем — посмотрим, да и какой будет 3D графика — тоже вскорости узнаем.
Полный текст статьи читайте на overclockers.ru