Архивы: по дате | по разделам | по авторам

Сквозь огонь

Архив
автор : Сергей Озеров   30.06.2005

У "многопроцессорных" графических ускорителей много недостатков. Они очень дороги, требуют специального оборудования, неидеально масштабируются, потребляют чересчур много энергии и рассеивают уйму тепла. Обо всем этом я уже писал в "Компьютерре" несколько месяцев назад. Однако помимо "реальной", "практической" пользы существует еще и такое понятие, как "имидж" и "репутация". И практика убедительно доказывает, что когда перед пользователем встает выбор между даже более быстрым Radeon и менее быстрым, зато поддерживающим технологию SLI решением Nvidia, пользователь отдает предпочтение последнему. Технология SLI очень "наглядна" и доступна для понимания: ставим вторую видеокарту - производительность вырастает вдвое. Инерция мышления потребителей велика - сейчас покупают даже неплохие, но бесстыдно дорогие видеокарты Gigabyte 3D1. Просто потому, что они двухпроцессорные. А то, что суммарная производительность (без учета неидеальной масштабируемости) процессоров и оперативной памяти этих плат уступает производи

У "многопроцессорных" графических ускорителей много недостатков. Они очень дороги, требуют специального оборудования, неидеально масштабируются, потребляют чересчур много энергии и рассеивают уйму тепла. Обо всем этом я уже писал в "Компьютерре" несколько месяцев назад. Однако помимо "реальной", "практической" пользы существует еще и такое понятие, как "имидж" и "репутация". И практика убедительно доказывает, что когда перед пользователем встает выбор между даже более быстрым Radeon и менее быстрым, зато поддерживающим технологию SLI решением Nvidia, пользователь отдает предпочтение последнему.

Технология SLI очень "наглядна" и доступна для понимания: ставим вторую видеокарту - производительность вырастает вдвое. Инерция мышления потребителей велика - сейчас покупают даже неплохие, но бесстыдно дорогие видеокарты Gigabyte 3D1. Просто потому, что они двухпроцессорные. А то, что суммарная производительность (без учета неидеальной масштабируемости) процессоров и оперативной памяти этих плат уступает производительности одиночной видеокарты меньшей стоимости - фактор уже второстепенный. И пусть наш GeForce 6800 не столь быстр, как конкурирующий с ним Radeon X850[Рискуя навлечь на себя гнев поклонников линейки GeForce, все же замечу, что именно так обстоят дела в секторе Hi-End-ускорителей], - зато мы в любой момент можем добавить к нему вторую такую же видеокарту - и получим самую быструю графическую подсистему в мире. Звание производителя "самых быстрых видеокарт" дорогого стоит.

Словом, пусть даже востребованность SLI с чисто практической точки зрения сравнительно невелика[Простой пример: допустим, полгода назад мы купили за 500 долларов видеокарту GeForce 6800 Ultra с прицелом еще через полгода (то есть сейчас) купить вторую, чтобы объединить ее с первой в режиме SLI. Однако нынче вдруг выясняется, что где-то через месяц должны появиться видеокарты на основе графического чипа G70 (GeForce 7800) с производительностью одной видеокарты, соответствующей производительности пары 6800 Ultra в режиме SLI, и по цене, не слишком сильно отличающейся от цены недостающей нам 6800 Ultra. То есть выходит, проще продать уже имеющуюся 6800U, доплатить куда меньшие деньги и купить 7800 Ultra с той же производительностью, но с меньшим тепловыделением, шумом и требованиями к системе], но пропустить вперед по этому показателю злейшего конкурента ATI, конечно же, не могла. Хоть и с опозданием на год, но адекватный ответ на SLI все-таки последовал: 31 мая, в день открытия тайваньской выставки Computex, прошел грандиозный анонс технологии CrossFire.

Асимметричный ответ

Опыта в создании multi-GPU-решений канадцам не занимать: свои двухпроцессорные видеокарты Rage Fury MAXX компания выпускала еще пять лет назад, в те времена, когда у Nvidia даже в черновиках ничего подобного не было. Правда, Rage MAXX по ряду причин с треском провалился, а проект "сдвоенной" Rage 256 был закрыт, однако позднее процессоры Radeon 8500 и Radeon 9700 использовались в профессиональных специализированных ускорителях для военных (типа Evans & Sutherland simFUSION 5000 и 6000). В общем, ATI было на чем учиться и отлаживать свои многопроцессорные решения[Nvidia, правда, тоже наверняка использовала в своей SLI разработки, доставшиеся по наследству от 3dfx. А последняя контора на этих "многопроцессорниках" вообще собаку съела, поскольку только на них в эпоху своего заката и ориентировалась].

Что же в конечном счете получилось? Канадцы не стали слепо копировать решение конкурента (специально сконструированный для работы в режиме многопроцессорности графический чип), а пошли "своим путем", использовав стандартные GPU, но дополнив их специальным чипом Composing Engine, объединяющим результаты работы процессоров.

Composing Engine - это специализированный программируемый процессор, позволяющий обрабатывать видеопотоки, поступающие от графических процессоров, установленных в системе. Можно, например, чередовать потоки от разных графических процессоров (четные линии от одного, нечетные - от другого) - тогда мы получим точный аналог 3dfx Scan Line Interleaving. А можно - суммировать их (считать среднее арифметическое между вычисленными каждым ускорителем картинками), внося незначительные изменения в картинку, генерируемую каждым GPU, - тогда мы можем получить особенно качественный FSAA-антиалиасинг либо "бесплатно" реализовать некоторые спецэффекты типа Motion Blur (визуальное размывание контуров быстро движущегося объекта). На худой конец, Composing Engine может просто накапливать кадры, независимо отрендеренные каждым из GPU, и выдавать их на выход по мере надобности - в итоге получаем аналог технологии MAXX[Подробнее об SLI и Rage MAXX можно прочитать в моей статье, посвященной технологии SLI, см. выше. Заодно напомню, что RAMDAC (RAM Digital-to-Analog-Converter), фигурирующий на верхнем рисунке, — это цифро-аналоговый преобразователь, который непрерывно преобразует содержимое специальной области памяти (фрейм-буфера) в аналоговый видеосигнал, соответствующий картинке, хранящейся в этом буфере. Подробнее о технологиях, используемых в 3D-ускорителях, см. "КТ" #566]. Достаточно только написать соответствующие драйверы. Короче говоря, одна из главных прелестей CrossFire в том, что, программируя Composing Engine по-разному, можно получать принципиально разные варианты использования технологии.

На сегодняшний день Composing Engine умеет работать в следующих режимах:

  • SuperTiling - изображение разбивается на квадраты 32x32 (тайлы, Tiles), которые ускорители равномерно распределяют между собой (для случая двух ускорителей распределение напоминает обычную шахматную доску, см. нижний рисунок). Похожим образом работали ускорители 3dfx Voodoo в режиме SLI. Это простейший способ очень точно распределить нагрузку на блоки закраски современных GPU; однако расплата за простоту - полное отсутствие распараллеливания обработки геометрических данных в выводимой на экран сцене и необходимость использования строго одинаковых по производительности GPU.
  • Scissor (Slicing) - изображение делится на несколько широких полос, и каждый из ускорителей рендерит "свою" полосу. Именно таким образом обычно работает, например, технология SLI от Nvidia. Размер полос динамически изменяется драйвером для обеспечения равномерной загрузки. Плюсы - возможность хотя бы частично распараллелить обработку геометрических данных и использовать неодинаковые GPU; минусы - сложность реализации и меньшая точность в балансировке нагрузки на блоки закраски.
  • Alternate Frame Rendering - ускорители распределяют между собой обязанности по рендерингу различных кадров, и каждый ускоритель рендерит "свой" кадр. Этот вариант использовали видеокарты ATI Rage MAXX. Плюсы - идеальное распараллеливание геометрических вычислений (для каждого кадра их можно проводить отдельно) и почти идеальное распараллеливание нагрузки на блоки закраски GPU. Минусы - необходимость буферизации рендеринга на достаточно большое число кадров вперед и, соответственно, возникновение заметных задержек реакции системы на действия пользователя[Эти задержки получаются как минимум не меньшими, чем у системы из одной видеокарты. Реально — даже худшими. То есть если на 15 fps у вас прицел оружия перемещается ощутимыми рывками и заметно отстает от реального положения мыши, то использование Alternate Frame Rendering никоим образом эту ситуацию не улучшит. Просто если раньше курсор двигался рывками и его невозможно было быстро навести на неприятеля, то теперь он будет перемещаться плавно, но по-прежнему «тормознуто», с ощутимой «инерцией», постоянно отставая от истинного положения курсора мыши].
  • Super AA - CrossFire используется для реализации уже упоминавшегося "бесплатного" полноэкранного сглаживания. Сегодняшние видеокарты при рендеринге в режиме антиалиасинга позволяют выбирать, какие точки внутри каждого пиксела использовать для вычисления его цвета; соответственно, заставив вычислять один GPU цвет пиксела по одним точкам, другие GPU - по другим и усреднив полученные значения, - мы добьемся полноэкранного сглаживания с пропорционально увеличенной "степенью антиалиасинга" - числом точек, учитывающихся при определении цвета каждого пиксела.

    В качестве "интерконнекта" между GPU и Composing Engine выступает стандартная цифровая графическая шина DVI (Digital Video Interface), обычно используемая для подключения к видеокарте цифровых устройств отображения видео, например LCD-мониторов. Благо интерфейс DVI-out (и даже не один) давным-давно интегрируется в любой GPU. И в этом - второе сильное место технологии, поскольку Composing Engine вовсе не обязательно размещать на всех платах - достаточно взять энное количество самых обыкновенных видеокарт и объединить их с помощью платы, на которой CE будет установлен. Нет никаких принципиальных ограничений на количество одновременно работающих GPU (CrossFire, как заявлено, может объединять до 32 графических процессоров). Наконец, даже не обязательно использовать GPU производства самой ATI или одинаковые GPU: технология проста и абсолютно универсальна.

    Практика

    Итак, что требуется для организации CrossFire-системы? Энное количество видеокарт, соответствующее количество графических слотов в системе (и желательно - одинаково быстрых, дабы не пришлось вспоминать пословицу про караван, скорость движения которого определяется самым медленным верблюдом) и чип Composing Engine. В принципе, самым логичным и очевидным решением (с моей точки зрения) должен был бы стать выпуск Composing Engine в виде самостоятельной платы расширения (скажем, для интерфейса PCI Express x1 или даже для старого доброго PCI), к которому кабелями DVI подключались бы все установленные в систему стандартные графические ускорители; однако ATI решила поступить иначе и объявила о выпуске специальных графических ускорителей CrossFire edition, объединяющих в себе обычную видеокарту и Composing Engine. Эта карта становится "ведущей", остальные - "ведомыми"; в текущем варианте допускается только одна ведущая и одна ведомая видеокарты.

    В принципе, CrossFire не ограничен требованиями "одинаковости" используемых видеокарт, однако в данной конкретной реализации Composing Engine почему-то умеет работать только с идентичными GPU[Справедливости ради надо сказать, что большинство режимов рендеринга (за исключением Scissor) требуют, чтобы задействованные GPU были одинаковыми — в противном случае скорость работы всей системы будет определяться скоростью самого медленного GPU, входящего в нее. И при этом Scissor почему-то является для ATI «нелюбимым» режимом рендеринга — в текущих драйверах (см. далее) ATI старается по мере возможности использовать для игр режим SuperTiling]. А поскольку видеокарты CR Edition выпущены пока только для Radeon X800 и Radeon X850, то и использовать CrossFire на первых порах придется только с видеокартами на основе этих графических процессоров. Позднее обещаны CrossFire-варианты и для Radeon X700; однако в целом ситуацию, если честно, следовало бы назвать сложной: вся "универсальность" новой технологии, по сути дела, свелась к тому, что ATI пока сумела лишь догнать в вопросах совместимости Nvidia. Ну и что, что у последней требуется, чтобы обе видеокарты поддерживали технологию SLI? У нее-то этой технологией уже оснащены все видеокарты, вплоть до верхней границы сектора Mainstream. Правда, одно большое преимущество в этом вопросе у канадской технологии все-таки есть: в отличие от Nvidia, в режиме CrossFire можно безбоязненно использовать видеокарты разных производителей.

    Теоретически допустимо использование многопроцессорных графических плат - в этом случае типичная карта будет являться тривиальным механическим объединением на одной PCB нескольких (одинаковых) видеокарт с независимыми DVI-выходами и, возможно, одного Composing Engine. Однако ничего подобного пока никто не анонсировал. А жаль: было бы интересно оценить эффективность работы не только "сдвоенных", но и "счетверенных" видеокарт.

    Для подключения ведомой платы к ведущей служит специальный DVI-кабель, вставляющийся в специальный же разъем на "ведущей" видеокарте. Маркетологи ATI могут сколько угодно твердить, что их решение "лучше", потому что оно не нуждается в перемычках между ускорителями, но подключать крошечную стандартную платку-коннектор SLI, мне кажется, гораздо удобнее, нежели обвешивать системник здоровенными проводами и коннекторами снаружи. Кстати, если "двухпроцессорные" видеокарты от ATI все же появятся, ей придется либо усовершенствовать Composing Engine (который вроде бы должен поддерживать аж до 32 GPU), либо "соединителей" снаружи системного блока станет как минимум два. А если к этому моменту Composing Engine будет-таки доступен в виде отдельной платы, - то и все четыре. Честно говоря, совместимость совместимостью, но решение Nvidia мне представляется более изящным.

    Теоретически CrossFire должен работать на любой материнской плате, на которой реализованы хотя бы два слота PCI Express x16, в которые удастся одновременно установить две видеокарты. Однако на практике для работы в этом режиме пока сертифицирован только специально выпущенный ради этого случая чипсет ATI Xpress 200 CrossFire Edition, отличающийся от обычного Xpress 200 тем, что вместо одного слота PCI Express x16 у него распаиваются два графических слота, работающих в режиме PCI Express x8 (переключиться в какой-либо другой режим, как у Nvidia, невозможно). Зато, правда, выпускаться этот чипсет будет как в варианте для процессоров AMD, так и в варианте для процессоров Intel; с графическим ядром и без оного (многие производители материнских плат уже демонстрировали на Computex соответствующие продукты). В дальнейшем поддержку CrossFire планируют распространить и на все остальные чипсеты (даже на nForce 4 SLI).

    Наконец, сегодняшняя реализация Composing Engine позволяет использовать в системе с CrossFire любой из четырех вышеперечисленных вариантов. Предпочтительный режим можно либо указать вручную, либо оставить на усмотрение драйверов Catalyst (которые установят режим, основываясь на прошитых в них списках известных игр). Alternate Frame Rendering при этом всегда поддерживается, но почти никогда не используется; режим Scissor драйверы тоже почему-то недолюбливают. SuperTiling не работает в приложениях OpenGL. SuperAA существует в двух вариантах: 10xAA (2x4AA) и 14xAA (2x6AA), которые представляют собой "удвоенные" режимы сглаживания на основе стандартных для ATI режимов MSAA 4x и MSAA 6x соответственно; включить их можно пока лишь через драйвер. В обычном режиме, "не-CrossFire", сохранится возможность независимо использовать все четыре видеовыхода при установке в систему двух видеокарт.

    Выводы

    Подытоживая всю доступную на сегодняшний день информацию, можно сказать, что задумка у инженеров ATI была отличная, а вот реализация - немного хромает, поэтому многие идеи, заложенные в нее на первых порах окажутся нереализованными. Сказать что-то большее пока трудно, поскольку, несмотря на анонс и проходившие на Computex демонстрации, образцов работающих систем (или хотя бы возможности самостоятельно потестировать "живые" CrossFire-системы) ATI журналистам не предоставила. Конечно, на презентациях показываются красивые слайды, демонстрирующие впечатляющее превосходство CrossFire-систем над SLI-системами конкурента, однако хоть сколько-нибудь подробной информации об условиях тестирования (и даже о конкретных значениях FPS) тоже пока нет. Такое ощущение, что CrossFire даже специально задерживают, чтобы выпустить одновременно с графическим чипом ATI следующего поколения (R520), CrossFire-варианты которого, очевидно, выйдут одновременно с его анонсом.

    Остается лишь добавить, что первые видеокарты CrossFire Edition на основе Radeon X850 должны появиться в продаже в июле, а первые Radeon X800 CrossFire Edition - в августе.

  • © ООО "Компьютерра-Онлайн", 1997-2024
    При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.