Видеоускоритель Nvidia GeForce GTX 1080

Новый лидер игровой 3D-графики на ПК


Содержание


Представляем базовый детальный материал с исследованием Nvidia GeForce GTX 1080.

Объект исследования: Ускоритель трехмерной графики (видеокарта) Nvidia GeForce GTX 1080 8192 МБ 256-битной GDDR5X PCI-E

Сведения о разработчике: Компания Nvidia Corporation (торговая марка Nvidia) основана в 1993 году в США. Штаб-квартира в Санта-Кларе (Калифорния). Разрабатывает графические процессоры, технологии. До 1999 года основной маркой была Riva (Riva 128/TNT/TNT2), с 1999 года и по настоящее время — GeForce. В 2000 году были приобретены активы 3dfx Interactive, после чего торговые марки 3dfx/Voodoo перешли к Nvidia. Своего производства нет. Общая численность сотрудников (включая региональные офисы) около 5000 человек.

Часть 1: Теория и архитектура

Несмотря на засилье мультиплатформенных игр, требования к современным графическим процессорам на ПК постоянно растут. Энтузиасты не остановились на Full HD-мониторах, многие из них уже используют дисплеи с высоким 4K- и 5K-разрешением, требующим использования GPU максимальной мощности или даже многочиповых видеосистем для получения приемлемой 3D-производительности. То же самое относится и к растущему сектору виртуальной реальности — VR-шлемы требуют от GPU обеспечения постоянных 90 FPS при рендеринге сразу двух изображений с минимальными задержками, что в разы повышает требуемую мощность графических процессоров для этой задачи.

Недавно компанией Nvidia было анонсировано первое решение на основе архитектуры Pascal в виде вычислительного процессора GP100, но он не предназначен для графических задач. А сегодня, после довольно продолжительного перерыва, компания Nvidia наконец-то выпустила очередную видеокарту GeForce GTX 1080 — первую модель высокого класса, основанную на графическом процессоре новой архитектуры Pascal. Последние несколько лет выпуску новых GPU мешали ограничения существующих технологических процессов, и поэтому все это время на рынок выходили решения, выполненные по хорошо всем знакомому и уже поднадоевшему техпроцессу 28 нм. К сожалению, промежуточный техпроцесс 20 нм вовсе не подошел для производства столь больших чипов, как дискретные GPU, а следующей ступени освоения производства микрочипов пришлось ждать очень долго.

И вот наше ожидание закончено, и новый техпроцесс 16 нм FinFET компании TSMC наконец-то созрел, достигнув той стадии, при которой выпуск сравнительно больших чипов вроде GP104 стал выгоден. Это решение не самого верхнего уровня, Nvidia и в этот раз благоразумно остановилась на варианте графического процессора, аналогичного по сложности и позиционированию чипу GM204 из семейства Maxwell, применяемому в видеокартах GeForce GTX 980 и GeForce GTX 970. Это логично, ведь выпускать на рынок сразу большой топовый GPU вроде GP200 (GeForce GTX 980 Ti) было бы не слишком разумно по причине как повышенной сложности и себестоимости производства таких чипов, так и отсутствия реальной необходимости в этом — главный конкурент Nvidia пока что не угрожает рыночным позициям компании в этом ценовом сегменте, ведь по планам у AMD к выходу готовятся пока что только менее производительные решения уровня GeForce GTX 970.

Первый графический процессор архитектуры Pascal игрового применения отличается от Maxwell в основном применением нового технологического процесса. Техпроцесс 16 нм позволил сделать заметно более сложный чип, имеющий повышенное количество исполнительных блоков и работающий на куда более высокой частоте. Повышенное количество потоковых процессоров и тактовая частота позволила достичь пиковой скорости вычислений выше, чем даже у GeForce GTX 980 Ti и Titan X. И чтобы обеспечить столь мощный GPU необходимым количеством данных с высокой скоростью, в GeForce GTX 1080 была установлена видеопамять нового типа GDDR5X. Есть и другие оптимизации по эффективному использованию памяти, о которых мы расскажем в нашем материале.

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

Как обычно, вместе с новой видеокартой компания Nvidia представила несколько технологий, поддерживаемых архитектурой Pascal. К примеру, новый GPU умеет отрисовывать картинку одновременно в несколько разных проекций, что может пригодиться во множестве применений, включая многомониторные системы и шлемы виртуальной реальности. Из других интересных технологий можно отметить VRWorks Audio, служащую для точного расчета звуковых волн, а также платформу для создания скриншотов Ansel, которая помогает снять потрясающие по качеству скриншоты из игр.

Что касается примерной производительности, то Nvidia говорит о том, что GeForce GTX 1080 быстрее моделей GeForce GTX Titan X и GeForce GTX 980 Ti, а в некоторых случаях и вдвое быстрее — но это скорее теоретическая цифра, достижимая лишь в VR-применениях далекого будущего. В реальности же новая модель по оценке самого производителя быстрее предшественницы GeForce GTX 980 в играх более чем в полтора раза, и тут учтены как архитектурные улучшения, так и влияние нового техпроцесса. Возможно, цифра от производителя несколько завышена, реальный прирост скорости рендеринга мы оценим в следующих разделах нашего материала.

Ну а пока что расскажем о теории во всех подробностях. Так как новая модель видеокарты от компании Nvidia основана на графическом процессоре архитектуры «Pascal», имеющей много общего с предыдущей архитектурой «Maxwell» второго поколения, то перед прочтением данного материала мы советуем ознакомиться с ранними статьями о наиболее заметных видеокартах компании Nvidia:

  • [01.06.15] Nvidia GeForce GTX 980 Ti — самый производительный однопроцессорный ускоритель игрового класса
  • [22.04.15] Nvidia GeForce GTX Titan X — самый мощный однопроцессорный ускоритель
  • [19.09.14] Nvidia GeForce GTX 980 — последователь GeForce GTX 680, обгоняющий даже GTX 780 Ti
  • [12.03.14] Nvidia GeForce GTX 750 Ti — Maxwell начинает с малого... несмотря на Maxwell

Итак, давайте рассмотрим подробные характеристики видеоплаты GeForce GTX 1080, основанной на графическом процессоре GP104.

Графический ускоритель GeForce GTX 1080
ПараметрЗначение
Кодовое имя чипаGP104
Технология производства16 нм FinFET
Количество транзисторов7,2 млрд. (у GM204 — 5,2 млрд.)
Площадь ядра314 мм² (у GM204 — 398 мм²)
АрхитектураУнифицированная, с массивом общих процессоров для потоковой обработки многочисленных видов данных: вершин, пикселей и др.
Аппаратная поддержка DirectXDirectX 12, с поддержкой уровня возможностей Feature Level 12_1
Шина памяти256-битная: восемь независимых 32-битных контроллеров памяти с поддержкой GDDR5 и GDDR5X памяти
Частота графического процессора1607 (1733) МГц
Вычислительные блоки20 потоковых мультипроцессоров, включающих 2560 скалярных ALU для расчетов с плавающей запятой в рамках стандарта IEEE 754-2008;
Блоки текстурирования160 блоков текстурной адресации и фильтрации с поддержкой FP16- и FP32-компонент в текстурах и поддержкой трилинейной и анизотропной фильтрации для всех текстурных форматов
Блоки растровых операций (ROP)8 широких блоков ROP (64 пикселя) с поддержкой различных режимов сглаживания, в том числе программируемых и при FP16- или FP32-формате буфера кадра. Блоки состоят из массива конфигурируемых ALU и отвечают за генерацию и сравнение глубины, мультисэмплинг и блендинг
Поддержка мониторовИнтегрированная поддержка до четырех мониторов, подключенных по интерфейсам Dual Link DVI, HDMI 2.0b и DisplayPort 1.2 (1.3/1.4 Ready)


Спецификации референсной видеокарты GeForce GTX 1080

ПараметрЗначение
Частота ядра1607 (1733) МГц
Количество универсальных процессоров2560
Количество текстурных блоков160
Количество блоков блендинга64
Эффективная частота памяти10000 (4×2500) МГц
Тип памятиGDDR5X
Шина памяти256-бит
Объем памяти8 ГБ
Пропускная способность памяти320 ГБ/с
Вычислительная производительность (FP32)около 9 терафлопс
Теоретическая максимальная скорость закраски103 гигапикселей/с
Теоретическая скорость выборки текстур257 гигатекселей/с
ШинаPCI Express 3.0
РазъемыОдин разъем Dual Link DVI, один HDMI и три DisplayPort
Энергопотреблениедо 180 Вт
Дополнительное питаниеОдин 8-контактный разъем
Число слотов, занимаемых в системном корпусе2
Рекомендуемая цена$599-699 (США), 54990 руб (Россия)

Новая модель видеокарты GeForce GTX 1080 получила логичное для первого решения новой серий GeForce наименование — она отличается от своего прямого предшественника только измененной цифрой поколения. Похоже, что новинка не просто заменит в текущей линейке компании топовые решения, но и на какое-то время станет флагманом новой серии, пока не выпустят решения на GPU еще большей мощности (вряд ли это произойдет раньше осени). Ниже ее в иерархии располагается также уже анонсированная модель GeForce GTX 1070, основанная на урезанной версии чипа GP104, которую мы еще рассмотрим в своих будущих материалах.

Рекомендованные цены на новую топовую видеоплату Nvidia составляют $599 и $699 для обычных версий и специального издания Founders Edition (см. далее), соответственно, и это довольно неплохое предложение с учетом того, что GTX 1080 опережает не только GTX 980 Ti, но и Titan X. На сегодня новинка является лучшим по производительности решением на рынке одночиповых видеокарт без каких-либо вопросов, и при этом она стоит дешевле самых производительных видеокарт предыдущего поколения.

Чуть более ранним выпуском новых моделей компания Nvidia снова наносит превентивный удар по конкуренту, который пока что даже не рассчитывает на скорейший выпуск аналогичных по мощности моделей. По слухам, у компании AMD пока что запланирован выпуск только менее мощных решений в рамках будущего поколения. И так как пока что конкурента у GeForce GTX 1080 по сути нет, в Nvidia смогли установить такую цену, которая их устраивает.

Рассматриваемая сегодня видеокарта основана на чипе GP104, имеющем 256-битную шину памяти, но новый тип памяти GDDR5X работает на весьма высокой эффективной частоте в 10 ГГц, что дает высокую пиковую пропускную способность в 320 ГБ/с — что почти на уровне GTX 980 Ti с 384-битной шиной. Объем установленной на видеокарту памяти с такой шиной мог быть равен 4 или 8 ГБ, но ставить меньший объем для столь мощного решения в современных условиях было бы глупо, поэтому GTX 1080 совершенно логично получила 8 ГБ памяти, и этого объема хватит для запуска любых 3D-приложений с любыми настройками качества на несколько лет вперед.

Печатная плата GeForce GTX 1080 по понятным причинам прилично отличается от предыдущих PCB компании. Значение типичного энергопотребления для новинки составляет 180 Вт — это несколько выше, чем у GTX 980, но заметно ниже, чем у менее производительных Titan X и GTX 980 Ti. Референсная плата имеет привычный набор разъемов для присоединения устройств вывода изображения: один Dual-Link DVI, один HDMI и три DisplayPort.

Референсный дизайн Founders Edition

Еще при анонсе GeForce GTX 1080 в начале мая было объявлено специальное издание видеокарты под названием Founders Edition, имеющее более высокую цену по сравнению с обычными видеокартами партнеров компании. По сути, это издание является референсным дизайном карты и системы охлаждения, и производится оно самой компанией Nvidia. Можно по-разному относиться к таким вариантам видеокарт, но разработанный инженерами компании референсный дизайн и произведенная с применением качественных компонентов конструкция имеет своих поклонников.

А вот будут ли они отдавать на несколько тысяч рублей больше за видеокарту от самой Nvidia — это вопрос, ответ на который может дать только практика. В любом случае, поначалу в продаже появятся именно референсные видеокарты от Nvidia по повышенной цене, и выбирать особенно не из чего — так бывает при каждом анонсе, но референсная GeForce GTX 1080 отличается тем, что в таком виде ее планируется продавать на всем протяжении срока ее жизни, вплоть до выхода решений следующего поколения.

В Nvidia считают, что это издание имеет свои достоинства даже перед лучшими произведениями партнеров. Например, двухслотовый дизайн кулера позволяет с легкостью собирать на основе этой мощной видеокарты как игровые ПК сравнительно небольшого форм-фактора, так и многочиповые видеосистемы (даже несмотря на нерекомендуемый компанией режим работы в трех- и четырехчиповом режиме). GeForce GTX 1080 Founders Edition имеет некоторые преимущества в виде эффективного кулера с использованием испарительной камеры и вентилятора, выбрасывающего нагретый воздух из корпуса — это первое такое решение Nvidia, потребляющее менее 250 Вт энергии.

По сравнению с предыдущими референсными дизайнами продуктов компании, схема питания была модернизирована с четырехфазной до пятифазной. В Nvidia говорят и об улучшенных компонентах, на которых основана новинка, также были снижены электрические помехи, позволяющие улучшить стабильность напряжения и разгонный потенциал. В результате всех улучшений энергоэффективность референсной платы увеличилась на 6% по сравнению с GeForce GTX 980.

А для того, чтобы отличаться от «обычных» моделей GeForce GTX 1080 и внешне, для Founders Edition разработали необычный «рубленый» дизайн корпуса. Который, правда, наверняка привел также и к усложнению формы испарительной камеры и радиатора (см. фото), что возможно и послужило одним из поводов для доплаты в $100 за такое специальное издание. Повторимся, что в начале продаж особого выбора у покупателей не будет, но в дальнейшем можно будет выбрать как решение с собственным дизайном от одного из партнеров компании, так и в исполнении самой Nvidia.

Новое поколение графической архитектуры Pascal

Видеокарта GeForce GTX 1080 стала первым решением компании на основе чипа GP104, относящегося к новому поколению графической архитектуры Nvidia — Pascal. Хотя новая архитектура взяла в основу решения, отработанные еще в Maxwell, в ней есть и важные функциональные отличия, о которых мы напишем далее. Главным же изменением с глобальной точки зрения стал новый технологический процесс, по которому выполнен новый графический процессор.

Применение техпроцесса 16 нм FinFET при производстве графических процессоров GP104 на фабриках тайваньской компании TSMC дало возможность значительно повысить сложность чипа при сохранении сравнительно невысокой площади и себестоимости. Сравните количество транзисторов и площадь чипов GP104 и GM204 — они близки по площади (кристалл новинки даже чуть меньше физически), но чип архитектуры Pascal имеет заметно большее количество транзисторов, а соответственно и исполнительных блоков, в том числе обеспечивающих новую функциональность.

С архитектурной точки зрения, первый игровой Pascal весьма похож на аналогичные решения архитектуры Maxwell, хотя есть и некоторые отличия. Как и Maxwell, процессоры архитектуры Pascal будут иметь разную конфигурацию вычислительных кластеров Graphics Processing Cluster (GPC), потоковых мультипроцессоров Streaming Multiprocessor (SM) и контроллеров памяти. Мультипроцессор SM — это высокопараллельный мультипроцессор, который планирует и запускает варпы (warp, группы из 32 потоков команд) на CUDA-ядрах и других исполнительных блоках в мультипроцессоре. Подробные данные об устройстве всех этих блоков вы можете найти в наших обзорах предыдущих решений компании Nvidia.

Каждый из мультипроцессоров SM спарен с движком PolyMorph Engine, который обрабатывает текстурные выборки, тесселяцию, трансформацию, установку вершинных атрибутов и коррекцию перспективы. В отличие от предыдущих решений компании, PolyMorph Engine в чипе GP104 также содержит новый блок мультипроецирования Simultaneous Multi-Projection, о котором мы еще поговорим ниже. Комбинация мультипроцессора SM с одним движком Polymorph Engine традиционно для Nvidia называется TPC — Texture Processor Cluster.

Всего чип GP104 в составе GeForce GTX 1080 содержит четыре кластера GPC и 20 мультипроцессоров SM, а также восемь контроллеров памяти, объединенных с блоками ROP в количестве 64 штук. Каждый кластер GPC имеет выделенный движок растеризации и включает в себя пять мультипроцессоров SM. Каждый мультипроцессор, в свою очередь, состоит из 128 CUDA-ядер, 256 КБ регистрового файла, 96 КБ разделяемой памяти, 48 КБ кэш-памяти первого уровня и восьми текстурных блоков TMU. То есть, всего в GP104 содержится 2560 CUDA-ядер и 160 блоков TMU.

Также графический процессор, на котором основана видеокарта GeForce GTX 1080, содержит восемь 32-битных (в отличие от 64-битных, применяющихся ранее) контроллеров памяти, что дает нам итоговую 256-битную шину памяти. К каждому из контроллеров памяти привязано по восемь блоков ROP и 256 КБ кэш-памяти второго уровня. То есть, всего чип GP104 содержит 64 блоков ROP и 2048 КБ кэш-памяти второго уровня.

Благодаря архитектурным оптимизациям и новому техпроцессу, первый игровой Pascal стал самым энергоэффективным графическим процессором за все время. Причем, вклад в это есть как со стороны одного из самых совершенных технологических процессов 16 нм FinFET, так и от проведенных оптимизаций архитектуры в Pascal, по сравнению с Maxwell. В Nvidia смогли повысить тактовую частоту даже больше, чем они рассчитывали при переходе на новый техпроцесс. GP104 работает на более высокой частоте, чем работал бы гипотетический GM204, выпущенный при помощи техпроцесса 16 нм. Для этого инженерам Nvidia пришлось тщательно проверить и оптимизировать все узкие места предыдущих решений, не дающие разогнаться выше определенного порога. В результате, новая модель GeForce GTX 1080 работает более чем на 40% повышенной частоте, по сравнению с GeForce GTX 980. Но это еще не все изменения, связанные с частотой работы GPU.

Технология GPU Boost 3.0

Как мы хорошо знаем по предыдущим видеокартам компании Nvidia, в своих графических процессорах они применяют аппаратную технологию GPU Boost, предназначенную для увеличения рабочей тактовой частоты GPU в режимах, когда он еще не достиг пределов по энергопотреблению и тепловыделению. За прошедшие годы этот алгоритм претерпел множество изменений, и в видеочипе архитектуры Pascal применяется уже третье поколение этой технологии — GPU Boost 3.0, основным нововведением которого стала более тонкая установка турбо-частот, в зависимости от напряжения.

Если вы вспомните принцип работы предыдущих версий технологии, то разница между базовой частотой (гарантированное минимальное значение частоты, ниже которого GPU не опускается, как минимум в играх) и турбо-частотой была фиксированной. То есть, турбо-частота всегда была на определенное количество мегагерц выше базовой. В GPU Boost 3.0 появилась возможность установки смещений турбо-частот для каждого напряжения по отдельности. Проще всего это понять по иллюстрации:

Слева указан GPU Boost второй версии, справа — третьей, появившейся в Pascal. Фиксированная разница между базовой и турбо-частотами не давала раскрыть возможности GPU полностью, в некоторых случаях графические процессоры предыдущих поколений могли работать быстрее на установленном напряжении, но фиксированное превышение турбо-частоты не давало сделать этого. В GPU Boost 3.0 такая возможность появилась, и турбо-частота может устанавливаться для каждого из индивидуальных значений напряжения, полностью выжимая все соки из GPU.

Для того, чтобы управлять разгоном и установить кривую турбо-частоты, требуются удобные утилиты. Сама Nvidia этим не занимается, но помогает своим партнерам создать подобные утилиты для облегчений разгона (в разумных пределах, конечно). К примеру, новые функциональные возможности GPU Boost 3.0 уже раскрыты в EVGA Precision XOC, включающей специальные сканер разгона, автоматически находящий и устанавливающий нелинейную разницу между базовой частотой и турбо-частотой для разных значений напряжения при помощи запуска встроенного теста производительности и стабильности. В результате у пользователя получается кривая турбо-частоты, идеально соответствующая возможностям конкретного чипа. Которую, к тому же, можно как угодно модифицировать в ручном режиме.

Как вы видите на скриншоте утилиты, в дополнение к информации о GPU и системе, есть также настройки для разгона: Power Target (определяет типичное энергопотребление при разгоне, в процентах от стандартного), GPU Temp Target (максимально допустимая температура ядра), GPU Clock Offset (превышение над базовой частотой для всех значений напряжения), Memory Offset (превышение частоты видеопамяти над значением по умолчанию), Overvoltage (дополнительная возможность для повышения напряжения).

Утилита Precision XOC включает три режима разгона: основной Basic, линейный Linear и ручной Manual. В основном режиме можно установить единое значение превышения частоты (фиксированную турбо-частоту) над базовой, как это было для предыдущих GPU. Линейный режим позволяет установить линейное изменение частоты от минимального до максимального значений напряжения для GPU. Ну и в ручном режиме можно выставить уникальные значения частоты GPU для каждой точки напряжения на графике.

В составе утилиты есть также специальный сканер для автоматического разгона. Можно или установить собственные уровни частоты или позволить утилите Precision XOC просканировать GPU на всех напряжениях и найти максимально стабильные частоты для каждой точки на кривой напряжения и частоты полностью автоматически. В процессе сканирования Precision XOC постепенно добавляет частоту GPU и проверяет его работу на стабильность или появление артефактов, строя идеальную кривую частот и напряжений, которая будет уникальна для каждого конкретного чипа.

Этот сканер можно настроить под свои собственные требования, задав временной отрезок тестирования каждого значения напряжения, минимум и максимум проверяемой частоты, и ее шаг. Понятно, что для достижения стабильных результатов лучше будет выставить небольшой шаг и приличную продолжительность тестирования. В процессе тестирования может наблюдаться нестабильная работа видеодрайвера и системы, но если сканер не зависнет, то восстановит работу и продолжит нахождение оптимальных частот.

Новый тип видеопамяти GDDR5X и улучшенное сжатие

Итак, мощность графического процессора заметно выросла, а шина памяти осталась всего лишь 256-битной — не будет ли пропускная способность памяти ограничивать общую производительность и что с этим можно делать? Похоже, что перспективная HBM-память второго поколения все еще слишком дорога в производстве, поэтому пришлось искать другие варианты. Еще с момента появления GDDR5-памяти в 2009 году, инженеры компании Nvidia исследовали возможности использования новых типов памяти. В результате, разработки пришли к внедрению нового стандарта памяти GDDR5X — самого сложного и продвинутого на сегодняшний момент стандарта, дающего скорость передачи 10 Gbps.

Nvidia приводит интересный пример того, насколько это быстро. Между переданными битами проходит всего 100 пикосекунд — за такое время луч света пройдет расстояние всего лишь в один дюйм (около 2,5 см). И при использовании GDDR5X-памяти цепи приема-передачи данных должны менее чем за половину этого времени выбрать значение переданного бита, до того, как будет прислан следующий — это просто чтобы вы понимали, до чего дошли современные технологии.

Чтобы добиться такой скорости работы, потребовалась разработка новой архитектуры системы ввода-вывода данных, потребовавшей нескольких лет совместной разработки с производителями чипов памяти. Кроме возросшей скорости передачи данных, выросла и энергоэффективность — чипы памяти стандарта GDDR5X используют пониженное напряжение в 1,35 В и произведены по новым технологиям, что дает то же потребление энергии при на 43% большей частоте.

Инженерам компании пришлось перерабатывать линии передачи данных между ядром GPU и чипами памяти, больше внимания обращать на предотвращение потери и деградацию сигнала на всем пути от памяти к GPU и обратно. Так, на приведенной выше иллюстрации показан захваченный сигнал в виде большого симметричного «глаза», что говорит о хорошей оптимизации всей цепи и относительной легкости захвата данных из сигнала. Причем, описанные выше изменения привели не только к возможности применения GDDR5X на 10 ГГц, но также и должны помочь получить высокую ПСП на будущих продуктах, использующих более привычную GDDR5-память.

Хорошо, более чем 40% прироста в ПСП от применения новой памяти мы получили. Но не маловато ли этого? Для дальнейшего увеличения эффективности использования полосы пропускания памяти в Nvidia продолжили улучшать внедренное еще в предыдущих архитектурах продвинутое сжатие данных. Подсистема памяти в GeForce GTX 1080 использует улучшенные и несколько новых техник по сжатию данных без потерь, предназначенные для снижения требований к ПСП — уже четвертое поколение внутричипового сжатия.

Алгоритмы сжатия данных в памяти приносят сразу несколько положительных моментов. Сжатие снижает количество записываемых данных в память, то же самое касается данных, пересылаемых из видеопамяти в кэш-память второго уровня, что улучшает эффективность использования L2-кэша, так как сжатый тайл (блок из нескольких пикселей фреймбуфера) имеет меньший размер, чем несжатый. Также уменьшается количество данных, пересылаемых между разными точками, вроде текстурного модуля TMU и фреймбуфера.

Конвейер сжатия данных в GPU использует несколько алгоритмов, которые определяются в зависимости от «сжимаемости» данных — для них подбирается лучший из имеющихся алгоритмов. Одним из самых важных является алгоритм дельта-кодирования данных о цвете пикселей (delta color compression). Этот способ сжатия кодирует данные в виде разницы между последовательными значениями вместо самих данных. GPU вычисляет разницу в цветовых значениях между пикселями в блоке (тайле) и сохраняет блок как некий усредненный цвет для всего блока плюс данные о разнице в значениях для каждого пикселя. Для графических данных такой метод обычно хорошо подходит, так как цвет в пределах небольших тайлов для всех пикселей зачастую отличается не слишком сильно.

Графический процессор GP104 в составе GeForce GTX 1080 поддерживает большее количество алгоритмов сжатия по сравнению с предыдущими чипами архитектуры Maxwell. Так, алгоритм сжатия 2:1 стал более эффективным, а в дополнение к нему появились два новых алгоритма: режим сжатия 4:1, подходящий для случаев, когда разница в значении цвета пикселей блока очень невелика, и режим 8:1, сочетающий алгоритм постоянного сжатия с соотношением 4:1 блоков размером 2×2 пикселя с двукратным сжатием дельты между блоками. Когда сжатие совсем невозможно, оно не используется.

Впрочем, в реальности последнее бывает весьма нечасто. В этом можно убедиться по примерам скриншотов из игры Project CARS, которые привела Nvidia чтобы проиллюстрировать повышенную степень сжатия в Pascal. На иллюстрациях пурпурным закрашены те тайлы кадрового буфера, которые смог сжать графический процессор, а не поддающиеся сжатию без потерь остались с оригинальным цветом (сверху — Maxwell, снизу — Pascal).



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

В результате улучшений в сжатии данных, GeForce GTX 1080 способен значительно снизить количество пересылаемых данных в каждом кадре. Если говорить о цифрах, то улучшенное сжатие экономит дополнительно около 20% эффективной полосы пропускания памяти. В дополнение к более чем на 40% повышенной ПСП у GeForce GTX 1080 относительно GTX 980 от использования GDDR5X-памяти, все вместе это дает около 70% прироста в эффективном ПСП, по сравнению с моделью прошлого поколения.

Поддержка асинхронных вычислений Async Compute

Большинство современных игр используют сложные вычисления в дополнение к графическим. К примеру, вычисления при расчете поведения физических тел вполне можно проводить не до или после графических вычислений, а одновременно с ними, так как они не связаны друг с другом и не зависят друг от друга в пределах одного кадра. Также в пример можно привести постобработку уже отрендеренных кадров и обработку аудиоданных, которые тоже можно исполнять параллельно с рендерингом.

Еще одним ярким примером использования функциональности служит техника асинхронного искажения времени (Asynchronous Time Warp), используемая в системах виртуальной реальности для того, чтобы изменить выдаваемый кадр в соответствии с движением головы игрока прямо перед самым его выводом, прерывая рендеринг следующего. Подобная асинхронная загрузка мощностей GPU позволяет повысить эффективность использования его исполнительных блоков.

Подобные нагрузки создают два новых сценария использования GPU. Первый из них включает накладывающиеся загрузки, так как многие типы задач не используют возможности графических процессоров полностью, и часть ресурсов простаивает. В таких случаях можно просто запустить на одном GPU две разные задачи, разделяющие его исполнительные блоки для получения более эффективного использования — например, PhysX-эффекты, выполняющиеся совместно с 3D-рендерингом кадра.

Для улучшения работы этого сценария, в архитектуре Pascal появилась динамическая балансировка загрузки (dynamic load balancing). В предыдущей архитектуре Maxwell перекрывающиеся нагрузки были выполнены в виде статического распределения ресурсов GPU на графические и вычислительные. Такой подход эффективен при условии, что баланс между двумя нагрузками примерно соответствует разделению ресурсов и задачи выполняются одинаково по времени. Если же неграфические вычисления выполняются дольше графических, и обе ожидают завершения общей работы, то часть GPU оставшееся время будет простаивать, что вызовет снижение общей производительности и сведет всю выгоду на нет. Аппаратная динамическая балансировка загрузки же позволяет использовать освободившиеся ресурсы GPU сразу же как они станут доступными — для понимания приведем иллюстрацию.

Существуют и задачи, критичные к времени исполнения, и это — второй сценарий асинхронных вычислений. Например, исполнение алгоритма асинхронного искажения времени в VR должно завершиться до развертки (scan out) или кадр будет отброшен. В таком случае, GPU должен поддерживать очень быстрое прерывание задачи и переключение на другую, чтобы снять менее критическую задачу с исполнения на GPU, освободив его ресурсы для критически важных задач — это называется preemption.

Одна команда рендеринга от игрового движка может содержать сотни вызовов функций отрисовки, каждый вызов draw call, в свою очередь, содержит сотни обрабатываемых треугольников, каждый из которых содержит сотни пикселей, которые нужно рассчитать и отрисовать. В традиционном подходе на GPU используется прерывание задач только на высоком уровне, и графический конвейер вынужден ждать завершения всей этой работы перед переключением задачи, что в результате приводит к очень большим задержкам.

Чтобы исправить это, в архитектуре Pascal впервые была введена возможность прерывания задачи на пиксельном уровне — Pixel Level Preemption. Исполнительные блоки графического процессора Pascal могут постоянно отслеживать прогресс выполнения задач рендеринга, и когда прерывание будет запрошено, они могут остановить исполнение, сохранив контекст для дальнейшего завершения, быстро переключившись на другую задачу.

Прерывание и переключение на уровне потока для вычислительных операций работает аналогично прерыванию на пиксельном уровне для графических вычислений. Вычислительные нагрузки состоят из нескольких сеток, каждая из которых содержит множество потоков. Когда получен запрос на прерывание, выполняемые на мультипроцессоре потоки заканчивают исполнение. Другие блоки сохраняют собственное состояние чтобы продолжить с того же момента в дальнейшем, и GPU переключается на другую задачу. Весь процесс переключения задач занимает менее чем 100 микросекунд после того, как выполняемые потоки завершают работу.

Для игровых нагрузок, сочетание прерываний на пиксельном уровне для графических, и прерывания на уровне потоков для вычислительных задач дает графическим процессорам архитектуры Pascal возможность быстрого переключения между задачами с минимальными потерями времени. А для вычислительных задач на CUDA, также возможно прерывание с минимальной гранулярностью — на уровне инструкций. В таком режиме все потоки останавливают выполнение сразу, немедленно переключаясь на другую задачу. Этот подход требует сохранения большего количества информации о состоянии всех регистров каждого потока, но в некоторых случаях неграфических вычислений он вполне оправдан.

Использование быстрого прерывания и переключения задач в графических и вычислительных задачах было добавлено в архитектуру Pascal для того, чтобы графические и неграфические задачи могли прерываться на уровне отдельных инструкций, а не целых потоков, как было в Maxwell и Kepler. Эти технологии способны улучшить асинхронное исполнение различных нагрузок на графический процессор и улучшить отзывчивость при одновременном выполнении нескольких задач. На мероприятии Nvidia показывали демонстрацию работы асинхронных вычислений на примере вычисления физических эффектов. Если без асинхронных вычислений производительность была на уровне 77-79 FPS, то с включением этих возможностей частота кадров выросла до 93-94 FPS.

Мы уже приводили в пример одну из возможностей применения этой функциональности в играх в виде асинхронного искажения времени в VR. На иллюстрации показана работа этой технологии с традиционным прерыванием (preemption) и с быстрым. В первом случае, процесс асинхронного искажения времени стараются выполнить как можно позднее, но до начала обновления изображения на дисплее. Но работа алгоритма должна быть отдана на исполнение в GPU несколькими миллисекундами ранее, так как без быстрого прерывания нет возможности точно выполнить работу в нужный момент, и GPU простаивает некоторое время.

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

Технология мультипроецирования Simultaneous Multi-Projection

В новом графическом процессоре GP104 появилась поддержка новой технологии мультипроецирования (Simultaneous Multi-Projection — SMP), позволяющей GPU отрисовывать данные на современных системах вывода изображения более эффективно. SMP позволяет видеочипу одновременно выводить данные в несколько проекций, для чего потребовалось ввести новый аппаратный блок в GPU в состав движка PolyMorph в конце геометрического конвейера перед блоком растеризации. Этот блок отвечает за работу с несколькими проекциями для единого потока геометрии.

Движок мультипроецирования обрабатывает геометрические данные одновременно для 16 заранее сконфигурированных проекций, объединяющих точку проекции (камеры), эти проекции можно независимо вращать или наклонять. Так как каждый геометрический примитив может появиться одновременно в нескольких проекциях, движок SMP обеспечивает такую функциональность, позволяя приложению дать инструкции видеочипу для репликации геометрии до 32 раз (16 проекций при двух центрах проецирования) без дополнительной обработки.

Весь процесс обработки аппаратно ускорен, и так как мультипроецирование работает после геометрического движка, ему не нужно повторять несколько раз все стадии обработки геометрии. Сэкономленные ресурсы важны в условиях ограничения скорости рендеринга производительностью обработки геометрии, вроде тесселяции, когда одна и та же геометрическая работа выполняется несколько раз для каждой проекции. Соответственно, в пиковом случае, мультипроецирование может сократить необходимость в обработке геометрии до 32 раз.

Но зачем все это нужно? Есть несколько хороших примеров, где технология мультипроецирования может быть полезной. Например, многомониторная система из трех дисплеев, установленных под углом друг к другу достаточно близко к пользователю (surround-конфигурация). В типичной ситуации сцена отрисовывается в одной проекции, что приводит к геометрическим искажениям и неверной отрисовке геометрии. Правильным путем является три разных проекции для каждого из мониторов, в соответствии с углом, под которым они расположены.

При помощи видеокарты на чипе с архитектурой Pascal это можно сделать за один проход геометрии, указав три разные проекции, каждая для своего монитора. И пользователь, таким образом, сможет менять угол, под которым расположены мониторы друг к другу не только физически, но и виртуально — поворачивая проекции для боковых мониторов, чтобы получить корректную перспективу в 3D-сцене при заметно более широком угле обзора (FOV). Правда, тут есть ограничение — для такой поддержки приложение должно уметь отрисовывать сцену с широким FOV и использовать специальные вызовы SMP API для его установки. То есть, в каждой игре так не сделаешь, нужна специальная поддержка.

В любом случае, времена одной проекции на единственный плоский монитор прошли, теперь много многомониторных конфигураций и изогнутых дисплеев, на которых также можно применять эту технологию. Не говоря уже о системах виртуальной реальности, которые используют специальные линзы между экранами и глазами пользователя, что требует новых техник проецирования 3D-изображения в 2D-картинку. Многие из таких технологий и техник еще в начале разработки, главное, что старые GPU не могут эффективно использовать более чем одну плоскую проекцию. Они требуют при этом несколько проходов рендеринга, многократную обработку одной и той же геометрии и т. д.

В чипах архитектуры Maxwell была ограниченная поддержка Multi-Resolution, помогающая увеличить эффективность, но SMP в Pascal может намного больше. Maxwell мог поворачивать проекцию на 90 градусов для кубических карт (cube mapping) или разных разрешений для проекции, но это было полезно лишь в ограниченном круге приложений, вроде VXGI.

Из других возможностей применения SMP отметим отрисовку с разным разрешением и однопроходный стереорендеринг. К примеру, отрисовка с разным разрешением (Multi-Res Shading) может использоваться в играх для оптимизации производительности. При ее применении, используется более высокое разрешение в центре кадра, а на периферии оно снижается для получения более высокой скорости рендеринга.

Однопроходный стереорендеринг используется в VR, он уже добавлен в пакет VRWorks и использует возможность мультипроецирования для снижения объема геометрической работы, требующегося при VR-рендеринге. В случае использования этой возможности, графический процессор GeForce GTX 1080 обрабатывает геометрию сцены лишь один раз, генерируя сразу две проекции для каждого глаза, что вдвое снижает геометрическую нагрузку на GPU, а также снижает потери от работы драйвера и ОС.

Еще более продвинутым методом повышения эффективности VR-рендеринга является Lens Matched Shading, когда при помощи нескольких проекций имитируются геометрические искажения, требуемые при VR-рендеринге. Этот метод использует мультипроецирование для рендеринга 3D-сцены на поверхность, которая приближенно похожа на скорректированную линзой при отрисовке для вывода на VR-шлем, что позволяет не отрисовывать много лишних пикселей на периферии, которые будут отброшены. Проще всего понять суть метода по иллюстрации — перед каждым глазом используется по четыре слегка развернутых проекции (на Pascal можно использовать и по 16 проекций на каждый глаз — для более точной имитации изогнутой линзы) вместо одной:

Такой подход способен прилично экономить в производительности. Так, типичное изображение для Oculus Rift на каждый глаз составляет 1,1 мегапиксель. Но из-за разницы в проекциях, чтобы его отрендерить, используется исходное изображение в 2,1 мегапикселя — на 86% больше необходимого! Применение мультипроецирования, внедренного в архитектуру Pascal, позволяет снизить разрешение отрисовываемого изображения до 1,4 мегапикселей, получив полуторакратную экономию в скорости пиксельной обработки, а также экономит пропускную способность памяти.

А вместе с двукратной экономией по скорости обработки геометрии из-за однопроходного стереорендеринга, графический процессор видеокарты GeForce GTX 1080 способен обеспечить значительное увеличение производительности VR-рендеринга, весьма требовательного и к скорости обработки геометрии, и тем более — к пиксельной обработке.

Улучшения в блоках вывода и обработки видеоданных

Помимо производительности и новой функциональности, связанной с 3D-рендерингом, необходимо поддерживать на хорошем уровне и возможности вывода изображения, а также декодирования и кодирования видеоданных. И первый графический процессор архитектуры Pascal не разочаровал — он поддерживает все современные стандарты в этом смысле, включая аппаратное декодирование формата HEVC, необходимое для просмотра 4K-видеороликов на ПК. Также будущие обладатели видеокарт GeForce GTX 1080 смогут скоро насладиться проигрыванием потокового 4K-видео с Netflix и других провайдеров на своих системах.

С точки зрения вывода изображения на дисплеи, GeForce GTX 1080 имеет поддержку HDMI 2.0b с HDCP 2.2, а также DisplayPort. Пока что сертифицирована версия DP 1.2, но GPU является готовым к сертификации для более новых версий стандарта: DP 1.3 Ready и DP 1.4 Ready. Последнее позволяет выводить изображение на 4K-экраны при частоте обновления 120 Гц, а на 5K- и 8K-дисплеи — при 60 Гц при использовании пары кабелей DisplayPort 1.3. Если для GTX 980 максимальное поддерживаемое разрешение было 5120×3200 при 60 Гц, то для новой модели GTX 1080 оно выросло до 7680×4320 при тех же 60 Гц. Референсная GeForce GTX 1080 имеет три выхода DisplayPort, один HDMI 2.0b и один цифровой Dual-Link DVI.

Новая модель видеокарты Nvidia получила и улучшенный блок декодирования и кодирования видеоданных. Так, чип GP104 соответствует высоким стандартам PlayReady 3.0 (SL3000) для воспроизведения потокового видео, позволяющим быть уверенным в том, что проигрывание высококачественного контента от известных поставщиков, вроде Netflix, будет максимально качественным и энергоэффективным. Подробности о поддержке различных форматов видео при кодировании и декодировании приведены в таблице, новинка явно отличается от предыдущих решений в лучшую сторону:

Но еще более интересной новинкой можно назвать поддержку так называемых дисплеев повышенного динамического диапазона (High Dynamic Range — HDR), которые вот-вот должны получить широкое распространение на рынке. Телевизоры продаются уже в 2016 году (и всего за год планируется продать четыре миллиона HDR-телевизоров), а мониторы — в следующем. HDR — это самый большой прорыв в дисплейных технологиях за долгие годы, этот формат обеспечивает вдвое больше цветовых оттенков (75% видимого спектра, в отличие от 33% для RGB), более яркие дисплеи (1000 нит) с большей контрастностью (10000:1) и насыщенными цветами.

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

Для поддержки HDR-дисплеев, GeForce GTX 1080 имеет все необходимое — возможность вывода 12-битного цвета, поддержку стандартов BT.2020 и SMPTE 2084, а также вывод изображения в соответствии со стандартом HDMI 2.0b 10/12-бит для HDR в 4K-разрешении, что было и у Maxwell. В дополнение к этому, в Pascal появилась поддержка декодирования HEVC-формата в 4K-разрешении при 60 Гц и 10- или 12-битном цвете, который используется для HDR-видео, а также кодирование этого же формата с такими же параметрами, но только в 10-бит для записи HDR-видео или потоковой передачи. Также новинка готова к стандартизации DisplayPort 1.4 для передачи HDR-данных по этому разъему.

К слову, кодирование HDR-видео может понадобиться в будущем для того, чтобы передавать такие данные с домашнего ПК на игровую консоль SHIELD, которая умеет воспроизводить 10-битный HEVC. То есть, пользователь сможет транслировать игру с ПК в HDR-формате. Стоп, а где взять игры с такой поддержкой? Компания Nvidia постоянно работает с игровыми разработчиками для внедрения такой поддержки, передавая им все необходимое (поддержку в драйвере, примеры кода и т. п.) для корректного рендеринга HDR-изображения, совместимого с существующими дисплеями.

На момент выпуска видеокарты, GeForce GTX 1080, поддержкой HDR-вывода обладают такие игры, как Obduction, The Witness, Lawbreakers, Rise of the Tomb Raider, Paragon, The Talos Principle и Shadow Warrior 2. Но уже в ближайшем будущем ожидается пополнение этого списка.

Изменения в многочиповом рендеринге SLI

Произошли и некоторые изменения, связанные с фирменной технологией многочипового рендеринга SLI, хотя этого никто не ожидал. SLI используется энтузиастами ПК-игр для того, чтобы повысить производительность или до экстремальных значений, установив мощнейшие одночиповые видеокарты в тандем, или для того, чтобы получить очень высокую частоту кадров, ограничившись парой решений среднего уровня, которые иногда обходятся дешевле, чем одно топовое (решение спорное, но так делают). При наличии 4K-мониторов у игроков почти не остается иных вариантов, кроме установки пары видеокарт, так как даже топовые модели зачастую не могут обеспечить комфортную игру при максимальных настройках в таких условиях.

Одним из важных компонентов Nvidia SLI являются мостики, соединяющие видеокарты в общую видеоподсистему и служащие для организации цифрового канала по передачи данных между ними. На видеокартах GeForce традиционно устанавливались двойные разъемы SLI, которые служили для соединения между двумя или четырьмя видеокартами в 3-Way и 4-Way SLI конфигурациях. Каждая из видеокарт должна была соединяться с каждой, так как все GPU отправляли отрендеренные ими кадры в главный графический процессор, поэтому и были необходимы по два интерфейса на каждой из плат.

Начиная с модели GeForce GTX 1080, для всех видеокарт Nvidia, основанных на архитектуре Pascal, два интерфейса SLI связаны вместе для увеличения производительности передачи данных между видеокартами, и такой новый двухканальный режим SLI позволяет повысить производительность и комфорт при выводе визуальной информации на дисплеи очень высокого разрешения или многомониторные системы.

Для такого режима понадобились и новые мостики, получившие название SLI HB. Они объединяют пару видеокарт GeForce GTX 1080 сразу по двум каналам SLI, хотя новые видеокарты также совместимы и со старыми мостиками. Для разрешений 1920×1080 и 2560×1440 пикселей при частоте обновления 60 Гц можно использовать стандартные мостики, но в более требовательных режимах (4K, 5K и мультимониторные системы) лучшие результаты по плавности смены кадров обеспечат только новые мостики, хотя и старые будут работать, но несколько хуже.

Также, при использовании мостиков SLI HB, интерфейс передачи данных GeForce GTX 1080 работает на скорости 650 МГц, по сравнению с 400 МГц у обычных мостиков SLI на старых GPU. Причем, для некоторых из жестких старых мостиков также доступна более высокая частота передачи данных с видеочипами архитектуры Pascal. С ростом скорости передачи данных между GPU по удвоенному интерфейсу SLI с повышенной частотой работы, обеспечивается и более плавный вывод кадров на экран, по сравнению с предыдущими решениями:

Нужно также отметить, что поддержка многочипового рендеринга в DirectX 12 несколько отличается от того, что было привычно ранее. В последней версии графического API, компания Microsoft сделала много изменений, связанных с работой таких видеосистем. Для разработчиков ПО в DX12 доступны два варианта использования нескольких GPU: режимы Multi Display Adapter (MDA) и Linked Display Adapter (LDA).

Причем, режим LDA имеет две формы: Implicit LDA (который Nvidia использует для SLI) и Explicit LDA (когда разработчик игры берет на себя задачи управления многочиповым рендерингом. Режимы MDA и Explicit LDA как раз и были внедрены в DirectX 12 для того, чтобы дать игровым разработчикам больше свободы и возможностей при использовании многочиповых видеосистем. Разница между режимами хорошо видна по следующей таблице:

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

По умолчанию, SLI-система на основе плат GeForce GTX 1080 поддерживает лишь два GPU, а трех- и четырехчиповые конфигурации официально не рекомендуются к использованию, так как в современных играх становится все более сложно обеспечивать прирост производительности от добавления третьего и четвертого графического процессора. К примеру, многие игры упираются в возможности центрального процессора системы при работе многочиповых видеосистем, также в новых играх все чаще используются темпоральные (временные) техники, использующие данные из предыдущих кадров, в которых эффективная работа сразу нескольких GPU просто невозможна.

Впрочем, работа систем в других (не SLI) многочиповых системах остается возможной, как то режимы MDA или LDA Explicit в DirectX 12 или двухчиповая SLI система с выделенным третьим GPU для физических эффектов PhysX. А как же рекорды в бенчмарках, неужели в Nvidia отказываются от них совсем? Нет, конечно, но так как подобные системы востребованы в мире чуть ли не единицами пользователей, то для таких ультраэнтузиастов придумали специальный ключ Enthusiast Key, который можно скачать на сайте Nvidia и разблокировать эту возможность. Для этого нужно сначала получить уникальный идентификатор GPU, запустив специальное приложение, затем запросить Enthusiast Key на веб-сайте и, скачав его, установить ключ в систему, разблокировав 3-Way и 4-Way конфигурации SLI.

Технология синхронизации Fast Sync

Некоторые изменения произошли в технологиях синхронизации при выводе информации на дисплей. Забегая вперед, в G-Sync не появилось ничего нового, как не поддерживается и технология адаптивной синхронизации Adaptive Sync. Зато в Nvidia решили улучшить плавность вывода и синхронизацию для игр, которые показывают очень высокую производительность, когда частота кадров заметно превышает частоту обновления монитора. Это особенно важно для игр, требующих минимальных задержек и быстрого отклика и по которым проходят мультиплеерные сражения и соревнования.

Fast Sync — это новая альтернатива вертикальной синхронизации, которая не имеет визуальных артефактов в виде разрывов картинки на изображении и не привязана к фиксированной частоте обновления, что повышает задержки. В чем проблема вертикальной синхронизации в таких играх, как Counter-Strike: Global Offensive? Эта игра на мощных современных GPU работает с несколькими сотнями кадров в секунду, и у игрока есть выбор: включать вертикальную синхронизацию или нет.

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

Так работает традиционный конвейер. Но в Nvidia решили разделить процесс рендеринга и вывода изображения на экран при помощи технологии Fast Sync. Это позволяет продолжать максимально эффективную работу для той части GPU, которая занимается рендерингом кадров на полной скорости, сохраняя эти кадры в специальном временном буфере Last Rendered Buffer.

Такой метод позволяет изменять способ вывода на экран и брать лучшее от режимов VSync On и VSync Off, получив низкие задержки, но без артефактов изображения. С Fast Sync нет управления потоком кадров, игровой движок работает в режиме отключенной синхронизации и ему не говорят подождать с отрисовкой очередного, поэтому и задержки почти такие же низкие, как у режима VSync Off. Но так как Fast Sync самостоятельно выбирает буфер для вывода на экран и выводит кадр целиком, то нет и разрывов картинки.

При работе Fast Sync используется три разных буфера, первые два из которых работают аналогично двойной буферизации в классическом конвейере. Первичный буфер (Front Buffer — FB) — это буфер, информация из которого выводится на дисплей, полностью отрисованный кадр. Вторичный буфер (Back Buffer — BB) — это буфер, в который поступает информация при рендеринге.

При использовании вертикальной синхронизации в условиях высокой частоты кадров игра ждет достижения момента обновления информации на дисплее (refresh interval), чтобы поменять местами первичный буфер с вторичным для вывода изображения цельного кадра на экран. Это замедляет процесс, а добавление дополнительных буферов как при традиционной тройной буферизации лишь добавит задержку.

С применением Fast Sync добавляется третий буфер Last Rendered Buffer (LRB), который используется для хранения всех кадров, только что отрендеренных во вторичном буфере. Название буфера говорит само за себя, в нем содержится копия последнего полностью отрисованного кадра. И когда настанет момент обновления первичного буфера, этот LRB буфер копируется в первичный целиком, а не по частям, как из вторичного при отключенной вертикальной синхронизации. Так как копирование информации из буферов неэффективно, то они просто меняются местами (или переименовываются, как будет удобнее понять), а новая логика смены буферов местами, появившаяся в GP104, управляет этим процессом.

На практике включение нового метода синхронизации Fast Sync обеспечивает все же чуть большую задержку, по сравнению с вовсе отключенной вертикальной синхронизацией — в среднем на 8 мс больше, зато выводит кадры на монитор целиком, без неприятных артефактов на экране, разрывающих изображение. Новый метод можно включить из графических настроек панели управления Nvidia в секции управления вертикальной синхронизацией. Впрочем, значением по умолчанию остается управление приложением, да и включать Fast Sync во всех 3D-приложениях просто не требуется, лучше выбрать этот метод конкретно для игр с высоким FPS.

Технологии виртуальной реальности Nvidia VRWorks

Мы уже не раз затрагивали горячую тему виртуальной реальности в статье, но речь в основном шла о повышении частоты кадров и обеспечении низких задержек, очень важных для VR. Все это очень важно и прогресс действительно есть, но пока что VR-игры выглядят далеко не столь впечатляюще, как лучшие из «обычных» современных 3D-игр. Так получается не только потому, что VR-приложениями ведущие игровые разработчики пока что не особо занимаются, но и из-за большей требовательности VR к частоте кадров, что не дает использовать многие из привычных техник в таких играх по причине высокой требовательности.

Для того, чтобы уменьшить разницу в качестве между VR-играми и обычными, в Nvidia решили выпустить целый пакет соответствующих технологий VRWorks, в который вошло большое количество API, библиотек, движков и технологий, которые позволяют значительно улучшить как качество, так и производительность VR-приложений. Как это относится к анонсу первого игрового решения на Pascal? Очень просто — в него внедрили некоторые технологии, помогающие увеличить производительность и улучшить качество, и мы о них уже писали.

И хотя дело касается далеко не только графики, сначала немного расскажем именно о ней. В набор технологий VRWorks Graphics входят уже упомянутые ранее технологии, вроде Lens Matched Shading, использующие возможность мультипроецирования, появившуюся именно в GeForce GTX 1080. Новинка позволяет получить прирост производительности в 1,5-2 раза по отношению к решениями, не имеющим такой поддержки. Также мы упоминали и другие технологии, вроде MultiRes Shading, предназначенного для рендеринга с разным разрешением в центре кадра и на его периферии.

Но куда неожиданнее был анонс технологии VRWorks Audio, предназначенной для качественного обсчета звуковых данных в 3D-сценах, особенно важного в системах виртуальной реальности. В обычных движках позиционирование источников звука в виртуальной среде рассчитывается довольно корректно, если враг стреляет справа, то и звук громче раздается с этой стороны аудиосистемы, и такой расчет не слишком требователен к вычислительной мощности.

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

В пакете VRWorks Audio используется просчет звуковых волн аналогично трассировке лучей при рендеринге, когда путь лучей света отслеживается до нескольких отражений от объектов в виртуальной сцене. VRWorks Audio также имитирует распространение звуковых волн в окружающей среде, когда отслеживаются прямые и отраженные волны, в зависимости от угла их падения и свойств отражающих материалов. В своей работе VRWorks Audio использует известный по графическим задачам высокопроизводительный движок Nvidia OptiX, предназначенный для трассировки лучей. OptiX может использоваться для разнообразных задач, таких как расчет непрямого освещения и подготовка карт освещения, а теперь и для трассировки звуковых волн в VRWorks Audio.

Nvidia встроила точный расчет звуковых волн в свою демонстрационную программу VR Funhouse, в ней используется несколько тысяч лучей и просчитывается до 12 отражений от объектов. А для того, чтобы на понятном примере усвоить преимущества технологии, предлагаем вам посмотреть видеоролик о работе технологии на русском языке:

Важно, что подход Nvidia отличается от традиционных звуковых движков, в том числе и аппаратно ускоренного при помощи специального блока в GPU метода от главного конкурента. Все эти методы обеспечивают лишь точное позиционирование источников звука, но не рассчитывают отражения звуковых волн от объектов в 3D-сцене, хотя и могут имитировать это при помощи эффекта реверберации. И все же использование технологии трассировки лучей может быть куда реалистичнее, так как только такой подход обеспечит точную имитацию различных звуков, с учетом размеров, формы и материалов объектов в сцене. Сложно сказать, требуется ли такая точность вычислений для типичного игрока, но можно сказать точно: в VR она может добавить пользователям той самой реалистичности, которой пока что не хватает в обычных играх.

Ну а нам осталось рассказать лишь о технологии VR SLI, работающей и в OpenGL и в DirectX. Ее принцип предельно прост: двухпроцессорная видеосистема в VR-приложении будет работать так, что каждому глазу выделяется отдельный GPU, в отличие от AFR-рендеринга, привычного для SLI-конфигураций. Это значительно повышает общую производительность, столь важную для систем виртуальной реальности. Теоретически можно использовать и большее количество GPU, но их количество должно быть четным.

Такой подход потребовался потому, что AFR плохо подходит для VR, так как с его помощью первый GPU будет отрисовывать четный кадр для обоих глаз, а второй — нечетный, что ничуть не снижает задержки, критически важные для систем виртуальной реальности. Хотя частота кадров при этом будет достаточно высокой. Так что при помощи VR SLI работа над каждым кадром разделяется на два GPU — один работает над частью кадра для левого глаза, второй — для правого, а затем эти половинки кадра объединяются в целый.

Подобное разделение работы между парой графических процессоров приносит почти двукратный рост производительности, позволяющий поднять частоту кадров и снизить задержки по сравнению с системами на основе одной видеокарты. Правда, использование VR SLI требует специальной поддержки со стороны приложения, чтобы использовать этот метод масштабирования. Но технология VR SLI уже встроена в такие демонстрационные VR-приложения как The Lab от Valve и Trials on Tatooine от ILMxLAB, и это только начало — в Nvidia обещают скорое появление других приложений, а также внедрения технологии в игровые движки Unreal Engine 4, Unity и MaxPlay.

Платформа создания игровых скриншотов Ansel

Одним из самых интересных анонсов, связанных с программным обеспечением, стал выпуск технологии захвата качественных скриншотов в игровых приложениях, названной по имени одного известного фотографа — Ansel. Игры уже давно стали не просто играми, но и местом применения шаловливых рук для различных творческих личностей. Кто-то меняет скрипты к играм, кто-то выпускает качественные наборы текстур к играм, а кто-то — делает красивые скриншоты.

Компания Nvidia решила помочь последним, представив новую платформу для создания (именно создания, потому что это не такой уж простой процесс) качественных снимков из игр. Они считают, что Ansel может помочь создать новый вид современного искусства. Ведь уже есть достаточно много художников, которые проводят большую часть жизни за ПК, создавая красивые скриншоты из игр, и у них до сих пор не было удобного инструмента для этого.

Ansel позволяет не просто захватывать изображение в игре, а менять его так, как нужно создателю. При помощи этой технологии можно двигать камеру по сцене, поворачивать и наклонять ее в любом направлении для того, чтобы получить требуемую композицию кадра. К примеру, в таких играх, как шутеры от первого лица, можно только двигать игрока, больше ничего менять особо не получится, поэтому все скриншоты получаются довольно однообразными. Со свободной же камерой в Ansel можно выйти далеко за пределы игровой камеры, выбрав такой ракурс, который нужен для удачной картинки, или вовсе захватить полноценную 360-градусную стереокартину из требуемой точки, да в высоком разрешении для последующего просмотра в VR-шлеме.

Ansel работает довольно просто — при помощи специальной библиотеки от Nvidia эта платформа внедряется в код игры. Для этого ее разработчику требуется всего лишь добавить небольшой кусок кода в свой проект, чтобы позволить видеодрайверу Nvidia перехватывать данные буферов и шейдеров. Работы там совсем немного, внедрение Ansel в игру требует меньше чем одного дня для внедрения. Так, включение этой возможности в игру The Witness заняло около 40 строк кода, а в The Witcher 3 — порядка 150 строк кода.

Ansel появится с открытым пакетом для разработки — SDK. Главное, что пользователь получает вместе с ним стандартный набор настроек, позволяющих ему менять положение и угол камеры, добавлять эффекты и т. п. Платформа Ansel работает так: она ставит игру на паузу, включает свободную камеру и позволяет изменять кадр до требуемого вида, записывая результат в виде обычного скриншота, 360-градусного снимка, стереопары или просто панорамы огромного разрешения.

Единственное замечание: не все игры получат поддержку всех возможностей платформы создания игровых скриншотов Ansel. Некоторые из игровых разработчиков по тем или иным причинам не желают включать полностью свободную камеру в своих играх — например, из-за возможности использования этой функциональности читерами. Или они хотят ограничить изменение угла обзора по все той же причине — чтобы никто не получил несправедливого преимущества. Ну, или чтобы пользователи не увидели убогие спрайты на заднем плане. Все это — вполне нормальные желания создателей игр.

Одной из интереснейших возможностей Ansel является создание скриншотов просто огромного разрешения. Неважно, что игра поддерживает разрешения до 4K, например, а монитор у пользователя и вовсе Full HD. При помощи платформы снятия скриншотов можно захватить куда более качественное изображение, ограниченное скорее объемом и производительностью накопителя. Платформа с легкостью захватывает скриншоты с разрешением до 4,5 гигапикселей, со сшивкой их из 3600 кусочков!

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

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

После сшивки таких панорам для всего кадра используется специальная постобработка, также ускоренная на GPU. А для захвата изображений в повышенном динамическом диапазоне можно использовать специальный формат изображений — EXR, открытый стандарт от Industrial Light and Magic, значения цветности в каждом канале которого записываются в 16-битном формате с плавающей запятой (FP16).

Этот формат позволяет менять яркость и динамический диапазон изображения постобработкой, приводя его к нужному для каждого конкретного дисплея аналогично тому, как это делается с RAW-форматами с фотокамер. Да и для последующего применения фильтров постобработки в программах обработки изображений этот формат весьма полезен, так как содержит куда больше данных, чем привычные форматы для изображений.

Но платформа Ansel и сама содержит множество фильтров для постобработки, что особенно важно потому, что она имеет доступ не только к итоговой картинке, но и ко всем буферам, использующимся игрой при рендеринге, что можно использовать для очень интересных эффектов, вроде глубины резкости. Для этого в Ansel есть специальный API для постобработки, и любой из эффектов можно включить в игру с поддержкой этой платформы.

В число постфильтров Ansel входят такие фильтры как: color curves, color space, transformation, desaturation, brightness/contrast, film grain, bloom, lens flare, anamorphic glare, distortion, heathaze, fisheye, color aberration, tone mapping, lens dirt, lightshafts, vignette, gamma correction, convolution, sharpening, edge detection, blur, sepia, denoise, FXAA и другие.

Что касается появления поддержки Ansel в играх, то тут придется немного подождать, пока разработчики ее внедрят и протестируют. Но Nvidia обещает скорое появление такой поддержки в таких известных играх, как The Division, The Witness, Lawbreakers, The Witcher 3, Paragon, Fortnite, Obduction, No Man's Sky, Unreal Tournament и других.

Выводы по теоретической части

Новый технологический процесс 16 нм FinFET и оптимизации архитектуры позволили видеокарте GeForce GTX 1080, основанной на графическом процессоре GP104, достичь высокой тактовой частоты в 1,6-1,7 ГГц даже в референсном виде, а работу на максимально возможных частотах в играх гарантирует новое поколение технологии GPU Boost. Вместе с увеличенным количеством исполнительных блоков, эти улучшения сделали новинку не просто самой высокопроизводительной одночиповой видеокартой за все время, но и наиболее энергоэффективным решением на рынке.

Также можно отметить, что именно модель GeForce GTX 1080 стала первой видеокартой, несущей на себе новый тип графической памяти GDDR5X — нового поколения высокоскоростных чипов, которое позволило достичь очень высокой частоты передачи данных. В случае модификации GeForce GTX 1080, этот тип памяти работает на эффективной частоте в 10 ГГц. В сочетании с улучшенными алгоритмами сжатия информации во фреймбуфере, это привело к росту эффективной пропускной способности памяти для этого графического процессора в 1,7 раза, по сравнению с прямым предшественником в лице GeForce GTX 980.

Компания Nvidia благоразумно решила не выпускать радикально новую архитектуру на абсолютно новом для себя техпроцессе, чтобы не столкнуться с лишними проблемами при разработке и производстве. Вместо этого они серьезно улучшили и так неплохую и весьма эффективную архитектуру Maxwell, добавив некоторые возможности. В итоге, с производством новых GPU все хорошо, и в случае модели GeForce GTX 1080 инженеры добились очень высокого частотного потенциала — в разогнанных вариантах от партнеров частота GPU ожидается вплоть до 2 ГГц! Столь впечатляющая частота стала реальна благодаря совершенному техпроцессу и кропотливой работе инженеров Nvidia при разработке графического процессора Pascal.

И хотя Pascal стал прямым последователем дела Maxwell, и эти графические архитектуры в основе своей не слишком сильно отличаются друг от друга, компания Nvidia внедрила множество изменений и улучшений, в том числе в возможности вывода изображения на дисплеи, движок кодирования и декодирования видеоданных, улучшили асинхронное исполнение различных типов вычислений на GPU, внесли изменения в многочиповый рендеринг и внедрили новый метод синхронизации Fast Sync.

Нельзя не выделить технологию мультипроецирования Simultaneous Multi-Projection, которая помогает повысить производительность в системах виртуальной реальности, получить более корректное отображение сцен на многомониторных системах, и внедрить новые техники оптимизации производительности. Но наибольший прирост в скорости получат VR-приложения, когда ими будет поддерживаться технология мультипроецирования, помогающая вдвое сэкономить ресурсы GPU при обработке геометрических данных и в полтора раза — при попиксельных вычислениях.

Среди чисто программных изменений особенно выделяется платформа для создания скриншотов в играх под названием Ansel — попробовать ее в деле будет интересно не только много играющим, но и просто интересующимся качественной 3D-графикой. Новинка позволяет продвинуть искусство создания и ретуши скриншотов на новый уровень. Ну а такие свои пакеты для разработчиков игр, как GameWorks и VRWorks, Nvidia просто продолжает улучшать шаг за шагом — так, в последнем появилась интересная возможность качественного обсчета звука, учитывающая многочисленные отражения звуковых волн с использованием аппаратной трассировки лучей.

В общем, в виде видеокарты Nvidia GeForce GTX 1080 на рынок вышел настоящий лидер, имеющий для этого все необходимые качества: высокую производительность и широкую функциональность, поддержку новых возможностей и алгоритмов. Первые покупатели этой видеокарты смогут оценить многие из упомянутых преимуществ сразу, а другие возможности решения раскроются чуть позже, когда появится широкая поддержка со стороны программного обеспечения. Главное, что GeForce GTX 1080 получилась весьма быстрой и эффективной, а часть проблемных мест (те же асинхронные вычисления), как мы очень надеемся, инженерам Nvidia удалось исправить.

В заключение первой части статьи предлагаем посмотреть наш видеообзор новых технологий, реализованных в Nvidia Geforce GTX 1080:


В следующих частях нашего материала мы оценим производительность новой видеокарты Nvidia GeForce GTX 1080 на практике, сравнив ее скорость с показателями самых мощных одночиповых видеосистем от компании Nvidia и AMD, относящихся к предыдущему поколению и произведенных по техпроцессу 28 нм. Сначала рассмотрим данные, полученные в нашем наборе синтетических тестов, а потом доберемся и до игр.



Средняя текущая цена (количество предложений) в московской рознице:
Рассматриваемые карты Конкуренты
GTX 1080 — 47 000  (на 01.12.16) GTX Titan X — 75 000  (на 01.12.16)
GTX 1080 — 47 000  (на 01.12.16) GTX 980 Ti — 39 500  (на 01.12.16)
GTX 1080 — 47 000  (на 01.12.16) R9 FuryX — 44 200  (на 01.12.16)


Благодарим компанию Nvidia Russia
и лично Ирину Шеховцову
за предоставленную на тестирование видеокарту

Блок питания Thermaltake DPS G 1050W для тестового стенда предоставлены компанией Thermaltake

Корпус Corsair Obsidian 800D Full Tower для тестового стенда предоставлен компанией Corsair

Модули памяти G.Skill Ripjaws4 F4-2800C16Q-16GRK для тестового стенда предоставлены компанией G.Skill

Corsair Hydro SeriesT H100i CPU Cooler для тестового стенда предоставлен компанией Corsair

Монитор Dell UltraSharp U3011 для тестовых стендов предоставлен компанией Юлмарт

Системная плата ASRock Fatal1ty X99X Killer для тестового стенда предоставлена компанией ASRock

Жесткий диск Seagate Barracuda 7200.14 3 ТБ для тестового стенда предоставлен компанией Seagate

2 накопителя SSD Corsair Neutron SeriesT 120 ГБ для тестового стенда предоставлены компанией Corsair




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.