up
ru ua
menu


chieftec_ban_160.gif

logo minifile

::>Видеокарты > 2014 > 09 > ...

Версия для печати
Переопубликовать обзор

19-09-2014


rss

Знакомство с микроархитектурой NVIDIA Maxwell и новыми технологиями для обработки графики

Несмотря на то, что доля рынка десктопных решений понемногу уменьшается, уступая свои позиции мобильным платформам и консолям, у ПК до сих пор остается огромная армия поклонников. Соответственно, производителям комплектующих есть смысл дальше развивать это направление и вкладывать свои ресурсы в разработку новых устройств. Конечно, здесь еще большую роль сыграла и игровая индустрия. Ведь в 95% случаях мы покупаем компьютер именно ради «игрушек».

NVIDIA Maxwell

NVIDIA Maxwell

Хотя в этом нет ничего удивительного. Популяризация онлайн-проектов сделала свое дело и втянула пользователей в глобальную индустрию, где проводятся турниры, транслируются геймерские баталии, публикуются отчеты о боях и, конечно же, зарабатываются деньги. По данным компании NVIDIA, ежемесячная аудитория игрового видеосервиса Twitch насчитывает уже 55 миллионов, а мировой чемпионат по игре League of Legends смотрело больше человек, чем состязания по баскетболу и бейсболу. Финалы же геймерских турниров и вовсе собирают целые стадионы.

Такие показатели говорят сами за себя: интерес со стороны пользователей только растет. Однако растут и требования самих игр. Разработчики с каждым годом стараются сделать как можно реалистичней графику, а для ее обработки нужно все больше компьютерных ресурсов, в первую очередь видеокарты. Наверное, именно поэтому отрасль графических ускорителей развивается едва ли не самыми быстрыми темпами в IT-индустрии.

NVIDIA Maxwell

Еще свежи в памяти результаты моделей NVIDIA GeForce GTX 680 и NVIDIA GeForce GTX 780, а компания уже подготовила новую пару высокопроизводительных решений - NVIDIA GeForce GTX 980 и NVIDIA GeForce GTX 970, в основе которых лежит передовая микроархитектура NVIDIA Maxwell.

Особенности микроархитектуры

Основные различия между видеокартами на основе NVIDIA Maxwell и NVIDIA Kepler

NVIDIA Maxwell

Структурная схема чипа NVIDIA GM204 (NVIDIA Maxwell)

NVIDIA Maxwell

Структурная схема чипа NVIDIA GK104 (NVIDIA Kepler)

Как видно из представленных выше схем, при переходе с микроархитектуры NVIDIA Kepler на NVIDIA Maxwell общая организация видеоядра не претерпела изменений. В его основе по-прежнему лежит модульный принцип, где составными блоками выступают графические процессорные кластеры (Graphics Processing Cluster, сокращенно GPC), потоковые мультипроцессоры (Streaming Multiprocessor, сокращенно SM) и контроллеры памяти. Такая структура позволяет проще масштабировать конфигурацию ядра, тем самым создавать более или менее мощную видеокарту. Все преимущества такого подхода хорошо прослеживаются на примере модели NVIDIA GeForce GTX 780 Ti, которая была получена из NVIDIA GeForce GTX 780 путем увеличения количества тех самых блоков в графическом процессоре. Поэтому есть все основания полагать, что подобная картина будет наблюдаться и при формировании модельного ряда 9-ой серии видеокарт NVIDIA GeForce GTX.

В максимальной конфигурации GPU NVIDIA GM204 включает в себя 4 графических процессорных кластера (GPC) и 16 потоковых мультипроцессоров Maxwell (SMM), то есть по 4 SMM на один GPC. Также каждый кластер оснащен отдельным растровым движком (Raster Engine), который является финальным блоком растеризации. Каждый же потоковый мультипроцессор (SMM) в свою очередь имеет 128 ядер CUDA (CUDA cores), выделенный полиморфный движок (PolyMorph Engine, сокращенно PE) и 8 текстурных блоков (Texture Unit, сокращенно TU).

То есть в общей сложности флагманский чип NVIDIA GM204 включает в себя 2048 ядер CUDA и 128 текстурных блоков (TU). Именно его мы увидим в основе самой производительной видеокарты нового семейства − NVIDIA GeForce GTX 980. Напомним, что у NVIDIA GeForce GTX 680 при схожей организации чипа NVIDIA GK104 (также 4 графических процессорных кластера) было на 512 ядер CUDA меньше. Количество же текстурных блоков не изменилось. Как говориться, прогресс на лицо.

Модернизации подверглись и контроллеры памяти. Теперь за каждым из них закреплено по 16 модулей растеризации (Raster Operations Pipeline, сокращенно ROP) и по 512 КБ кэш-памяти L2. В сумме мы получаем 64 ROP и 2 МБ кэша второго уровня. У NVIDIA GK104 эти показатели были куда скромнее - 32 ROP и 512 КБ. Даже оптимизированная версия NVIDIA GK104 (чип NVIDIA GK110-300-A1, который лежал в основе модели NVIDIA GeForce GTX 780) не могла похвастать такими показателями.

NVIDIA Maxwell

Единственное, что по сравнению с NVIDIA GK104 не изменилось, − это число самих контроллеров памяти: их как и прежде 4 штуки. Учитывая разрядность каждого из них (64 бита), в общей сложности мы имеем шину в 256 бит. Конкуренты из AMD в топовых видеокартах уже давно перешли на 512-битный стандарт. При больших объемах видеопамяти (в NVIDIA GeForce GTX 980 планируется использовать 4 ГБ) шина может стать узким местом в производительности графического адаптера. Однако в компании NVIDIA нашли простой способ решения сложившейся проблемы: установка более быстрых чипов памяти. В результате это позитивным образом отразилось на пропускной способности всей подсистемы.

Такая реорганизация чипа повлияла и на его сложность. Так, количество транзисторов возросло с 3,54 до 5,2 млрд., а площадь кристалла - с 294 до 398 мм2. При всем этом уровень TDP не только не увеличился, а даже понизился на 30 Вт (со 195 до 165 Вт). Вот он, NVIDIA Maxwell во всей красе: большая производительность при меньшем тепловыделении, причем без смены техпроцесса.

А ведь это не только снижение нагрузки на блок питания и систему охлаждения, но и отличный задел для построения более мощных решений, например, какой-нибудь NVIDIA GeForce GTX 980 Ti с увеличенным количеством процессорных кластеров. При этих словах вспоминается модель AMD Radeon R9 295X2 с ее безумным уровнем TDP в 500 Вт. Да и одночиповая AMD Radeon R9 290X выглядит на фоне NVIDIA GeForce GTX 980 не иначе, как «печкой».

NVIDIA Maxwell

В целом же флагман новой серии демонстрирует феноменальные результаты при пересчете FPS на ватт. В большинстве случаев по показателю «производительность/энергоэффективность» он имеет двукратное преимущество над NVIDIA GeForce GTX 680. При этом нужно понимать, что подобная ситуация будет наблюдаться не только у топовой модели, но и у всех решений, основанных на графическом процессоре NVIDIA Maxwell. Одно подтверждение мы уже видели на практике - видеокарты на базе NVIDIA GeForce GTX 750 и NVIDIA GeForce GTX 750 Ti. В референсном варианте для них даже не требуется подсоединение дополнительного кабеля питания.

Как же инженерам компании NVIDIA удалось добиться таких результатов? Ответ кроется в структуре потокового мультипроцессора (SMM).

SMM вместо SMX: не просто смена названия

NVIDIA Maxwell

Структурная схема мультипроцессора (SMM) в GPU NVIDIA GM204 (NVIDIA Maxwell)

NVIDIA Maxwell

Структурная схема мультипроцессора (SMX) в GPU NVIDIA GK104 (NVIDIA Kepler)

Производитель основательно изменил компоновку SMM (в микроархитектуре NVIDIA Kepler данный блок назывался SMX), в частности управляющей логики. Здесь по-прежнему используются 4 планировщика (Warp Scheduler), но теперь они не являются общими для всех ядер CUDA, а работают только с определенной группой, состоящей из 32 штук. Причем каждая из групп получила отдельный буфер для хранения стека инструкций. Такое разделение значительно улучшило балансировку нагрузки по сравнению с прошлым вариантом. Также ряд мер был принят для оптимизации механизма выборки инструкций, вследствие чего уменьшились затраты энергии при планировании задач. При этом сохранилась возможность выполнения двух операций за такт (например, одновременная операция с ядром CUDA и блоком для загрузки/хранения данных).

По сравнению с микроархитектурой NVIDIA Kepler, в NVIDIA Maxwell изменилась и иерархия внутренней памяти. Раздельная компоновка (48 КБ для кластера и 16 КБ для кэша L1) сменилась одной общей структурой объемом 96 КБ.

В результате разница в производительности при пересчете на ядро CUDA между потоковыми процессорами SMX и SMM может достигать 40% в пользу микроархитектуры NVIDIA Maxwell.

Новый полиморфный движок версии 3.0

NVIDIA Maxwell

Одним из основных нововведений в API DirectX 11 стало внедрение механизма тесселяции − технологии улучшения детализации объекта путем увеличения числа примитивов в полигоне. Разработчикам игр представилась возможность создавать хорошо прорисованные модели без больших затрат системных ресурсов. Естественно, от производителей графических чипов также требовалась поддержка, но уже на аппаратном уровне. Очевидно, что чем лучше работает блок тесселяции, тем больше FPS на экране сможет получить пользователь во время прорисовки сцены.

Этот блок входит в состав так называемого полиморфного движка (PolyMorph Engine), неотъемлемого структурного элемента потокового мультипроцессора еще со времен микроархитектуры NVIDIA Fermi. В GPU NVIDIA Maxwell используется его третья ревизия (3.0).

NVIDIA Maxwell

В результате всех усовершенствований, а также удвоения количества блоков тесселяции в графическом процессоре NVIDIA GM204 по сравнению с NVIDIA GK104, возросла и общая производительность видеокарты NVIDIA GeForce GTX 980 в задачах, связанных с детализацией сцены. На графике мы можем наблюдать двукратный отрыв от NVIDIA GeForce GTX 680, временами доходящий даже до троекратного. Конечно, на практике разница в быстродействии будет не столь значительной, поскольку данная технология используется далеко не во всех случаях рендеринга моделей, но несколько лишних FPS вам гарантированы. Причем, чем больше разрешение вы будете устанавливать на экране, тем ощутимее механизм аппаратной тесселяции объектов будет влиять на производительность видеокарты в игре.

Увеличение количества модулей растеризации

Графический процессор NVIDIA GK104 оборудован 32 модулями растеризации (ROP), тогда как в NVIDIA GM204 их число удвоено. Таким образом, за один такт может обрабатываться в два раза больше цветных образцов. Опять же, это позитивным образом отразится на быстродействии видеокарты при запуске игр в высоком разрешении и при использовании прогрессивных методов сглаживания (Anti-Aliasing).

Улучшения в подсистеме видеопамяти

Как мы уже писали выше, чип NVIDIA GM204 получил 2 МБ кэш-памяти L2 и 4 ГБ внешней видеопамяти типа GDDR5. Наращивание объемов позволит значительно снизить количество обращений к этим блокам, а также за один раз загружать большие массивы данных. Особенно это актуально во время процесса текстурирования сцен в высоком разрешении, поскольку гораздо реже задействуются ресурсы системы со сравнительно низкой производительностью, такие как оперативная память и накопитель.

В NVIDIA GeForce GTX 980 подсистема видеопамяти набрана из чипов с эффективной частотой работы 7000 МГц, тогда как у NVIDIA GeForce GTX 680 этот показатель равнялся 6000 МГц. В результате при одинаковой ширине шины памяти (256 бит) флагман 9-ой серии NVIDIA GeForce GTX имеет на 17% большую пропускную способность (224 ГБ/с против 192 ГБ/с), что даст определенный прирост быстродействия в играх, которые запускаются в формате WQHD (2560 х 1440) или 4K Ultra HD (3840 x 2160).

Однако дополнительные 17% (224 ГБ/с в абсолютном эквиваленте) не позволяют говорить, что инженерам компании NVIDIA удалось полностью избавиться от «бутылочного горлышка». Скажем так, они его просто расширили.

NVIDIA Maxwell

Поэтому дополнительные усилия были направлены и на улучшение эффективности механизма компрессии данных перед их пересылкой в память. Он чем-то напоминает алгоритм сжатия растровых изображений: группа пикселей одинакового цвета помечается как один пиксель того же цвета. В микроархитектуре NVIDIA Maxwell, как и NVIDIA Kepler, используются только два трафарета (тайлы): 4 х 2 пикселя и 2 х 2 пикселя. В результате при пересылке несложных текстур можно добиться коэффициента сжатия 8:1 или 4:1 соответственно.

Однако такой механизм будет малоэффективным при работе с более качественными текстурами, где близлежащие пиксели зачастую имеют не одинаковый оттенок, а его градации. В этом случае используется метод компрессии на основе разницы цвета (delta color compression). Его суть заключается в следующем: в каждом блоке высчитывается разница (дельта) между выбранным пикселем и его соседом, а потом GPU старается запаковать это значение с использованием минимального количества памяти. Например: пиксель «А» красного цвета имеет значение «253», которое кодируется 8 битами. Пиксель «B» - тоже красного цвета, но уже чуть другого оттенка со значением «250», что также выражается в виде 8-битного ключа. Однако разница между «253» и «250» равняется «3», а для кодирования этого результата можно будет обойтись и 2 битами.

Очевидно, что при таком подходе очень важно, какой пиксель выбирается изначально для вычисления разницы цвета. В микроархитектуре NVIDIA Maxwell используется новая версия алгоритма delta color compression 3.0, где подвергся модернизации сам метод выборки: для анализа поступают несколько значений дельт разных пикселей и среди них выбирается самое оптимальное.

NVIDIA Maxwell

В результате всех улучшений объем данных, пересылаемых через видеопамять во время прорисовки одного кадра, сократился примерно на 25%. Тест проводился в ряде современных игр, и во всех случаях графический адаптер на основе микроархитектуры NVIDIA Maxwell демонстрировал лучшую эффективность использования шины памяти, чем ее аналог на основе NVIDIA Kepler.

Поддержка новых форматов вывода изображения

Внедрение высоких разрешений в игровые проекты привело к росту популярности устройств, способных отобразить картинку высокой четкости, в частности в формате 4K Ultra HD. В компании NVIDIA пошли еще дальше, и уже предлагают поддержку разрешения 5K Ultra HD (5120 x 2880). Соответствующие видеодвижки появятся в топовых решениях, основанных на микроархитектуре NVIDIA Maxwell. Правда, справятся ли сами графические адаптеры с прорисовкой таких сложных сцен и сколько при этом мы увидим FPS на экране? Оставим пока что этот вопрос в стороне.

Из других важных нововведений отметим поддержку интерфейса HDMI 2.0. Покупатели видеокарт NVIDIA GeForce GTX 980 и NVIDIA GeForce GTX 970 первыми в мире смогут оценить его преимущества. По сравнению со стандартом HDMI 1.4, где вывод картинки в разрешении 4K Ultra HD осуществлялся в режиме 30 Гц, в HDMI 2.0 такое качество станет доступным и с частотой дискретизации 60 Гц.

NVIDIA Maxwell

Флагманская модель новой серии получит следующий набор интерфейсов:

  • 1 х DVI-I Dual-Link;
  • 1 x HDMI 2.0;
  • 3 x DisplayPort 1.2.

Как и в случае с NVIDIA GeForce GTX 680, в NVIDIA GeForce GTX 980 предусмотрен вывод изображения одновременно на 4 независимых устройства. Однако в режиме MST (Multi Stream Transport) возможно подключение сразу 7 мониторов, тогда как у NVIDIA GeForce GTX 680 это количество ограничивалось 6-ю.

Во всех GPU серии NVIDIA GM2xx производитель добавил поддержку кодека H.265. По сравнению с кодеком H.264, теперь процесс компресии видео будет требовать меньше ресурсов, в том числе и полосы пропускания, при том же качестве картинки. Это может быть актуально для тех, кто часто ведет интернет-трансляции или стримит через облачные сервисы. Напомним, что весь процесс кодирования осуществляется аппаратным способом на стороне GPU.

Никуда не делась и поддержка H.264. Более того, эффективность кодирования с использованием этого стандарта в микроархитектуре NVIDIA Maxwell возросла в 2,5 раза по сравнению с NVIDIA Kepler.

Новые алгоритмы постобработки графики и демонстрация использования некоторых визуальных эффектов на практике

Как можно убедиться из первой части материала, микроархитектура NVIDIA Maxwell принесла с собой много усовершенствований на структурном уровне, что должно позитивным образом повлиять на производительность видеокарт, основанных на новом чипе. Однако быстрая прорисовка кадра - это только полдела. Не менее важной задачей является постобработка графики, чтобы на экране пользователь видел картинку, максимально приближенную к реальности.

Для этих целей производитель добавил новые алгоритмы и усовершенствовал некоторые из старых. Давайте посмотрим, как все это выглядит на практике.

Voxel Global Illumination

Многие пользователи ошибочно полагают, что чем больше полигонов включают в себя объекты и чем фотореалистичнее используются текстуры, тем качественнее будет выглядеть изображение на экране. Однако при неправильной обработке света и наложения теней сцена получается неестественно двухмерной и «неживой». Именно игра света и тени придает глубину и реалистичность картинке, позволяет погрузиться в происходящее на экране. Поэтому качественная постобработка этих эффектов является довольно важной задачей, но в то же время одной из самых ресурсозатратных.

В компании NVIDIA решили перейти к аппаратной поддержке нового и самого реалистичного принципа, известного под названием «Global Illumination». В вольном переводе это звучит как «глобальное освещение». Суть его заключается в том, что освещение объекта формируется не только на основе прямых лучей от источников света, но также учитываются и отраженные лучи от граней других моделей, присутствующих в сцене. Именно такой процесс мы можем наблюдать и в природе.

NVIDIA Maxwell

Технология Global Illumination не используется

NVIDIA Maxwell

Технология Global Illumination используется

Приведенные выше скриншоты отчетливо демонстрируют разницу между традиционным методом освещения и с использованием принципа Global Illumination. В последнем случае мы можем наблюдать более мягкие тени, а также расплывчатые отражения на поверхностях. Конечно, подобного эффекта можно добиться и обычным способом, однако для этого придется затрачивать значительно больше ресурсов или даже проводить предварительные расчеты освещения. И даже в таком случае эффект получится статичным. В динамике же, когда положение объекта постоянно меняется, требуемого результата уже просто не добиться. Или же придется ставить целые «фермы» из видеокарт, как это делается для рендеринга спецэффектов для голливудских блокбастеров.

Таким образом, получается, что для создания максимально приближенного к реальности освещения принципу Global Illumination нет равных (по крайней мере, пока). Остается только «подружить» его с аппаратной частью, потому что сам по себе он также довольно ресурсозатратный. Давай вкратце рассмотрим основные шаги алгоритма, чтобы лучше понимать на каком этапе используется его аппаратное ускорение, внедренное в микроархитектуре NVIDIA Maxwell. Кстати, в компании NVIDIA процесс постобработки глобального освещения получил название Voxel Global Illumination.

NVIDIA Maxwell

На первой стадии объекты разбиваются на так называемые воксели − объемные элементы пространства. Здесь уместно провести аналогию с двухмерным пространством. В 2D составной его частью являются пиксели, в 3D же они представлены вокселями. Вся модель разбивается на мелкие «кубики», иными словами проводится ее «вокселизация» (Voxelization).

NVIDIA Maxwell

NVIDIA Maxwell

В результате расчет освещения осуществляется уже не для целого объекта, а для набора трехмерных примитивов. Причем калькулирование производится для конусообразной группы лучей, которые проходят через воксельную сетку. Таким образом можно отказаться от сотен тысяч вычислений отраженных прямых лучей. А меняя лишь тип «зеркальности» поверхности, легко добиться разных эффектов освещения.

NVIDIA Maxwell

Последним этапом является сбор результатов и финальный рендеринг. На обеих картинках хорошо заметны мягкие, размытые тени освещенных объектов. Именно такой эффект мы можем наблюдать и в реальной жизни.

NVIDIA Maxwell

NVIDIA Maxwell

Аппаратное ускорение алгоритма в основном происходит на этапе разбивки объектов на воксели. В этом случае достигается 6-кратное увеличение быстродействия. В целом же скорость рендеринга сцены с применением аппаратной поддержки GPU увеличивается больше чем в 3 раза по сравнению с программным способом.

К слову, передовой игровой движок Unreal Engine 4.0 уже использует метод расчета глобального освещения. А вскоре подобный принцип мы сможем увидеть и во всех AAA-играх (крупнобюджетных проектах) с реалистичной графикой.


Социальные комментарии Cackle
Поиск по сайту
Почтовая рассылка
top10

vote

Голосование