Архитектура GF100
Если последние решения AMD на базе Cypress являются развитием предыдущего поколения видеокарт, то NVIDIA подошла к процессу создания новой архитектуры более радикально, исходя из требований последнего API и его возможностей. Новый GPU получил название GF100. Аббревиатура GF указывает, что графический (Graphics) чип базируется на архитектуре Fermi.
Аналогично предшественникам на базе G80 и GT200 в основе нового GPU лежат несколько кластеров GPC (Graphics Processing Cluster), состоящих из группы потоковых мультипроцессоров (Streaming Multiprocessors). Полноценный чип включает четыре кластера по четыре мультипроцессора, каждый из которых в свою очередь содержит 32 CUDA-ядра. В итоге мы имеем 512 вычислительных блоков (CUDA cores). Но не случайно мы использовали слово «полноценный», ведь итоговый вариант GF100, на котором базируется топовый нынче графический ускоритель GeForce GTX 480, содержит лишь 480 активных CUDA-ядер, лишившись целого мультипроцессорного блока. А младшему GeForce GTX 470 достались уже 448 потоковых процессоров.
Кроме 32 CUDA-ядер мультипроцессор содержит блок целочисленных вычислений и блок для вычислений с плавающей запятой. Сложные операции выполняются блоками специальных фукций SFU (Special Function Units). Еще 16 блоков LD/ST служат для загрузки и хранения данных.
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-кэша более гибкая, чем применявшаяся ранее «раздельная», и позволяет эффективнее использовать общий объем памяти в зависимости от потребностей конкретных задач и вычислительных блоков.
Кроме того, кластеры GPC дополнительно к четырем мультипроцессорным массивам имеют свои движки растеризации — Raster Engine, позволяющие параллельно с четырьмя специальными блоками PolyMorph Engine, отвечающими за тесселяцию и выборку вершин, поднять скорость обработки геометрии.
Претерпели изменения и блоки 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 возможно будет реализовать изменения геометрии объектов в режиме реального времени, например, получить настоящие дырки от пуль на поверхностях.
Именно с учетом всех этих новых возможностей 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.
Последние видеоадаптеры AMD могут выводить изображение сразу на три монитора, а специальные Eyefinity Edition-версии на шесть. Своеобразным ответом на это со стороны калифорнийской компании стала возможностей создания мультимониторной конфигурации (на базе трех дисплеев) для 3D-режима. Реализовать новую технологию 3D Vision Surround возможно лишь на SLI системе из двух или трех видеокарт новой серии. Учитывая рост системных требований при включении 3D-режима, такой подход вполне понятен — одна карта просто не в состоянии обеспечить нормальную производительность в современных играх на трех мониторах с разрешением до 1920х1080.
Подытоживая все вышесказанное, можно отметить, что чип 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 возложенные на него надежды, мы как раз и постараемся выяснить в нашем тестировании.