Недавно NVIDIA представила новую архитектуру Volta (правда, пока только для серверов). По словам Хуань Женьсуна, одного из основателей и руководителей графического гиганта, новые GPU — это совсем не то, что было год назад, и вообще чуть ли не революция на рынке. Впрочем, то же самое он говорил и про Pascal, и про Maxwell, и раньше. И каждый раз, как ни странно, был прав. Как же так получается? Чтобы понять, придётся отправиться в прошлое и обратиться к древним технологиям. Итак, на дворе 1999-й год…
1999 – 2006: Классическая архитектура
1999: NVIDIA представляет GeForce 256 — первую в своём роде. Видеокарты у «Зелёных» были, конечно, и до неё, но GeForce 256 стала первой в мире с полностью аппаратным блоком T&L — трансформации и освещения. Прежде эти задачи решал процессор, и подобные платы были 3D+2D ускорителями, но никак не GPU – graphics processing unit. А тут самостоятельный продукт, который может полностью обеспечить все необходимые функции — центральному процессору остаётся только раздавать указания, что и как нарисовать. Конкурентам пришлось несладко.
2000: GeForce 2 отличалась новым техпроцессором, увеличенными частотами и двумя блоками нанесения текстур на каждом из четырёх пиксельных конвейеров. Это ещё не полноценные шейдерные процессоры, но настоящий прорыв в производительности был обеспечен — прирост более 40% по отношению к GeForce 256.
2001: GeForce 3 — первые карты с поддержкой программируемых шейдеров, появившихся в DirectX 8.1. До них световые спецэффекты были «зашиты» в виде базовых функций — используй то, что умеет софт и железо или не используй вообще. Теперь же функциональные блоки могли не только получать инструкции от CPU, но и исполнять собственный микрокод. К слову, чип из GeForce 3 в своё время стал ядром графической подсистемы первого Xbox. А инновационная шейдер-технология прижилась и используется до сих пор.
В 2002 году NVIDIA полностью поглощает своего конкурента, знаменитую компанию 3Dfx Interactive, которая ещё совсем недавно была чуть ли не монополистом на рынке 3D-ускорителей.
2002: GeForce 4 Ti и MX — изменения в архитектуре, которые просто нельзя проигнорировать. GF3 подарила нам пиксельные шейдеры, GF4 — вершинные. Все старые инструкции по трансформации и освещению треугольников (основа DirectX 7.0) превратились в управляемый код, который можно было запускать на девайсе.
Из года в год фирма показывала оптимальное по цене, производительности и функциям железо — это и сделало её лидером рынка. В следующие 3 года «революций» как таковых не было, но развитие продолжалось: в ход пошли перспективные наработки 3Dfx Interactive. В серии GeForce FX появилась поддержка шейдеров второй версии и DirectX 9, GeForce 6 получили поддержку современного интерфейса PCI-Express (более новые версии которого мы до сих пор используем для подключения видеокарт), а также SLI-мосты и возможность работать парами.
GeForce 7 стали последними чипсетами «классической» эры: на них оттачивали некоторые технологии производства GPU, которые стали «мэйнстримом» в следующем поколении.
Всё это время апдейты копились как снежный ком, но качественного улучшения графики со времён FX до GeForce 7 не было — пока в 2007 вся индустрия не получила новые инструменты и новую концепцию GPU.
2007 – 2017 Современная архитектура на базе GPGPU
Заметили, что с 2001 по 2007 программистам давали всё больше доступа к непосредственному контролю над видеокартой: позволяли указывать, что и как делать? Молодцы. Потому что в 2007 году NVIDIA перешла на архитектуру Tesla, в основе которой лежали именно управляемые вычисления на базе графического процессора — из узкоспециализированной железки плата превратилась в мощный высокопараллельный модуль.
Удивительно, как игра 2007 года до сих пор ухитряется выглядеть лучше многих эксклюзивов для PS4
Вместо вершинных и пиксельных конвейеров, блоков растеризации и отдельного геометрического движка видеокарта стала состоять из большого количества универсальных элементов: потоковых процессоров. Каждый из них был достаточно примитивен и мог работать как с вершинами (то есть управлять полигонами), так и с пикселями (текстуры, свет, тень, вот это всё).
В Fermi особый акцент делался на качественные изменения в архитектуре чипа: если Tesla на микрофотографии выглядела, как творческий беспорядок, то Fermi — как произведение инженерного искусства, куда более сложный и формализованный.
Так выглядел кристалл первого GPGPU на базе архитектуры NVIDIA TESLA
Архитектура Kepler несла в себе сразу ряд значительных изменений. В GeForce 8000, 9000, 200, 300, 400 шейдерные процессоры работали на удвоенной частоте относительно остальных функциональных блоков: эта особенность была актуальна во времена GeForce 3 (и сохранилась). В Kepler’е её устранили и значительно увеличили количество шейдерных процессоров, упростив их конструкцию и доступ к памяти.
Масштаб НЕ соблюдён
Maxwell стал финальным аккордом в улучшении базовых свойств GPGPU — оптимизация, новая схема общения с памятью и многие другое. И если вам кажется, что прогресс замедлился, то это не так. Он просто стал до того сложным и ориентированным на качественные улучшения, что по каждой из серий, начиная с Tesla, ничего не стоит написать отдельную статью — и всё равно будет мало.
Начало новой эпохи
Приход архитектуры Pascal на рынок PC-железа — это что-то среднее между появлением GeForce 256 или переходом с «классической» архитектуры на концепцию полностью программируемого GPGPU. NVIDIA провела огромную работу по оптимизации внутренней структуры чипов: перетряхнули буквально всё, от потоковых процессоров и кеш-памяти до способов их соединения друг с другом. В результате Pascal рвёт в клочья достижения Maxwell’а везде, где это возможно. Но самое главное — компания научилась отлично оптимизировать сами ядра прямо внутри поколения. Хотите пример?
Большой и злой Pascal
Новое поколение представляли видеокарты разного ценового сегмента. GTX 1080 и 1070 для игр в 4k и 2560x1440 соответственно, GTX 1060 как оптимальный выбор для игр в FullHD, и всё такое. Вершиной инженерной мысли, само собой, был Titan X. Спустя некоторое время вышла GTX1080 Ti — всё тот же «титан», но с упрощениями. Для увеличения выхода годных чипов два самых сложных блока — контроллер памяти и блок растеризации изображения — признаны условно-бракованными и отключены: чипы тестируются, если находится ошибка в одном из блоков, именно его «отрезают». Дело в шляпе: были дорогущие и идеальные Titan X, получились значительно более дешёвые (из-за меньшего количества отбраковки) «тишки».
Красным помечены различия между GTX 1080Ti (модули отсутствуют) и Titan X Pascal. Серый блок был включен в обеих девайсах и стал доступен только в TitanXP, единственной карте с необрезанным чипом GP102.
Производительность практически не пострадала — наоборот, техпроцесс отработали, внутреннюю разводку чипов отполировали, снизили температурную напряжённость в определённых участках кристалла, и в результате получили более высокие рабочие частоты. Попробуйте вспомнить хоть один пример такого апгрейда внутреннего устройства железа посреди поколения — на ум приходит разве что выход Radeon HD7970 1GHz edition в далёком 2012-м. Тогда видеокарте разом накинули 10% производительности из воздуха, просто оптимизировав производство её чипов.
Вот так NVIDIA получает более простые карточки из неудавшихся чипов старших серий
Та же история и с 1080Ti — это качественное улучшение безумно дорогого процессора GP102, пусть и с некоторыми функциональными упрощениями. А потеря одного гигабайта оперативки — да и чёрт бы с ним, не все игры 8 ГБ в режиме 4k умеют загрузить, а вы про разницу между 11-ю и 12-ю говорите…
Лучше 96% всех других компьютеров — примерно на такой результат могут рассчитывать владельцы GTX 1080 Ti и мощного современного процессора.
Если сравнивать производительность «Паскаля» с «Максвеллом», то эффект просто взрывной. Суперфлагманская 1080 Ti быстрее старушки 980 Ti на 50-60%, и при этом холоднее! Вот что техпроцесс животворящий делает!
1 — Тактовые частоты могут отличаться в зависимости от производителя видеокарты и разгонного потенциала конкретного чипа. 2 — Эффективная частота GDDR5X вдвое выше таковой у GDDR5 из-за архитектурных особенностей.
Спарка из 980 Ti может осадить дерзкого новичка только в определённых условиях — бенчмарках, идеально загружающих оба чипсета, да редких ААА-играх, чьи разработчики заморочились оптимизацией не только под мэйнстрим, но и под маргинальные сборки геймеров-толстосумов. Результаты наглядно видны на картинках и в сводной таблице:
V — значит Volta
Если переход от Maxwell к Pascal в чем-то сродни переводу архитектуры видеокарт с узкоспециализированных железяк на GPGPU, то шаг от Pascal до Volta сейчас сложно охарактеризовать: тестов мы не видели, и новые технологии Volta ещё не прошли обкатку рынком и реальными продуктами. Но можем проанализировать то, что уже известно.
Разработка вот этой «штучки» в руках Хуан Жэньсюня стоила 3 миллиарда долларов
Главной фишкой текущего поколения был переход с древнего техпроцесса в 28 нм (его, простите, ещё в 2012 году использовала та самая 7970) на современные 16 и 14 нм. Этот шаг радикально улучшил частотный потенциал новинок и снизил энергопотребление: отсюда и грубая производительность, и хороший разгон, и удивительная производительность недорогих карточек во многих играх.
За три с половиной поколения размеры кристалла выросли, но количество транзисторов увеличилось ещё больше — спасибо новому техпроцессу.
В Volta частотных чудес ждать не стоит, разница между 16 нанометрами «Паскаля» и планируемыми 12 у будущих королей графона не так велика, как между 28 и 16 в прошлом году. Но… если Pascal был соковыжималкой для технологий CUDA, которым уже больше десяти лет, и которые были изначально представлены в семействе 8800, то Volta — это первый по-настоящему новый продукт, в корне отличающийся от всех предыдущих плат вместе взятых.
Новые ядра
GPU обычных NVIDIA уже давно состоят из объединённых в блоки мультипроцессоров универсальных ядер CUDA. Они занимаются обработкой треугольников, обсчётом шейдеров, выполнением общих расчётов, и так далее. В Volta помимо CUDA будут использоваться новые ядра Tensor, достаточно узкоспециализированные, но крайне полезные в ряде задач.
Основное назначение этих чудо-ядер — работа со специфическими данными. Карта выдаёт «ядру» две матрицы 4x4 в формате FP16, перемножает их, а дальше прибавляет третью матрицу 4х4 формата FP16 или FP32 и прибавляет к ней результат. За один проход. Если кто с матрицами ещё не работал, или забыл, как это выглядит, вот пример расчётов, которые надо выполнить для умножения двух простеньких прямоугольных таблиц с целыми числами:
Pascal на CUDA может проводить операции построчно, Tensor-ядра из Volta проделывают те же расчёты для всех строк разом. Разница в производительности между старыми картами и новыми — до 12 раз. В основном такие операции используются при машинном обучении, распознавании образов, конфигурирования нейросетей и прочих штуках, оперирующих огромными массивами данных.
Посмотрите, насколько сложнее стала блок-схема кристалла!
Новая память
Для обеспечения GPU достаточным количеством данных необходима быстрая память. Вариантов тут не много: использовать очень дорогую и сложную в производстве HBM2 (что и делают в ускорителях для научных расчётов и некоторых картах от AMD), увеличивать шину памяти (крайне затратно и тяжело) или всячески наращивать частотный потенциал классической GDDR. Так как первые два подхода годятся учёным и энтузиастам, но не среднему игроку, то NVIDIA будет использовать новейшую разработку Samsung — память GDDR6: она быстрее, чем GDDR5X у «Титанов» и флагманов текущего поколения, выделяет меньше тепла при работе, и главное — объёмы могут снова вырасти.
Новый софт
Хорошее железо — полдела. Задействовать мощь Volta на полную катушку помогут новые инструменты, помогающие работать напрямую с GPU из множества популярных языков программирования.
Сумма качеств
Новый техпроцесс, новые ядра, новая память и новый софт — давно мы не видели такого наступления по всем фронтам. С точки зрения железа, изменения в Volta схожи с поколением Tesla. Новинки обещают взрывной рост производительности и потрясающую эффективность — только для этого разработчики должны использовать передовые технологии. Остаётся лишь ждать, когда все новшества примут и начнут активно эксплуатировать.
Что это даёт нам
Сами по себе видеокарты на базе Volta, безусловно, принесут свои 15-20-30% чистой производительности относительно Pascal за счёт более высоких частот, внутренних оптимизаций и большего количества ресурсов, доступных играм. Но это не всё. Тензорные ядра позволят разработчикам практически «бесплатно» использовать алгоритмы машинного обучения в играх.
Например, заставить движок игры анализировать влияние настроек на производительность на конкретно вашей системе, и выработать уникальный паттерн «динамических параметров», убирающий просадки в FPS ещё на стадии формирования сцены в кадре. Где-то текстурки попроще, снизить детализацию моделей на момент взрыва и блюра, и так далее. Или же применить алгоритмы для обучения ИИ вашему стилю игры. Привыкли к игре вдолгую? Вот вам ранняя атака по ресусной базе. Предпочитаете зерг-раш? Через пару миссий ждите застройку на рампе. Занимаетесь снайперскими вылазками и предпочитаете бой на дальних дистанциях? Ждите ловушек и миномётчиков, готовых к обстрелу указанного квадрата. В гонках рассчитываете на мощное ускорение на выходе из поворота? Не пустят на траекторию или подрежут. В общем, анализ поведения игрока и применение дополнительных мощностей для улучшения игрового разнообразия — один из актуальных сценариев применения новых ядер.
Фотореалистичный KINGSGLAIVE: Final Fantasy XV в реальном времени на NVIDIA Tesla Volta
И не стоит забывать про применение дополнительных ресурсов к построению красивой картинки. В конце концов, матричные операции очень часто применяются в современных спецэффектах и для создания компьютерных лент.
Ложка дёгтя
Единственное, что остаётся загадкой — насколько изменится реальная производительность в играх и как быстро игроделы смогут раскрыть потенциал новинок. Если обратиться к истории, и рассмотреть период перехода с DirectX 9.0 на DX10 и унифицированные шейдерные процессоры, то прирост производительности был виден сразу, а вот игры с новыми технологиями (за исключением Crysis) начали выходить спустя 1.5-2 года, когда пионеры новой архитектуры уже не обеспечивали достойные результаты.
Брать или ждать
Главный вопрос, который терзает многих. Брать «Паскаль» или дождаться-таки «Вольты»? Если у вас любая NVIDIA 4хх, 5хх, 6хх, Radeon HD или R5/7/9-серий, или ещё более старые/слабые видеокарты — переход на Pascal оправдан. GTX 1050Ti в большинстве современных игр выдаёт FullHD 60 FPS картинку на высоких настройках и опережает GTX 680, пусть и незначительно. Про более мощные варианты и говорить не стоит. Тем же, кто рассматривает покупку флагманских решений можно лишь посочувствовать. Новый майнерский бум высосал с рынка все доступные варианты, и достать сейчас GTX 1070, 1080 или 1080 Ti за разумные деньги затруднительно.
Потребительская Volta ожидается лишь к весне 2018, а технологии, заложенные в новое поколение GPU, начнут раскрываться лишь спустя пару лет — после накопления критической массы пользователей и завершения поисковых работ на тему применения машинного обучения и тензорных ядер в играх. Так что купившие топовую NVIDIA этим летом вряд ли пожалеют о своём выборе через год.
Читайте также
Последние новости