7.4.1. Базовые графические термины

7.4.2. Структура современной графическая платы

7.4.3. Характеристики графической платы

7.4.4. Влияние различных характеристик графической карты на ее производительность

7.4.5. Технологии SLI и CrossFire

7.4.5.1. Технология NVIDIA SLI

7.4.5.2. Технология ATI CrossFire

7.4.5.3. Принципы формирования изображения в режимах SLI и CrossFire

7.4.1. Базовые графические термины

Частота обновления (Refresh Rate). Как в кинотеатре или на телевизоре, ваш компьютер симулирует движение на мониторе, выводя последовательность кадров. Частота обновления монитора указывает на то, сколько раз в секунду на экране будет обновляться картинка. Например, частота 75 Гц соответствует 75 обновлениям в секунду.

Пиксель (Pixel). Слово "Pixel" расшифровывается как "picture element" – элемент изображения. Он представляет собой крошечную точку на дисплее, которая может светиться определенных цветом (в большинстве случаев оттенок выводится сочетанием трех базовых цветов: красного, зеленого и синего). Если разрешение экрана составляет 1024x768, то на нем можно заметить матрицу из 1024 пикселей по ширине и 768 пикселей по высоте.

Вершина (Vertex). Все объекты на 3D-сцене состоят из вершин. Вершина – точка в трехмерном пространстве с координатами X, Y и Z. Несколько вершин можно сгруппировать в полигон: чаще всего это треугольник, но возможны и более сложные формы. Затем на полигон накладывается текстура, что позволяет объекту выглядеть реалистично. 3D-куб, показанный на иллюстрации выше, состоит из восьми вершин. Более сложные объекты имеют кривые поверхности, которые на самом деле состоят из очень большого числа вершин.

Пиксель (Pixel)

Вершина (Vertex)

Рисунок 7.38 – Пиксель

Рисунок 7.39 – Вершина

Текстура (Texture)

Шейдер (Shader)

Рисунок 7.40 – Текстура

Рисунок 7.41 – Пиксельные программы-шейдеры позволяет видеокарте выдать эффекты воды

Текстура (Texture) – это просто 2D-картинка произвольного размера, которая накладывается на 3D-объект, чтобы симулировать его поверхность. Например, наш 3D-куб состоит из восьми вершин. До наложения текстуры он выглядит как простая коробка. Но когда мы нанесем текстуру, то коробка становится окрашенной.

Шейдер (Shader). Сегодня существует два вида шейдеров:

- вершинные программы-шейдеры могут изменять или трансформировать 3D-объекты;

- пиксельные программы-шейдеры позволяют менять цвета пикселей на основе каких-либо данных. Представьте себе источник света на 3D-сцене, который заставляет светиться освещаемые объекты ярче, и в то же время, приводит к отбрасыванию тени на другие объекты. Все это реализуется с помощью изменения цветовой информации пикселей.

Пиксельные шейдеры используются для создания сложных эффектов в играх. Например, код шейдера может заставить пиксели, окружающие 3D-меч, ярче светиться. Еще один шейдер может обработать все вершины сложного 3D-объекта и симулировать взрыв. Разработчики игр все чаще прибегают к помощи сложных программ-шейдеров для создания реалистичной графики. Практически любая современная игра с богатой графикой использует шейдеры.

Графическая карта (известна также как графическая плата, видеокарта, видеоадаптер от англ. videocard) – устройство, преобразующее изображение, находящееся в памяти компьютера, в видеосигнал для монитора.

Обычно видеокарта является платой расширения и вставляется в специальный разъем (PCI, AGP, PCI-Express) для видеокарт на материнской плате, но бывает и встроенной в материнскую плату или процессор, иначе говоря, интегрированной.

Современные видеокарты не ограничиваются простым выводом изображения, они имеют встроенный графический микропроцессор, который может производить дополнительную обработку, разгружая от этих задач центральный процессор компьютера.

7.4.2. Структура современной графическая платы

Графический процессор (или GPU - Graphics processing unit – графическое процессорное устройство) – занимается расчетами выводимого изображения, освобождая от этой обязанности центральный процессор, производит расчеты для обработки команд трехмерной графики. Является основой графической платы, именно от него зависят быстродействие и возможности всего устройства. Современные графические процессоры по сложности не уступают центральному процессору компьютера, а зачастую и превосходят его.

Архитектура современного GPU обычно предполагает наличие нескольких блоков обработки информации, а именно:

- блок обработки 2D-графики;

- блок обработки 3D-графики, в свою очередь, разделяющийся на:

- геометрическое ядро (плюс кэш вершин);

- блок растеризации (плюс кэш текстур);

- и др.

Структура современного графического процессора приведена на рис. 7.42 на примере графического чипа AMD R7xx (серия AMD 48xx) на момент 2008 г. наиболее производительного.

Рисунок 7.42 - Структура современного графического процессора на примере графического чипа AMD R7xx (серия AMD 48xx)

Видеоконтроллер отвечает за формирование изображения в видеопамяти, дает команды RAMDAC на формирование сигналов развертки для монитора и осуществляет обработку запросов центрального процессора.

Кроме видеоконтроллера, обычно присутствуют:

- контроллер внешней шины данных (например, PCI или AGP);

- контроллер внутренней шины данных;

- контроллер видеопамяти.

Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается еще и RAMDAC. Современные графические адаптеры (ATI, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.

Видеопамять (рис. 7.44) - кадровый буфер, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные.

Видеопамять бывает нескольких типов, различающихся по скорости доступа и рабочей частоте. Современные видеокарты комплектуются памятью типа DDR, DDR2, GDDR3, GDDR4 и GDDR5. Следует также иметь в виду, что помимо видеопамяти, находящейся на видеокарте, современные графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCIE.

Цифро-аналоговый преобразователь (ЦАП, RAMDAC – Random Access Memory Digital-to-Analog Converter) – служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока – три цифроаналоговых преобразователя, по одному на каждый цветовой канал (красный, зеленый, синий, RGB), и SRAM для хранения данных о гамма-коррекции.

Большинство ЦАП имеют разрядность 8 бит на канал – получается по 256 уровней яркости на каждый основной цвет, что в сумме дает 16,7 млн. цветов (а за счет гамма-коррекции есть возможность отображать исходные 16,7 млн. цветов в гораздо большее цветовое пространство). Для поддержки второго монитора часто устанавливают второй ЦАП. Стоит отметить, что мониторы и видеопроекторы, подключаемые к цифровому DVI выходу видеокарты, для преобразования потока цифровых данных используют собственные цифроаналоговые преобразователи и от характеристик ЦАП видеокарты не зависят.

Графический процессор

Видеопамять

Рисунок 7.43 – Расположение графического процессора

Рисунок 7.44 – Расположение видеопамяти

Видео-ПЗУ (Video ROM) – постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т. п. ПЗУ не используется видеоконтроллером напрямую – к нему обращается только центральный процессор. Хранящийся в ПЗУ видео-BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, а также содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих современных картах устанавливаются электрически перепрограммируемые ПЗУ (EEРROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.

Система охлаждения – предназначена для сохранения температурного режима видеопроцессора и видеопамяти в допустимых пределах.

Видеодрайвер – специальное программное обеспечение, поставляемое производителем видеокарты и обеспечивающего правильную и полнофункциональную работу современного графического адаптера. Видеодрайвер загружается в процессе запуска операционной системы и выполняет функции интерфейса между системой с запущенными в ней приложениями и видеоадаптером. Так же как и видео-BIOS, видеодрайвер организует и программно контролирует работу всех частей видеоадаптера через специальные регистры управления, доступ к которым происходит через соответствующую шину.

Радиаторы

Тепловые трубки

Рисунок 7.45 – Пассивная система охлаждения (радиатор)

Рисунок 7.46 – Пассивная система охлаждения на тепловых трубках

Кулеры (радиатор + вентилятор)

Рисунок 7.47 – Активная система охлаждения (вентилятор)

7.4.3. Характеристики графической платы

Ширина шины памяти, измеряется в битах – количество бит информации, передаваемой за такт. Важный параметр в производительности карты.

Количество видеопамяти, измеряется в мегабайтах – встроенная оперативная память на самой плате, значение показывает, какой объем информации может хранить графическая плата. Практически не влияет на производительность при условии, что памяти более критического значения необходимого для хранения текстур (порядка 256 Мбайт).

Частоты ядра и памяти – измеряются в мегагерцах, чем больше, тем быстрее видеокарта будет обрабатывать информацию.

Техпроцесс – технология печати, указывается характерный размер, измеряемый в нанометрах (нм), современные карты выпускаются по 90-, 80- 65 или 55-нм нормам техпроцесса. Чем меньше данный параметр, тем больше элементов можно уместить на кристалле и тем меньше греется карта.

Текстурная и пиксельная скорость заполнения, измеряется в млн. пикселов в секунду, показывает количество выводимой информации в единицу времени.

Выводы карты – первоначально видеоадаптер имел всего один разъем VGA (15-контактный D-Sub). В настоящее время платы оснащают одним или двумя разъемами DVI или HDMI, либо Display Port. Порты D-SUB, DVI и HDMI являются эволюционными стадиями развития стандарта передачи видеосигнала, поэтому для соединения устройств с этими типами портов возможно использование переходников. Dispay Port позволяет подключать до четырех устройств, в том числе акустические системы, USB-концентраторы и иные устройства ввода-вывода. На видеокарте также возможно размещение композитных и S-Video видеовыходов и видеовходов (обозначаются, как ViVo).

7.4.4. Влияние различных характеристик графической карты на ее производительность

Тактовые частоты имеют прямое и заметное влияние на производительность видеокарт. В нашем примере мы проанализируем видеокарты ATi Radeon X1800 XL и X1800 XT (рис. 7.48) идентичной архитектуры и одинакового 256-битный интерфейса памяти. Различия кроются только в тактовых частотах.

Архитектурные различия (разное число блоков шейдеров). Кроме тактовых частот следует обращать внимание и на архитектуру графического процессора. Сравним видеокарты ATi Radeon X800 XL и X800 GTO (рис. 7.49). Обе они имеют идентичные тактовые частоты и 256-битный интерфейс памяти. Но Radeon X800 XL использует 16 блоков пиксельных шейдеров, а видеокарта X800 GTO, хотя и построена на том же процессоре, но у нее работают только 12 блоков.

Объем видеопамяти памяти. Объем памяти (рис. 7.50) на видеокарте часто используют в качестве индикатора производительности, дабы вводить в заблуждение неискушенных пользователей. В большинстве случаев объем памяти никак не влияет на производительность (если памяти больше определенного, минимально необходимого, количества). Возможно найти примеры, когда объем памяти будет как-то сказываться на производительности, но сравнивать две видеокарты по количеству памяти – некорректно.

Сравнение производительности при разных тактовых частотах

Сравнение производительности при разном числе блоков шейдеров

Рисунок 7.48 – Сравнение

Radeon X1800 XT (GPU 625 МГц, VRAM 750 МГц);

Radeon X1800 XL (GPU 500 МГц, VRAM 500 МГц).

Рисунок 7.49 - Сравнение

Radeon X800 XL (GPU - 16 блоков шейдеров);

Radeon X800 GTO (GPU - 12 блоков шейдеров).

Сравнение производительности при разном объёме памяти

Сравнение производительности при разных интерфейсах памяти

Рисунок 7.50 – Сравнение

ATi Radeon X800 XL (VRAM – 256 МБайт );

ATi Radeon X800 XL (VRAM – 512 МБайт ).

Рисунок 7.51 – Сравнение

ATi Radeon 9700 (VRAM – 256 бит );

ATi Radeon 9500 Pro (VRAM – 128 бит ).

Разрядность интерфейса видеопамяти. Интерфейс памяти не менее важен, чем ее тактовая частота. При прочих равных суженный интерфейс памяти может ощутимо снизить производительность. Особенно это следует учитывать при покупке видеокарт дешевле $100, поскольку многие из них имеют урезанный 64-битный интерфейс, заметно снижающий производительность.

В примере производилось сравнение производительности видеокарт: ATi Radeon 9700 и 9500 Pro (рис. 7.51). Карты используют одинаковые процессоры с восемью пиксельными конвейерами и 128 Мбайт видеопамяти на равных тактовых частотах. Единственное отличие заключается в 256-битном интерфейсе памяти у Radeon 9700 и 128-битном интерфейсе у Radeon 9500 Pro.

Сравнение интерфейса шины. Распространено заблуждение, что старый интерфейс AGP 8x серьезно проигрывает новому PCI Express. В нашем примере сравнивается производительность разных версий видеокарты nVidia GeForce 6800 GT, а именно, под PCI Express и под AGP 8x. Тестирование видеокарт проводилось с помощью 3DMark05, который больше всего зависит от производительности непосредственно видеокарт. Результаты приведены на рис. 7.53.

Как можно видеть, производительность различается очень слабо, особенно если учитывать небольшое превосходство других компонентов платформы PCI Express, на которой тестировалась видеокарта PCI Express. Вполне очевидно, пропускная способность интерфейса AGP 8x не является "узким местом" современных видеокарт.

Сравнение производительности одной видеокарты с двумя, работающими в режиме SLI или CrossFire. Для тестирования использовались видеокарты nVidia GeForce 6800 Ultra (рис. 7.52). Прирост производительности в режиме SLI составил 45%. Однако, вряд ли от перехода на SLI или CrossFire будет получен прирост в 100% от первоначального уровня.

Сравнение одной видеокарты с двумя Сравнение производительности при разных интерфейсах шины

Рисунок 7.52 - Сравнение

2 х nVidia GeForce 6800 Ultra (SLI);

1 х nVidia GeForce 6800 Ultra.

Рисунок 7.53 - Сравнение

nVidia GeForce 6800 GT (PCI-E 16x);

nVidia GeForce 6800 GT (AGP 8x).

7.4.5. Технологии SLI и CrossFire

7.4.5.1. Технология NVIDIA SLI

NVIDIA SLI – технология, позволяющая использовать несколько видеокарт для обработки трехмерного изображения. Поддержка чипсетов для работы со SLI осуществляется программно. Видеокарты должны принадлежать к одному классу, при этом версия BIOS плат и их производитель значения не имеют. В последнее время получила распространение система Quad SLI (рис. 7.54, 7.56, 7.57) – предполагает объединение в SLI-систему двух двухчиповых плат и система SLI 3x (рис. 7.55) – предполагает объединение в SLI-систему трех графических плат. Таким образом, получается, что в построении изображения работают 4 чипа.

Рисунок 7.54 – Система SLI

Рисунок 7.55 – Система SLI 3x

Рисунок 7.56 – Объединение видеокарт в систему SLI с помощью перемычки

Рисунок 7.57 – Перемычка SLI

SLI-систему можно организовать двумя способами:

- с помощью специального мостика;

- программным путем (в данном случае нагрузка на шину PCI-E возрастает, что плохо сказывается на производительности).

Для построения компьютера на основе SLI необходимо иметь:

- материнскую плату с двумя и более разъемами PCI Express, поддерживающую технологию SLI.

- мощный блок питания;

- видеокарты GeForce 6/7/8/9 или Quadro FX с шиной PCI Express;

- мост, объединяющий видеокарты.

7.4.5.2. Технология ATI CrossFire

ATI CrossFire – технология, позволяющая одновременно использовать мощности двух и более видеокарт Radeon для построения трехмерного изображения. Каждая из видеокарт, используя определенный алгоритм, формирует свою часть изображения, которое передается в чип Composing Engine мастер-карты, имеющий собственную буферную память. Этот чип объединяет изображения каждой видеокарты и выводит финальный кадр.

Видеокарты должны быть одной серии, но необязательно одной модели. При этом быстродействие и частота CrossFire-системы определяется характеристиками чипа наименее производительной видеокарты.

Для построения компьютера на основе CrossFire необходимо иметь:

- материнскую плату с двумя и более разъемами PCI Express x16 с чипсетом AMD или Intel определенной модели;

- мощный блок питания;

- видеокарты с поддержкой CrossFire.

CrossFire-систему можно организовать тремя способами:

-Внешнее соединение – видеокарты объединяются с помощью кабеля, при этом карта, на которой распаян чип Compositing Engine, называется мастер-картой (Master card). Остальные видеокарты могут быть любыми в пределах серии.

-Внутреннее соединение – видеокарты соединены посредством гибкого мостика. Драйвером определяется, какая из них будет мастер-картой.

-Программный метод – видеокарты не соединяются, обмен данными идет по шине PCI Express x16, при этом их взаимодействие реализуется с помощью драйверов. Недостатком данного способа являются потери в производительности на 10-15% по сравнению с двумя вышеназванными способами.

7.4.5.3. Принципы формирования изображения в режимах SLI и CrossFire

Ниже приведены алгоритмы многопоточной обработки видеоданных, применяемые компанией AMD, а так же даны аналоги данных алгоритмов компании nVidia.

Super Tiling (рис. 7.58). Картинка разбивается на квадраты 32x32 пикселя и принимает вид шахматной доски. Каждый квадрат обрабатывается одной видеокартой.

Scissor (рис. 7.59). Изображение разбивается на несколько частей, количество которых соответствует количеству видеокарт в связке. Каждая часть изображения обрабатывается одной видеокартой полностью, включая геометрическую и пиксельную составляющие. Аналог в nVidia SLI – алгоритм Split Frame Rendering.

Alternate Frame Rendering (рис. 7.60). Обработка кадров происходит поочередно: одна видеокарта обрабатывает только четные кадры, а вторая – только нечетные. Однако, у этого алгоритма есть недостаток. Дело в том, что один кадр может быть простым, а другой сложным для обработки. Этот алгоритм, запатентованный ATI еще во время выпуска двух чиповой видеокарты, используется также в nVidia SLI.

SuperAA. Данный алгоритм нацелен на повышение качества изображения. Одна и та же картинка генерируется на всех видеокартах с разными шаблонами сглаживания. Видеокарта производит сглаживание кадра с некоторым шагом относительно изображения другой видеокарты. Затем полученные изображения смешиваются и выводятся. Таким образом, достигается максимальные четкость и детализованность изображения. Доступны следующие режимы сглаживания: 8x, 10x, 12x и 14x.

Рисунок 7.58 – Схема алгоритма Super Tiling

Рисунок 7.59 – Схема алгоритма Scissor

Рисунок 7.60 – Схема алгоритма Alternate Frame Rendering