Ответный удар: GeForce GTX 680. Тестирование видеокарты на базе ядра Kepler

В бесконечной гонке за первенство на рынке графических ускорителей AMD удалось одержать очередную победу, выпустив Radeon HD 7970 на базе чипа, изготовленного по нормам 28-нм технологического процесса. За новоявленным одночиповым королем графики последовал младший брат в лице Radeon HD 7950 и видеокарты среднего ценового диапазона. Ситуация напоминает стремительную экспансию AMD во времена Radeon HD 5000. Пока NVIDIA рассказывала про чудесную архитектуру Fermi, конкуренты уже успешно продавали реальные видеокарты нового поколения. GeForce GTX 480 появился лишь спустя полгода после Radeon HD 5870 и вышел не только быстрее, но и значительно горячее и шумнее. В этот раз переход на новую архитектуру Kepler и новый техпроцесс у NVIDIA снова затянулся. Премьера флагмана опять грозила припоздниться на немалый срок, поэтому компания вначале даже планировала запуск новых продуктов в среднем ценовом сегменте. Однако после релиза старшего Radeon стратегия была изменена. Представители компании снисходительно заявили, что от Radeon HD 7900 они ожидали большего, а их новинка теперь уж точно будет супер-пупер и просто вне конкуренции. После этого начали появляться слухи о преобразовании продукта, который мог стать GeForce GTX 660, в ускоритель уровнем повыше — GeForce GTX 680.

Все в итоге так и оказалось. Новый флагман NVIDIA базируется на графическом процессоре GK104. Сам индекс, оканчивающийся на 4, намекает на родство с GF114 и GF104, давших жизнь многочисленным модификациям GeForce GTX 560/460.

Архитектура Kepler напоминает Fermi. В основе графического процессора — независимые кластеры GPC (Graphics Processing Cluster). У GK104 их 4, как и у GF100/GF110. Но если старые процессоры содержали по четыре мультипроцессора (Streaming Multiprocessor) на один кластер, то у Kepler их два. Зато мультипроцессоры (которые теперь обозначены аббревиатурой SMX) значительно изменились.

NVIDIA Kepler

SMX намного производительнее старых SM. Один мультипроцессор теперь состоит из 192 стрим-процессоров (CUDA cores в интерпретации NVIDIA), 16 текстурных блоков, 32 блоков специальных фукций SFU и 32 LD/ST для загрузки и хранения данных. Один SM у старых GPU имел в своем активе лишь 32 потоковых процессора, четыре текстурных блока, четыре SFU и 16 LD/ST. Разница огромная. Связана она и с тем, что у Kepler все блоки работают на одной частоте. Удвоенная частота вычислительных блоков Fermi позволяла за один такт 16 ядрам выполнять 32 инструкции, т.е. обрабатывать так называемый warp, который распределяет между мультипроцессорами GigaThread Engine. Каждое CUDA ядро состоит из FPU и ALU. Даже с учетом удвоенной частоты вычислительных ядер у предшественников можно говорить о трехкратном росте вычислительной мощности мультипроцессора благодаря большему числу ядер. А 32 SFU обеспечивают четырехкратное преимущество в скорости выполнения сложных математических операций. Не изменился объем кэш-памяти L1, которыйпо прежнему 64 КБ у каждого мультипроцессора.

NVIDIA Kepler

Вместо единого блока обработки геометрии у AMD графические процессоры NVIDIA имеют специальный блок PolyMorph Engine в каждом мультипроцессоре, которых у GK104 в два раза меньше чем у GF110, а значит и движков PolyMorph меньше. Компенсируется это их возросшей производительностью. PolyMorph Engine версии 2.0 обрабатывает за такт вдвое больше данных. Так что в итоге должен выйти паритет. Но в запасе у новичка большие частоты, поэтому новая видеокарта все равно окажется быстрее предшественника.

Увеличение количества вычислительных блоков потребовало удвоения числа планировщиков (Warp Scheduler), каждый из которых связан с двумя диспетчерами (Dispatch Unit). Но при этом логика управления была упрощена, что сделано в угоду экономии площади чипа и общего снижения энергопотребления. В Fermi планировщик полностью отслеживал зависимости внутри исполняемого кода и перераспределял потоки, теперь часть этих функций выполняется на этапе компиляции кода. Порядок выполнения предопределяется заранее, а планировщик лишь распределяет потоки.

NVIDIA Kepler

Интересно, что AMD в последних продуктах пошла по пути Fermi и усложнила управляющая логику, чтобы добиться большей гибкости при использовании ресурсов. В последовательных графических расчетах небольшие упрощения Kepler не должны сыграть существенной роли, но эффективность неграфических вычислений в сравнении с Fermi может снизиться. В этот раз NVIDIA вообще не акцентирует внимание на неграфических возможностях процессора GK104, что намекает на отсутствие прогресса в этой области. По некоторым данным есть даже регресс, в вычислениях двойной точности GeForce GTX 680 слабее GeForce GTX 580. Главным приоритетом перед компанией была высокая энергоэффективность в сочетании с высокой игровой производительностью, для этого чем-то пришлось пожертвовать.

Еще один неприятный момент — уменьшение кэш-памяти L2. Топовый процессор прошлого поколения нес на борту 768 КБ, а у нынешнего флагмана лишь 512 КБ. Но выросла его пропускная способность, озвучиваемая разница составляет 73%. Скорость атомарных операций выше в несколько раз. Вышло меньше, но значительно быстрее.

Изменилось соотношение движков растеризации и ROP. Одному Raster Engine теперь соответствует один большой ROP, который обрабатывает 8 пикселов за такт (поэтому говорят о 32 ROP). У GF110 соотношение было 4:6, т.е. в целом обрабатывалось 48 пикселей за такт. Новое соотношение NVIDIA считает более оптимальным.

Четыре мультипроцессора и 32 ROP роднят новичка с GeForce GTX 560/460. Усиливает сходство и 256-битная шина памяти, которой в топовых видеоадаптерах NVIDIA не было уже много лет. Графический процессор GK104 оснащен лишь четырьмя 64-битными контроллерами. Пропускная способность памяти должна компенсироваться высокой частотой микросхем GDDR5, что стало возможно благодаря переработанным контроллерам. Не секрет, что первые видеокарты Fermi не радовали высокими частотами памяти. Представители пятисотой серии в этом плане стали получше. У GeForce GTX 680 еще больший прогресс. Это первая видеокарта, память которой функционирует на эффективной частоте 6008 МГц, что позволяет достичь идентичной пропускной способности с 384-битным GeForce GTX 580. Но вот у Radeon HD 7970 с 512-битной шиной ПСП выше почти на 38%.

Объем памяти GeForce GTX 680 тоже меньше, чем у флагмана AMD — 2 ГБ против 3 ГБ. Но реально три гигабайта востребованы сейчас разве что в мультимониторных конфигурациях. Даже в 2560x1440 третий гигабайт будет актуален в редких играх. В Full HD двух гигабайт пока хватает с лихвой. К примеру, из всех наших тестов в 1920x1080 даже полтора гигабайта смог загрузить только Crysis 2 с улучшенными текстурами.

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

NVIDIA Kepler

В сравнении с Radeon HD 7970 нам обещают меньшее энергопотребление при большей производительности. Это стало возможным благодаря различным оптимизациям и небольшим упрощениям в сочетании с увеличившимся количеством вычислительных блоков плюс новый 28-нм техпроцесс. Площадь графического процессора GK104 меньше площади Tahiti, что и неудивительно, ведь состоит он из 3,5 млрд. транзисторов против 4,3 млрд. у старшего GPU от AMD. В нагрузке GeForce GTX 680 потребляет до 195 Вт и обходится двумя шестиконтактными разъемами питания. Для Radeon HD 7970 заявлен предел в 250 Вт. Разница впечатляющая, но, как покажет наше тестирование, в жизни все не так радужно.

Высокая производительность GeForce GTX 680 обеспечивается и высокой частотой GPU. В придачу новинка обзавелась еще автоматическим разгоном GPU Boost. Эта технология является аналогом Turbo-технологий у CPU. GK104 может поднимать свою частоту в моменты не максимальной загрузки, когда TDP ниже предела 195 Вт. На аппаратном уровне отслеживается загрузка графического процессора и памяти, осуществляется контроль мощности и температуры. На основании всех этих данных GPU ускоряется до определенного уровня и работает на этой частоте, пока не превысит порог TDP.

NVIDIA Kepler

Есть базовая частота в 1006 МГц, на которой видеокарта гарантированно работает при любой нагрузке даже в самых тяжелых приложениях. Кроме базовой частоты имеется Boost Clock — частота в ускоренном режиме. Для GeForce GTX 680 она указывается как 1058 МГц, но это среднее значение, ведь GPU может разгоняться вплоть до 1110 МГц, если остается в границах дозволенного TDP. То есть итоговая прибавка может достигать 10%, что весьма неплохо. Правда максимальный прирост будет в самых легких приложениях, где и без GPU Boost видеокарта выдаст высокий fps. Зато в самых тяжелых сценах прироста может вообще не быть. Интересно, отразится ли это на противостоянии с конкурентом AMD? Будет ли преимущество по среднему fps соответствовать преимуществу по минимальному fps? Результаты нашего тестирования позволят ответить на эти вопросы.

Видеоадаптер GeForce GTX 680 GeForce GTX 580 GeForce GTX 480
Ядро GK104 GF110 GF100
Количество транзисторов, млн. шт 3500 3000 3200
Техпроцесс, нм 28 40 40
Площадь ядра, кв. мм 294 520 526
Количество потоковых процессоров 1536 512 480
Количество текстурных блоков 128 64 60
Количество блоков рендеринга 32 48 48
Частота ядра, МГц 1006+ 772 701
Частота шейдерного домена, МГц 1006+ 1544 1401
Шина памяти, бит 256 384 384
Тип памяти GDDR5 GDDR5 GDDR5
Частота памяти, МГц 6008 4008 3696
Объём памяти, МБ 2048 1536 1536
Поддерживаемая версия DirectX 11.1 11 11
Интерфейс PCI-E 3.0 PCI-E 2.0 PCI-E 2.0
Заявленная максимальная потребляемая мощность, Вт 195 244 250

В настройках драйвера есть возможность изменения предела TDP в большую и меньшую сторону, аналогично настройкам PowerTune у Radeon. Соответствующий ползунок появился уже и последней beta-версии MSI Afterburner 2.2.0. При разгоне мы изменяем базовую частоту. GPU Boost продолжает работает и, если это позволит уровень энергопотребления, будет по-прежнему увеличивать частоту. Максимальная дельта такая же — плюс 104 МГц к базовой частоте, средний Boost Clock — 52 МГц.

NVIDIA Kepler

Новый GeForce оснащен интерфейсом PCI Express 3.0. Поддержка спецификаций DirectX 11.1 не совсем полная, но все функции относящиеся к 3D-рендерингу реализованы. Так что «игровая» поддержка этого API полноценная.

Есть у Kepler и эксклюзивные возможности, которые пока не реализованы в DirectX 11. Новый графический процессор получил поддержку технологии Bindless Textures. В старых GPU шейдерная программа обращалась к 128 текстурам через специальную таблицу. Bindless Textures позволяет работать с текстурами напрямую без таблицы привязки. И одна шейдерная программа может использовать до миллиона текстур. Вот только использовать такие возможности можно пока лишь в OpenGL или при помощи NVAPI.

NVIDIA Kepler

Получил развитие метод сглаживания FXAA, в чем-то идентичный MLAA от AMD, ведь он тоже представляет собой пост-обработку отрендеренного кадра. FXAA намного быстрее MSAA, но и четкость картинки ниже. Ранее этот режим поддерживался лишь некоторыми играми. Теперь можно будет форсировать его практически для любого приложения из панели управления NVIDIA. Новый режим получил название FXAA 3. Правда, это не особенность Kepler. С новым драйвером такая возможность появится и у владельцев старых видеокарт GeForce.

NVIDIA разработала еще один более качественный метод сглаживания под названием TXAA. Он сочетает в себе аппаратные методы MSAA и постобработку готового кадра. Предлагается два режима TXAA. Один соответствует по качеству 8x MSAA, а по производительности 2x MSAA. Другой режим еще более качественный при сопоставимой производительности с работой алгоритма 4x MSAA.

NVIDIA Kepler

Crytek будет использовать это сглаживание в своих будущих проектах. Его собираются внедрить и в Unreal Engine 4. Из ближайших игр TXAA должен порадовать нас в Borderlands 2. В этой игре заодно обещают и поддержку PhysX.

NVIDIA Kepler

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

Еще одно новшество — Adaptive VSync. Обычная вертикальная синхронизация позволяет избавиться от разрывов кадров (tearing), когда fps превышает частоту обновления монитора. Но включение этой функции в ресурсоемких играх, когда видеокарта просто не в состоянии выдать положенные 60 fps, приводит к общему падению производительности. Adaptive VSync динамически включается и отключается в зависимости от fps. Если видеокарта выдает более 60 кадров в секунду, включается синхронизация, если меньше — выключается. Таким образом Adaptive VSync позволит минимизировать вероятность разрывов кадра без дополнительного снижения fps в тяжелых сценах. Эту функцию можно будет включить для любого приложения в панели управления.

NVIDIA Kepler

Внедрена функция ограничения fps. Указав верхний предел по частоте кадров можно разгрузить видеокарту в играх с низкими системными требованиями, что позволит функционировать ей на более низких частотах, меньше греться и потреблять мощности. Пока такие настройки не доступны в панели управления, изменять предел fps можно в последней версии утилиты EVGA Precision.

GeForce GTX 680 поддерживает одновременный вывод на четыре монитора. В режиме 3D Vision Surround возможен вывод 3D-изображения на три монитора. Ранее это было возможно лишь с GeForce GTX 590. В мультимониторном стерео-режиме четвертый экран можно задействовать для просмотра браузера, электронной почты и других приложений.

NVIDIA Kepler

Кстати, Kepler избавлен от проблемы с постоянной работой на высоких частотах даже в режиме простоя при подключении мониторов с разными характеристиками, что имело место у видеокарт Fermi.

Поддерживаются интерфейсы DisplayPort 1.2 и HDMI 1.4a с многопоточным выводом звука. Видеокарта может выводить изображение на мониторы Ultra High Definition с разрешением 3840x2160.

Процессор GK104 обзавелся специальным блоком NVENC для аппаратного кодирования видео в формате H.264 с поддержкой разрешений вплоть до 4096x4096. Производительность NVENC намного быстрее кодирования с помощью CUDA, при этом обещано энергопотребление на уровне 10 Вт. Для максимального ускорения можно вместе с NVENC параллельно задействовать и CUDA. Поддержка кодирования при помощи NVENC уже присутствует в программе Cyberlink MediaEspresso, в ближайшее время к ней присоединятся Cyberlink PowerDirector и Arcsoft MediaConverter.

После рассмотрения технических особенностей GK104 и основных характеристик GeForce GTX 680 настало время познакомиться с самой видеокартой для изучения ее конструктивных особенностей.
Некоторые вещи в этом мире созданы для разгона!