Продолжительное время компания NVIDIA была лидером рынка графических ускорителей, всегда оставаясь первой в сфере инноваций и внедрения новых технологий. Но судьба нового поколения видеокарт оказалась не столь радужна, ведь уже полгода как на рынке доступны видеоадаптеры семейства Radeon с поддержкой нового DirectX 11, а соответствующие модели GeForce только появились. И дело тут не только в том, что калифорнийская компания проиграла AMD в гонке освоения нового 40-нм технологического процесса производства, но и в высокой планке, которую изначально поставили себе инженеры NVIDIA, принявшиеся за разработку качественно новой архитектуры Fermi, оптимизированной под будущие 3D-приложения. И насколько им это удалось, мы уже можем оценить на практике.


Архитектура GF100

Если последние решения AMD на базе Cypress являются развитием предыдущего поколения видеокарт, то NVIDIA подошла к процессу создания новой архитектуры более радикально, исходя из требований последнего API и его возможностей. Новый GPU получил название GF100. Аббревиатура GF указывает, что графический (Graphics) чип базируется на архитектуре Fermi.

Архитектура NVIDIA GF100

Аналогично предшественникам на базе G80 и GT200 в основе нового GPU лежат несколько кластеров GPC (Graphics Processing Cluster), состоящих из группы потоковых мультипроцессоров (Streaming Multiprocessors). Полноценный чип включает четыре кластера по четыре мультипроцессора, каждый из которых в свою очередь содержит 32 CUDA-ядра. В итоге мы имеем 512 вычислительных блоков (CUDA cores). Но не случайно мы использовали слово «полноценный», ведь итоговый вариант GF100, на котором базируется топовый нынче графический ускоритель GeForce GTX 480, содержит лишь 480 активных CUDA-ядер, лишившись целого мультипроцессорного блока. А младшему GeForce GTX 470 достались уже 448 потоковых процессоров.

Архитектура NVIDIA GF100

Кроме 32 CUDA-ядер мультипроцессор содержит блок целочисленных вычислений и блок для вычислений с плавающей запятой. Сложные операции выполняются блоками специальных фукций SFU (Special Function Units). Еще 16 блоков LD/ST служат для загрузки и хранения данных.

Архитектура NVIDIA GF100

SM-блок имеет общую кэш-память первого уровня объемом 64 КБ и четыре текстурных блока. Всего в GF100 получается 64 текстурных модуля, но с учетом того, что вместо 16 мультипроцессоров у старшей карты осталось активных 15, то и число соответствующих блоков уменьшилось до 60. На фоне GT200 это немного, так как у предшественника их было 80. Но производительность новых текстурных блоков значительно возрасла. Согласно данным NVIDIA выборка текстур осуществляется чуть ли не в 1,5 раза быстрее чем у GT200.

Управляет потоками данных в GF100 специальный диспетчер GigaThread, распределяя потоки (варпы) по мультипроцессорам, внутри которых управление осуществляется соответствующими планировщиками Warp Scheduler и диспетчерами Instruction Dispatch. Каждый мультипроцессор имеет по два таких блока, благодаря чему может выполнять два варпа (32 потока) за такт.

Каждый мультипроцессор имеет 64 килобайт памяти, которая в зависимости от задач (графические или неграфические расчеты) может быть сконфигурирована в двух режимах: 48 КБ общей памяти и 16 КБ кэш-памяти первого уровня, или 16 КБ общей памяти и 48 КБ L1-кэша. Общая кэш-память второго уровня объемом 768 килобайт обеспечивает обмен данными между всеми блоками GPU. Унифицированная структура L2-кэша более гибкая, чем применявшаяся ранее «раздельная», и позволяет эффективнее использовать общий объем памяти в зависимости от потребностей конкретных задач и вычислительных блоков.

Архитектура NVIDIA GF100

Кроме того, кластеры GPC дополнительно к четырем мультипроцессорным массивам имеют свои движки растеризации — Raster Engine, позволяющие параллельно с четырьмя специальными блоками PolyMorph Engine, отвечающими за  тесселяцию и выборку вершин, поднять скорость обработки геометрии.

Архитектура NVIDIA GF100

Претерпели изменения и блоки ROP, увеличена производительность при сглаживании методом мультисемплинга MSAA 8x. В качестве конкретных цифр приводится в пример игра H.A.W.X., в которой разница между режимом 4x MSAA и 8x MSAA на GeForce GTX 480 составляет не более 10%, в то время как на GeForce GTX 285 это около 50%. Также появился новый режим сглаживания 32x CSAA (Coverage Sampling Antialiasing), который обеспечивает сглаживание и полупрозрачных текстур, причем производительность при 32x CSAA почти не отличается от таковой в 8x MSAA.

Шина доступа к памяти, равная 384 битам, реализована за счет шести 64-битных контроллеров. У младшего GeForce GTX 470 отключен один контроллер. В качестве памяти используются чипы стандарта GDDR5. У старшей модели GeForce GTX 480 ее рабочая частота 3696 (QDR) МГц, у младшей — 3348 МГц. Топовый видеоадаптер оснащается объемом в 1536 МБ, а GeForce GTX 470 — 1280 МБ.

Видеоадаптер Radeon HD 5870 GeForce GTX 480 GeForce GTX 470 GeForce GTX 295 GeForce GTX 285 GeForce GTX 275
Ядро RV870 GF100 GF100 GT200b х 2 GT200b GT200b
Количество транзисторов, млн. шт 2154 3200 3200 1400 x 2 1400 1400
Техпроцесс, нм 40 40 40 55 55 55
Площадь ядра, кв. мм 334 530 530 487 x 2 487 487
Количество потоковых процессоров 1600 480 448 240 x 2 240 240
Количество текстурных блоков 80 60 56 80 x 2 80 80
Количество блоков рендеринга 32 48 40 28 x 2 32 28
Частота ядра, МГц 850 701 607 576 648 633
Частота шейдерного домена, МГц 850 1401 1215 1242 1476 1404
Шина памяти, бит 256 384 320 448 x 2 512 448
Тип памяти GDDR5 GDDR5 GDDR5 GDDR3 GDDR3 GDDR3
Частота памяти, МГц 4800 3696 3348 1998 2484 2268
Объём памяти, МБ 1024 1536 1280 896 x 2 1024 896
Поддерживаемая версия DirectX 11 11 11 10 10 10
Интерфейс PCIe 2.1 PCIe 2.0 PCIe 2.0 PCIe 2.0 PCIe 2.0 PCIe 2.0
Заявленная максимальная потребляемая мощность, Вт 188 250 215 289 183 219

Все более актуальными становятся в последнее время неграфические расчеты на GPU. Использование таких API, как CUDA и DirectCompute, расширяют функционал и возможности видеоадаптеров. Причем, подобного рода задачи становятся все более востребованными и для игровых приложений. Недавно вышедший проект Just Cause 2 использует для более реалистичной симуляции водной поверхности CUDA (что является эксклюзивным бонусом для владельцев видеокарт GeForce), в «Метро 2033» для реалистичных эффектов постобработки под DirectX 11 используется DirectCompute. Мы уж не говорим о физическом движке NVIDIA PhysX, на базе которого реализуются реалистичная физика тканей, жидкости и дыма. Справедливости ради, надо отметить, что выдающихся проектов в числе использующих технологию PhysX немного, а тех, где подобные эффекты выглядят впечатляюще — еще меньше. Архитектура нового чипа изначально проектировалась под возможности выполнения неграфических расчетов с быстрым переключением задач. В частности, благодаря упоминавшемуся выше разделению общей памяти мультипроцессорных блоков под такие задачи выделяется 48 КБ в качестве кэша первого уровня.

Что же касается тех улучшений, которые несет игрокам DirectX 11, то GF100 готов к ним во всеоружии. Неслучайно большой акцент инженеры NVIDIA сделали на увеличении производительности при обработке геометрии. Одним из главных преимуществ нового API с точки зрения повышения конечного качества картинки является поддержка тесселяции. С помощью этого метода обработки увеличивается число полигонов на конечной модели. Фактически, таким способом модель просто сглаживается, избавляясь от «угловатости». Добиться более высокой детализации позволяет дополнительное наложение карт смещения (displacement maps). Использование этих двух методов позволяет работать с простыми начальными геометрическими моделями, а уже после применения тесселяции, т.е. разбиения на дополнительные треугольники, и смещения координат их вершин можно получить модель со сложной геометрией. Кстати, благодаря displacement maps возможно будет реализовать изменения геометрии объектов в режиме реального времени, например, получить настоящие дырки от пуль на поверхностях.

Архитектура NVIDIA GF100

Именно с учетом всех этих новых возможностей DirectX 11 и проектировался GF100, что должно дать значительное преимущество над конкурентами в новых игровых проектах. В частности, NVIDIA говорит о восьмикратном преимуществе в специализированном тесте Microsoft subd11 tessellation test над Radeon HD 5870. В более приближенном к жизни Stone Giant Benchmark разница уже менее 90%, а в Unigine Heaven DX11 benchmark — это еще более скромные цифры. Результаты в синтетических тестах впечатляют, но в жизни все не так радужно, тем более, что проектов, где бы использовалась качественная тесселяция, пока не так уж и много.

Кроме традиционной растеризации Fermi предлагает использование метода трассировки лучей для построения изображения. На данный момент GF100 самый производительный чип, способный выполнять построение 3D-изображения с помощью алгоритмов трассировки лучей, поскольку его архитектура изначально оптимизировалась под такие возможности. Впрочем, производительности новых видеоадаптеров все равно не хватит для полноценного рендеринга в режиме реального времени. В NVIDIA это отлично понимают и предлагают комбинированный метод рендеринга с использованием стандартной растеризации и ray tracing. О какой-то практической реализации пока что говорить не приходится, и примеры такого подхода можно увидеть лишь на скриншотах, демонстрирующих работу такого метода с использованием специальной технологии NVIDIA OptiX.

Архитектура NVIDIA GF100

Последние видеоадаптеры AMD могут выводить изображение сразу на три монитора, а специальные Eyefinity Edition-версии на шесть. Своеобразным ответом на это со стороны калифорнийской компании стала возможностей создания мультимониторной конфигурации (на базе трех дисплеев) для 3D-режима. Реализовать новую технологию 3D Vision Surround возможно лишь на SLI системе из двух или трех видеокарт новой серии. Учитывая рост системных требований при включении 3D-режима, такой подход вполне понятен — одна карта просто не в состоянии обеспечить нормальную производительность в современных играх на трех мониторах с разрешением до 1920х1080.

Архитектура NVIDIA GF100

Подытоживая все вышесказанное, можно отметить, что чип GF100 получился прогрессивным и явно нацеленным на новые приложения под DirectX 11. NVIDIA привыкла быть лидером в разработке одночиповых видеоадаптеров, и новое поколение GeForce теоретически должно было повторить судьбу успешной серии GeForce 8800, но вышло совсем по-другому. Возникшие проблемы с реализацией в кремнии чрезвычайно сложного чипа, состоящего из более чем трех миллиардов транзисторов, привели к неслыханному доселе событию, когда в серийное производство пошла топовая видеокарта с отключенными вычислительными блоками. Изначальный вариант GF100 c 512 потоковыми процессорами так и не увидел свет. Собственно, это и не очень удивительно, если вспомнить, что у TSMC (производящей чипы для обоих графических гигантов) были некоторые проблемы и с более простым RV870 (2,15 млрд. транзисторов). Да и новый 40-нм техпроцесс у NVIDIA не задался даже в бюджетном сегменте. Не случайно же GeForce GT 220 и GeForce GT 240 обладали невысокими рабочими частотами на фоне предшественников, что вызывало некоторые опасения и в отношении будущих high-end видеокарт. При этом еще и сам выпуск новых моделей припозднился на полгода, когда AMD уже успела выпустить новые решения под DirectX 11 во всех ценовых сегментах. А огромный уровень энергопотребления и тепловыделения GeForce GTX 480 успел стать хорошей темой для шуток, что на самом деле не очень то и смешно, ведь потребление старшей карты достигает 250 Вт, в то время как ее основной конкурент Radeon HD 5870 ограничивается пиковым значением в 188 Вт. В такой ситуации основным преимуществом GeForce GTX 480 может стать высокий уровень производительности. И оправдает ли новый флагман NVIDIA возложенные на него надежды, мы как раз и постараемся выяснить в нашем тестировании.