On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Революция, имя которой - GeForce3

Макс Курмаз

Компания nVidia в представлении не нуждается. Все мы прекрасно знаем, кто лидирует в области игровых 3D-ускорителей. Если вы интересуетесь новостями мира hardware, то наверняка слышали о так называемом "шестимесячном плане" nVidia, суть которого - выпускать новый продукт через каждые шесть месяцев. В августе 2000 года мир ожидал объявления очередного графического чипа, слухи и предположения о котором уже вовсю обсуждались на форумах. Однако nVidia решила представить всего лишь разогнанный NV15, он же GeForce2 Ultra. Да, это мощный 3D-ускоритель, заметно превосходящий стандартный GeForce2 GTS, но новинкой его назвать никак нельзя. Стало очевидно, что NV20, следующий чип, будет отложен еще на полгода - до февраля.

Презентация видеокарты GeForce3 состоялась 22 февраля на выставке MacWorld Expo в Токио. Заочно поприсутствовать на ней мог любой желающий, так как видеозапись этого события была выложена в Интернет. Я, конечно, не мог упустить такой возможности. Речь президента Apple Стива Джобса особого интереса для меня не представляла, так как она, в общем, сводилась к одному слову - "amazing". Зато на презентации выступал "монстр графических движков", "живая легенда" Джон Кармак из ID Software. Расхваливая возможности нового чипа, Джон заметил, что его не следовало называть "GeForce3". В том смысле, что число нововведений достигло того критического предела, при котором вместо порядкового номера нужно давать новое имя. Почему?

Совершенно новый чип
Потому, что при разработке GeForce3 инженеры nVidia применили новый для себя подход. Ранее производительность улучшалась за счет "грубой силы": наращивалась вычислительная мощь, повышались частоты, удваивались конвейеры и вычислительные блоки, а архитектура в целом оставалась прежней. Возрастал только fillrate, то есть скорость заполнения пикселями трехмерной сцены. Поскольку технологии изготовления микросхем имеют определенный предел, видеокарты nVidia вскоре потеряли сбалансированность. Появился эффект недостаточной пропускной способности шины памяти, когда дальнейшее повышение производительности сдерживается низкой скоростью поступления данных.
Особенно это стало заметно после выхода видеокарт ATI Radeon. Они базируются на чипе Rage6C, у которого число 3D-конвейеров вдвое меньше, чем у GeForce2 (NV15). Однако Radeon отнюдь не вдвое отстает от соперника, а в некоторых случаях способен вплотную к нему приблизиться. А все потому, что инженеры ATI с самого начала ориентировались на улучшение баланса и нейтрализацию "узких мест" в архитектуре.
GeForce3 стал первой серьезной попыткой улучшения архитектуры для достижения лучшего баланса. Кроме того, в нем появились новые блоки, дающие разработчикам возможность задействовать множество ранее недоступных возможностей. О них и пойдет речь в этой статье.

Характеристики
Перечислю основные параметры чипа NV20:
 технология - 0.15 мкм;
 57 млн транзисторов;
 700 контактов;
 потребляет 15 Ватт;
 тактовая частота первых версий чипа - 200 МГц;
 интерфейс памяти - 128-битный DDR (эффективность 256-битного интерфейса);
 частота памяти - 230 (460 DDR) МГц;
 частота RAMDAC - 350 МГц;
 число конвейеров - 4;
 число текстурных модулей - по два на конвейер;
 максимальное разрешение - 2048x1536@75Hz;
 максимальный размер текстур - 4096x4096@32bit;
Если по этим данным сравнить GeForce3 с предшественником - GeForce2 Ultra, то никаких преимуществ у первого как бы и нет. То же число конвейеров и блоков текстурирования, а частоты даже уменьшены. По количеству "грубой силы" новый чип явно недотягивает до ожидаемого уровня. Повторяю - для nVidia это нетипично. Однако такое большое количество транзисторов (больше, чем у Pentium-4) наводит на мысль о значительном усложнении архитектуры. Да, так оно и есть - GeForce3 относится к новому поколению 3D-ускорителей. Хотя бы потому, что он - первый полностью программируемый графический процессор.

GPU - это Graphics Processing Unit
Когда был объявлен GeForce256, nVidia утверждала, что это первый в мире графический процессор - GPU. Однако в отличие от центрального процессора - CPU, у него практически отсутствовала возможность настоящего программирования. Конечно, определенный набор операций он мог выполнять, но этот набор был жесткого задан разработчиками чипа, а не самими программистами. Операции аппаратного преобразования координат, освещения (блок T&L) и комбинирования текстур (блок NSR - растеризатор) не всегда подходили для тех задач, которые ставили перед собой разработчики игр. Поэтому полноценная поддержка T&L до сих пор встречается нечасто.
С выходом GeForce3 ситуация меняется коренным образом. Технология nfiniteFX (от двух слов - Infinite и Effects) предусматривает наличие двух новых механизмов - Vertex Processor и Pixel Processor, каждый из которых позволяет с помощью набора низкоуровневых команд создавать всевозможные спецэффекты, число которых (утверждает nVidia) бесконечно.
Vertex Processor работает на этапе преобразования координат вершин треугольников (вертексов) в пригодную для последующей обработки форму. С помощью набора команд вертексного процессора разработчики могут создавать эффекты освещения, морфинга, анимации по ключевым кадрам и многое другое. Чтобы создать, например, одну фазу анимации, им достаточно указать начальную и конечную координаты, а все остальное рассчитает GPU. Пример достаточно условный, но идея, я думаю, понятна.
Также впервые 3D-ускоритель может работать не только с полигонами, но и с кривыми второго и более высокого порядка. Разработчику не нужно заботиться о разбиении криволинейной поверхности на составляющие треугольники - это сделает Vertex Processor с заданной степенью точности.
Pixel Processor - дальнейшее развитие технологии NSR (nVidia Shading Rasterizer). Процесс наложения нескольких текстур (например, для получения освещения или объема) полностью программируется, позволяя комбинировать до восьми различных текстур с разных линий конвейера. Кроме того, пиксельный процессор может работать с текстурами, задающими не только цвет, но и другие свойства поверхности: отражающую способность, например, или рельеф. Особенную пользу это приносит при имитации водной поверхности - GeForce3 может моделировать воду в реальном времени, что и демонстрируется на оптимизированных под него бенчмарках.
Все вышеперечисленные возможности реализуются с помощью набора команд интерфейса DirectX 8, который специально разрабатывался для 3D-ускорителей нового поколения. Видеокарты, не имеющие полной аппаратной поддержки DirectX 8 (а это все, кроме GeForce3), смогут реализовывать вертексные операции средствами процессора, а пиксельные операции им будут недоступны. Интерфейс OpenGL тоже не остался в стороне: в его состав недавно были добавлены все необходимые расширения.

GeForce3

Radeon DDR

Разница

GeForce2 MX

Quake3 Arena (OpenGL)

 

 

 

 

640x480x16bit

118.5

108.5

9%

119.8

1280x1024x16bit

103.9

47.6

118%

51.5

1280x1024x32bit

97

45.9

111%

32.2

1600x1200x16bit

84.3

 

1600x1200x32bit

71.7

 

Expendable (DirectX)

 

 

 

 

640x480x16bit

62.4

66

-5%

66.2

1280x1024х16bit

60.5

61.3

-1%

62.1

1280x1024x32bit

60.3

60

0%

43

3DMark2000 (DirectX 7)

 

 

 

 

CPU Speed

453

403

12%

432

640x480x16bit

6733

6227

8%

6589

1280x1024x16bit

5824

3459

68%

3239

1280x1024x32bit

5308

3066

73%

2059

3DMark2001 (DirectX 8)

 

 

 

 

640x480x16bit

4801

3126

54%

1024x768x16bit

4340

2738

59%

1024x768x32bit

4226

2666

59%

Молниеносная архитектура памяти
Таков перевод еще одной архитектурной новинки, впервые примененной в GeForce3. Lightspeed Memory Architecture (LMA) - набор технологий, призванных скомпенсировать невысокую (по технологическим причинам) производительность шины локальной видеопамяти. Как я уже упоминал, основной недостаток существовавших до GF3 графических чипов nVidia - отсутствие баланса между графическим ядром и подсистемой памяти. Скорость в 16-битных видеорежимах намного превышала скорость в 32-битных, поскольку память просто не справлялась с возложенной на нее нагрузкой по выдаче огромных объемов данных. GeForce3 имеет несколько механизмов, призванных увеличить эффективность работы с памятью.
Crossbar Memory Controller - совершенно новый принцип организации шины памяти. GeForce3 имеет в своем составе не один 128-битный контроллер, а четыре 32-битных, каждый из которых работает независимо от соседей. Зачем это нужно? Для оптимизации обращений к памяти. Если чип запрашивает два блока данных по 32 бита, расположенных в памяти не подряд, он получит их сразу - от двух контроллеров. Ждать, пока сначала будет прочитано одно 256-битное слово, а потом - другое, уже не нужно.
Подобная архитектура особенно важна при обработке сильно детализированных трехмерных сцен, когда каждый объект состоит из множества мелких (размером в пару пикселей) треугольников. Чтобы получить текстуру для двух пикселей, не придется вхолостую прогонять по шине большие объемы данных.
Кроме нового контроллера, были использованы кэши большого размера, способные удовлетворять запросы работающих конвейеров без обращения к шине. Точные размеры кэшей и механизмы их работы не уточняются, но об их наличии косвенно говорит большое количество использованных транзисторов.
Visibility Subsystem - набор методов для повышения эффективности работы с Z-буфером. Как известно, каждый объект на экране имеет третью координату - Z, задающую удаление его от наблюдателя. В соответствии с ней объекты отрисовываются на экране, начиная с самых удаленных. Очевидно, что некоторые из них полностью закрываются другими и совершенно не видны. Но 3D-ускоритель все равно тратит на них драгоценное время, "честно" заполняя текстурами. Это явление называется overdraw. Коэффициент overdraw в современных играх составляет от 1.3 до 3.5 в зависимости от количества объектов.
Впервые технологию оптимизации Z-буфера применила ATI, назвав ее HyperZ. Именно благодаря ей Radeon в высоких разрешениях способен поспорить с GeForce2. В GeForce3 тоже применяется такая оптимизация. Z-Occlusion Culling - механизм отбрасывания невидимых объектов, исключения их из постановки на обработку. Каким именно методом это делается - точно не известно. Скорее всего, используется что-то вроде метода Hierarchical-Z, применяемого в видеокартах ATI Radeon. То есть Z-буфер разбивается на укрупненные блоки низкого разрешения, и решение о посылке того или иного треугольника на обработку принимается на основе быстрой, но приблизительной проверки на видимость.
Механизм компрессии Z-буфера, применяемый в Radeon, нашел воплощение и в ядре GeForce3. По утверждениям разработчиков чипа, он позволяет вчетверо уменьшать объем данных в этом буфере.
Зато быстрая очистка (Fast Z-clear) используется только в Radeon. nVidia посчитала ненужным создавать что-либо подобное. Впрочем, ей виднее.

Сглаживать нужно быстрее
Самым заметным недостатком картинки, генерируемой 3D-ускорителем, можно назвать эффект "лестницы" (aliasing) на краях треугольников, из которых состоит изображение. Это неизбежное явление, связанное с тем, что экран монитора состоит из прямоугольной матрицы пикселей, и линии на нем получаются ломанными. Для того чтобы сгладить края объектов, нужно либо повысить разрешение (тогда пиксели станут меньше), либо применить метод FSAA (Full Screen Anti-Aliasing), при котором цвета соседних пикселей усредняются по всему экрану. Все предшествующие 3D-ускорители использовали механизм суперсэмплинга. Это решение задачи "в лоб": в буфере строится изображение с увеличенным в несколько раз разрешением по вертикали, горизонтали или сразу по обоим направлениям. После этого цвет пикселя (сэмпла) получается усреднением цветов соседних пикселей на укрупненном изображении. При этом возникают два неприятных эффекта: во-первых, изображение заметно "размазывается", во-вторых, резко падает скорость, так как фактически 3D-ускоритель работает в более высоком разрешении.
GeForce3 использует два новых механизма. Первый - алгоритм с непроизносимым названием Quincunx. Суть - использование не простой 2- или 4-сэмпловой маски соседних пикселей, а 5-сэмпловой. Т.е. берется блок 3х3, и результирующее значение вычисляется на основе пяти, а не девяти пикселей этого блока. В итоге при затратах как на 2-сэмпловый FSAA мы получаем качество 4-сэмплового FSAA.
Второй алгоритм - мультисэмплинг, который nVidia назвала HRAA (High-Resolution Anti-Aliasing). В его основе лежит генерация того же изображения с высоким разрешением, только цвет пикселей, которые в результате все равно сольются в один, не вычисляется каждый раз заново. Если группа пикселей, которая должна быть свернута в один, лежит внутри треугольника, то она заполняется одним и тем же значением цвета. Если же группа лежит на границе, она рассчитывается обычным образом. Тем самым количество расчетов при проведении HRAA сокращается в несколько раз, а качество улучшается, так как внутри треугольников текстуры не сглаживаются.

Подведем итог
Итак, количество новых алгоритмов и технологий внутри GeForce3 заложено немалое. Что именно и когда даст нам преимущества - вот в чем вопрос:
 nfiniteFX требует оптимизации графических движков под DirectX 8 или новые расширения OpenGL. Если разработчик не воспользовался возможностью запрограммировать вертексные и пиксельные операции и использовал центральный процессор, то никаких преимуществ GeForce3 нам не даст.
 Crossbar Memory Controller дает эффект при обработке большого количества полигонов, т.е. действует только в определенные моменты.
 Visibility Subsystem существенно сокращает нагрузку на память, где и размещен Z-буфер, что важно для высоких разрешений и сложных текстур.
 HRAA и Quincunx дают существенный прирост производительности и качества при включении полноэкранного сглаживания. Пожалуй, это и есть реальное, ощутимое в любых играх преимущество GeForce3.
Нужно ли начинать копить деньги на новую видеокарту, за которую придется выложить от 400 до 500 "зеленых"? В последнее время Интернет-сайты часто цитируют Тома Свини, ведущего программиста компании Epic (Unreal и Unreal Tournament): "Если вы - разработчик игр, GeForce3 вам нужен прямо сейчас, так что переселяйтесь поближе к своему любимому магазину, чтобы купить видеокарту как только она появится на прилавке. Для геймеров дело обстоит не так остро. Если вас привлекает идея поиметь видеокарту за $500, берите GeForce3. Если же цена для вас имеет значение, всегда можно подождать пару месяцев. Со временем цены пойдут вниз, а игры, по-настоящему использующие преимущества этой видеокарты, не появятся, по крайней мере, еще полгода". От себя добавлю, что велика вероятность того, что в скором времени мы увидим слегка урезанную версию GeForce3 - этакий GF3 MX, который будет стоить раза в полтора-два меньше и обладать теми же возможностями.

GeForce3 в Беларуси
Посетители выставки TIBO'2001 (Минск) имели возможность познакомиться с образцом видеокарты на чипе GeForce3. Это была Gigabyte GF-3000D, инженерный образец. Эта видеокарта - настоящий кочевник. Она приехала в Беларусь с немецкой выставки CeBIT, проходившей в Ганновере. Из Минска - в Москву, на Comtek'2001. Путешествия по миру не повлияли на ее работоспособность, и мне удалось успешно провести на ней серию тестов.
Буквально пару слов об этой видеокарте. Она выполнена по стандартному ("референсному") дизайну nVidia, так что единственное, что отличает Gigabyte GF-3000D от собратьев - синий цвет печатной платы. Лично для меня некоторой неожиданностью стало появление на видеокарте катушек индуктивности. В остальном - очень похоже на GeForce2 с 64 Мб памяти. На GF-3000D установлено 8 чипов EliteMT 3.8 мс, что означает гарантированную работу на частоте 266 МГц (или 533 МГц, если учитывать то, что это DDR). Но работала память на 230, а чип - на 200 МГц, то есть с некоторым запасом. Пробовать на разгон инженерный образец я не решился, тем более что он был лишен радиаторов на чипах памяти, а графический контроллер охлаждался непривычно слабым вентилятором.
Еще одна особенность этой видеокарты - наличие двух дополнительных выходов. DVI-разъем (для цифровых ЖК-мониторов) был размещен на самой плате, а ТВ-выход был добавлен в виде дочерней платы. Получилось своеобразное "всеядное" решение, обычно называемое "мультимедийным комбайном". Для полноты картины не хватало только ТВ-тюнера.
Скажу сразу - я не проводил серьезного исследования влияния тех или иных "фич" нового 3D-ускорителя на общую производительность. Во-первых, видеокарта была оснащена инженерным чипом. Серийные GeForce3 будут иметь на борту чип ревизии A5, но не A3, как в моем случае. Во-вторых, до сих пор не начаты продажи видеокарт (по крайней мере, на момент тестирования и написания статьи), а значит, нет и официальных драйверов с поддержкой GeForce3. Поэтому результаты тестирования заведомо некорректные. Но общую тенденцию проследить можно.
Обратите особое внимание на то, насколько мало снижается производительность при переключении глубины цвета. Очевидно, что архитектура у GeForce3 сбалансирована гораздо лучше, чем это было у предыдущих чипов nVidia. А если использовать программы, оптимизированные под DirectX 8 (3DMark'2001), то тут новому чипу вообще нет равных.
Заметьте, что Quake3 Arena, игра, которая едва шевелилась при появлении на свет, сегодня без проблем работает в самом высоком разрешении. Ну ничего, Джон Кармак уже готовит игру, способную заставить отчаянно "тормозить" самые крутые компьютеры. На то он и "монстр движков".

GeForce3 - эволюция или...
...Или, скорее, революция. Множество нововведений, радикально улучшающих архитектуру чипа. Множество новых возможностей для разработчиков. Высокая производительность, которую путем разгона можно нарастить еще немного. Отлаженные, "вылизанные" драйверы. Осталось только дождаться, когда цена снизится до разумного уровня.



Компьютеры - видео