Компания NVIDIA готовит к выпуску новую серию игровых видеокарт, которую откроет GeForce GTX 1080. Эта модель станет первым продуктом игрового класса на базе архитектуры Pascal. GeForce GTX 1080 принесет ряд технологических инноваций, о которых мы поговорим в данной статье. Материал будет носить теоретический характер, в нем рассмотрены архитектурные особенности и новые возможности GeForce GTX 1080. Тестирование и сравнение с другими видеокартами появится позже.
Стремительный прогресс в миниатюризации кремниевых чипов в последние годы сбавил обороты. Компания Intel даже отказалась от стратегии «Тик-так», которая предусматривала регулярный переход на более тонкий техпроцесс. На рынке графических ускорителей в рамках одного 28-нм техпроцесса сменилось несколько поколений продуктов NVIDIA и AMD. Отчасти это пошло на пользу и заставило производителей больше внимания уделять развитию архитектуры. Этот качественный переход в свое время был хорошо заметен при переходе с Kepler на архитектуру Maxwell, когда новое поколение оказалось более производительным и энергоэффективным без увеличения количества транзисторов или даже при уменьшении размеров кристаллов. К примеру, GeForce GTX 980 базируется на более компактном чипе GM204, что не мешает видеокарте демонстрировать более высокую производительность относительно GeForce GTX 780 Ti с более сложным чипом GK110.
Новое поколение GeForce получит как новую архитектуру, так и более тонкий техпроцесс. И GeForce GTX 1080 во многих отношениях является первопроходцем. Это первый графический ускоритель на архитектуре Pascal с графическим процессором GP104, который выполнен по нормам техпроцесса 16-нм FinFET. Среди важных инноваций компания NVIDIA отмечает еще быструю память стандарта GDDR5X. Новые технологические особенности позволяют поднять частоты до рекордного уровня, определяя новый уровень «мастерства». А новые игровые технологии расширяют возможности GeForce, особенно в области работы с VR-контентом. Это пять основных особенностей, которые выделяет производитель в новом продукте.
Стоит отметить, что изначально первопроходцем архитектуры Pascal стал специализированный ускоритель вычислений Tesla P100. Он базируется на процессоре GP100. Но поскольку продукт ориентирован на совершенно другую сферу применения, то именно GeForce GTX 1080 является пионером среди настольных графических ускорителей.
GPU GP104 наследник GM204, поэтому при изучении GeForce GTX 1080 можно отталкиваться от GeForce GTX 980, хотя новичок быстрее GeForce GTX 980 Ti и GeForce GTX Titan X. Процессоры Pascal используют кластерную структуру по типу предшественников, где кластер GPC (Graphics Processing Cluster) по сути является самостоятельным вычислительным блоком. В основе GP100 шесть кластеров, у GP104 четыре кластера, а следующий чип GP106 должен получить два кластера. Четыре GPC делают новый GPU GP104 максимально близким к GM204. Да и блок-схема этого чипа тоже напоминает старый процессор.
GPU GP104
Различия в структуре проявляются при более внимательном изучении. В прошлом поколении кластер включал в себя четыре крупных мультипроцессорных блока SMM. У GP104 младшие исполнительные блоки сгруппированы в пять мультипроцессорных блоков SM. Каждый такой крупный блок обработки данных связан со своим блоком обработки геометрии Polymorph Engine, которых теперь 20 вместо 16 у GM204.
Один SM разбит на четыре массива обработки данных со своей управляющей логикой, и это тоже аналогично структуре старых GPU. И в обоих случаях мультипроцессор оперируют 128 потоковыми ядрами (CUDA cores). В SM есть 96 КБ общей кэш-памяти, отдельный текстурный кэш и восемь текстурных блоков. В итоге имеем конфигурацию из 2560 потоковых процессоров и 160 текстурных блоков. У нового процессора 64 блока ROP и кэш-память L2 объемом 2 МБ — тут отличий от GM204 нет.
Стало больше контроллеров памяти, в Pascal изменилась вся подсистема работы с памятью. Вместо четырех 64-битных контроллеров реализовано восемь 32-битных, что обеспечивает разрядность шины памяти в 256 бит. После успешного GeForce GTX 980 такая шина памяти в топовом продукте уже не удивляет. При этом эффективность шины у GeForce GTX 1080 выше за счет новых алгоритмов сжатия данных. Также рост пропускной способности обеспечивают микросхемы нового стандарта GDDR5X, у которых эффективное значение обмена данных эквивалентно частоте 10 ГГц. Привычная память GDDR5 ограничивалась частотами до 7 ГГц. Объем видеобуфера повышен до 8 ГБ.
Благодаря новому техпроцессу GP104 компактнее GM204 при большем количестве вычислительных блоков. При этом новый процессор имеет больше возможностей для повышения частот. Изначально для него установлено базовое значение в 1607 МГц при среднем Boost Clock 1733 МГц. Пиковые значения частоты еще выше. С такими рекордными частотами GeForce GTX 1080 укладывается в TDP 180 Вт, что немного выше показателей GeForce GTX 980. А ведь новичок быстрее топовой Ti-версии, у которой TDP заметно больше.
Для наглядного сравнения сведем в одной таблице характеристики GeForce GTX 1080 и топовых видеокарт предыдущих поколений.
Видеоадаптер | GeForce GTX 1080 | GeForce GTX Titan X | GeForce GTX 980 Ti | GeForce GTX 980 | GeForce GTX 780 Ti |
---|---|---|---|---|---|
Ядро | GP104 | GM200 | GM200 | GM204 | GK110 |
Количество транзисторов, млн. шт | 7200 | 8000 | 8000 | 5200 | 7100 |
Техпроцесс, нм | 16 | 28 | 28 | 28 | 28 |
Площадь ядра, кв. мм | 314 | 601 | 601 | 398 | 561 |
Количество потоковых процессоров | 2560 | 3072 | 2816 | 2048 | 2880 |
Количество текстурных блоков | 160 | 192 | 176 | 128 | 240 |
Количество блоков рендеринга | 64 | 96 | 96 | 64 | 48 |
Частота ядра, МГц | 1607–1733 | 1000–1075 | 1000–1075 | 1126–1216 | 875–926 |
Шина памяти, бит | 256 | 386 | 386 | 256 | 384 |
Тип памяти | GDDR5X | GDDR5 | GDDR5 | GDDR5 | GDDR5 |
Частота памяти, МГц | 10010 | 7010 | 7010 | 7010 | 7010 |
Объём памяти, МБ | 8192 | 12288 | 6144 | 4096 | 3072 |
Поддерживаемая версия DirectX | 12.1 | 12.1 | 12.1 | 12.1 | 12.0 |
Интерфейс | PCI-E 3.0 | PCI-E 3.0 | PCI-E 3.0 | PCI-E 3.0 | PCI-E 3.0 |
Мощность, Вт | 180 | 250 | 250 | 165 | 250 |
Видеокарты NVIDIA среднего и старшего уровня давно используют технологию GPU Boost, которая повышает частоту графического процессора до тех пор, пока он не превысит ограничения по температуре или мощности. Минимальным значением для 3D-режима является базовая частота, но зачастую при обычной игровой нагрузке частоты всегда выше. Новые GeForce получили улучшенную технологию GPU Boost 3.0 с более гибким алгоритмом изменения частоты в зависимости от питающего напряжения в режиме частотного ускорения. У GPU Boost 2.0 фиксированная разница между базовым значением и частотой Turbo. GPU Boost 3.0 позволяет использовать разное смещение частот, что позволит лучше раскрыть потенциал GPU. Теоретически при автоматическом изменении параметров в Boost-режиме с повышением или понижением напряжения частота будет изменяться нелинейно, в каких-то точках дельта Boost может быть больше, чем это было бы с GPU Boost старой версии. Новые возможности гибкой регулировки Boost будут доступны пользователям. Свежая версия утилиты EVGA Precision уже поддерживает GeForce GTX 1080, среди ее возможностей автоматический сканер с тестом стабильности, который может формировать нелинейную кривую частот Boost для разных напряжений. Переход на новый техпроцесс и оптимизация структуры ядра позволили добиться столь значительного частотного ускорения, что максимальный Boost относительно заявленных значений может повышаться до уровня 2 ГГц.
С момента появления GDDR5 компания NVIDIA работала над следующим поколением скоростной памяти. Результатом взаимодействия с разработчиками памяти стало появление GDDR5X со скоростью передачи данных 10 Гбит/с. Работа со столь быстрой памятью выдвигает новые требования к разводке электрических цепей. Поэтому были переработаны линии передачи данных между GPU и микросхемами памяти, изменена структура самого чипа. Все это позволяет эффективно работать со сверхбыстрым видеобуфером. Среди преимуществ GDDR5X и более низкое рабочее напряжение на уровне 1,35 В.
При эффективной частоте памяти в 10000 МГц увеличение пропускной способности относительно привычных для нынешнего поколения 7012 МГц почти 43%. Но этим преимущества Pascal не ограничиваются. GeForce поддерживают специальные алгоритмы сжатия данных в памяти, что позволяет более эффективно использовать кэш и передавать больше данных при той же пропускной способности. Поддерживается несколько методик, в зависимости от типа данных выбирается свой алгоритм сжатия. Важную роль играет алгоритм сжатия цвета delta color compression. Благодаря ему кодируется не цвет каждого отдельного пикселя, а разница между пикселями при последовательной передаче данных. Вычисляется некий усредненный цвет тайла и данные о смещении цвета для каждого пикселя этого тайла.
Такое сжатие обеспечивает высокую продуктивность Maxwell, но эффективность Pascal еще выше. GPU GP104 дополнительно поддерживает новые алгоритмы с еще большим сжатием для случаев, когда разница между цветом минимальна.
В качестве примера NVIDIA приводит два слайда из игры Project CARS. Розовым цветом на них закрашены те тайлы, где применялось сжатие данных. Верхний слайд отражает работу сжатия на Maxwell, нижний на Pascal.
Как видим, сжатие у Pascal применяется и к тем зонам, где оно не выполнено на Maxwell. В итоге почти весь кадр подвергся сжатию. Конечно, эффективность работы таких алгоритмов зависит от каждой конкретной сцены. По данным NVIDIA разница в этой эффективности между GeForce GTX 1080 и GeForce GTX 980 варьируется от 11% до 28%. Если взять за среднее значение величину 20%, то с учетом повышения частот памяти результирующий рост пропускной способности составляет около 70%.
Новое поколения GeForce поддерживает асинхронные вычисления Async Compute с улучшенным использованием вычислительных ресурсов для разных типов задач. В современных играх GPU одновременно с рендерингом изображения могут выполнять и другие задачи. Это может быть расчет физики тел, постообработка изображения и специальная техника асинхронного искажения времени (Asynchronous Time Warp) для режима виртуальной реальности. При выполнении разных задач не всегда задействуются все вычислительные блоки, и выполнение каждой задачи может занимать разное время. К примеру, если неграфические вычисления выполняются дольше графических, то все равно идет ожидание завершения каждого процесса для переключения к новым задачам. При этом часть ресурсов GPU простаивает. В Pascal появилась динамическая балансировка загрузки. Если одна задача выполнилась раньше, то освободившиеся ресурсы подключаются на выполнение другой задачи.
Таким образом удается избежать простоев и поднять общую производительность при комбинированной нагрузке на GPU. При подобной нагрузке важную роль играет и скорость переключения между задачами. Pascal поддерживает прерывание задач на разных уровнях для максимально быстрого переключения. При получении новой команды процессор прерывает задачи на уровнях обработки пикселей и потоков, сохраняя их состояние для дальнейшего завершения, и вычислительные блоки принимаются за новую задачу. Pascal поддерживает прерывание на уровне отдельных инструкций, Maxwell и Kepler только на уровне потоков.
Прерывание на разных уровнях позволяет точнее определить момент переключения задачи. Это важно для техники Asynchronous Time Warp, которая деформирует уже сформированное изображения перед его выводом для коррекции в соответствии с положением головы. При Asynchronous Time Warp нужно быстрое упреждение для переключения строго перед выводом кадра, иначе возможны артефакты в виде «дрожания» картинки. Pascal справляется с этой задачей лучше всего.