Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternaya_grafika.doc
Скачиваний:
90
Добавлен:
23.04.2019
Размер:
5.45 Mб
Скачать

84. Ускорение вычислений при помощи технологий sli и CrossFire

Для повышения производительности видеосистем ПК ведущие фирмы-производители предлагают варианты объединения нескольких (на текущий момент – двух) видеоплат в одну видеосистему. Для фирмы nVIDIA – это технология SLI (Scalable Link Interface), а для фирмы ATi –технология CrossFire.

NVIDIA SLI. Интерфейс SLI (Scalable Link Interface - масштабируемый интерфейс соединения) определяет многопроцессорную графическую технологию, реализованную в последних продуктах фирмы nVIDIA. Использование SLI позволяет повысить производительность 3D-приложений за счет объединения двух графических ускорителей. На данный момент технология реализована для семейств GeForce 6600/6800 использующих интерфейс PCI Express x16. Для объединения плат используется мостовая схема (симметричное или изотропное подключение). Похожая технология использовалась в графических ускорителях Voodoo 2 фирмы 3Dfx, которая была приобретена фирмой nVIDIA. У фирмы 3Dfx эта технология носила название Scan Line Interface, так как распараллеливание вычислений в видеосистеме осуществлялось за счет обработки нечетных строк экрана на одной видеоплате, а четных – на другой. У фирмы nVIDIA использует мостовое соединение видеоплат и распараллеливание осуществляется по другому принципу: одна плата обрабатывает верхнюю часть экрана, а другая – нижнюю. При этом граница разделения экрана может изменяться в зависимости от содержимого экрана таким образом, чтобы равномерно загрузить обе платы (динамическая регулировка нагрузки). Технология nVIDIA SLI позволяет увеличить производительность видеосистемы до 200%.

ATi CrossFire. Основная цель технологии CrossFire (Перекрестный Огонь) — организация совместной работы двух графических ускорителей над построением изображения. Причем, архитектура должна быть не только эффективной (высокий КПД, низкая стоимость дополнительных схем и т.п.), но и удобной в использовании (совместимость с уже существующими программами и даже с уже существующими аппаратными решениями, прозрачность, простота и надежность). Несколько ускорителей (в варианте для пользователей ПК их два) формируют собственную часть изображения, и выводят её через трансмиттеры в общепринятом цифровом стандарте DVI. Затем информация попадает в «черный» ящик под названием Composing Engine, устройство, которое собственно и осуществляет совмещение результатов работы ускорителей для получения финального изображения. На выходе из этого ящика — вновь стандартный цифровой DVI сигнал, но на этот раз — уже окончательного кадра, собранного из двух порций данных, рассчитанных обоими VPU.

Для устранения проблем с синхронизацией, Composing Engine содержит собственную буферную память, что позволяет этому устройству накапливать данные асинхронно, и, затем, по мере готовности обоих ускорителей, формировать и выдавать результирующий кадр. Таким образом, четкая синхронизация работы VPU (Vertex Processing Unit) не требуется, достаточно двух фактов — каждый VPU должен знать, какую часть данных ему надо рассчитать, и каждый VPU должен закончить передачу рассчитанных данных в Composing Engine. После этого будет осуществлена передача кадра на устройство вывода в формате DVI или (если нам нужен аналоговый сигнал) на внешний графический DAC, преобразующий цифровой DVI поток в стандартный аналоговый VGA сигнал.

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

  • Разделение экрана на несколько непересекающихся зон (Scissor, или Slicing). Это решение используется в современной технологии nVIDIA SLI, и во многих специальных решениях, таких как имитаторы для обучения пилотов (несколько окон панорамного вида, моделирование самолета), большие информационные мультиэкраны и т.д. Для двух VPU будет происходить вертикальное разделение кадра на две зоны. Интересно, что граница зон не обязательно должна проходить по середине кадра и может выбираться динамически, исходя из сложности той или иной части изображения. Задача подобной динамической балансировки нетривиальна, и требует анализа сцены. Этот метод хорош для сбалансированных по критерию «геометрические вычисления - закраска» приложений, так как в идеале (при правильном адаптивном делении кадра на зоны ответственности), позволит им поровну распределить и геометрическую и пиксельную нагрузку по двум ускорителям.

  • Построчное, шахматное (или иное) чередование рассчитываемых пикселей (Tiling) — самый удобный и прозрачный, с точки зрения организации, метод, когда ускорители рассчитывают соседние строчки (SLI от 3Dfx, где чередовались четные и нечетные строки) или пиксели в шахматном порядке, или соседние отсчеты для сглаживания в рамках одного результирующего пикселя. Таким образом, нагрузка по закраске делится строго поровну, вне зависимости от конкретной сцены, а вот геометрическую нагрузку VPU приходится дублировать — оба ускорителя рассчитывают одни и те же геометрические данные. Получается, что в случае приложений, не упирающихся в геометрическую производительность ускорителя (а это практически все игровые приложения), этот метод может обеспечить серьезный прирост скорости закраски, вплоть до двукратного (если запас простаивающей геометрической производительности двукратный). Таким образом, мы распараллеливаем пиксельную работу поровну, имея близкий к 100% КПД, без каких-либо видимых проблем совместимости или сложностей в организации балансировки и разделения потока данных. Метод требует минимальных вмешательств в драйверы, прозрачен для приложений и выглядит наиболее оптимальным для игрового пользовательского рынка. Особенно, учитывая все большее число приложений с тяжелой пиксельной нагрузкой и шейдерными спецэффектами. Более того, по ходу дела, этот метод может быть использован для эффективного FSAA, основанного на усреднении отсчетов, рассчитанных разными ускорителями. Что в дополнение к MSAA, реализованному в каждом VPU, даст нам еще и суперсэмплинг (SSAA), способный решить некоторые проблемы не достаточно эффективно устраняемые MSAA.

  • Чередование рассчитываемых кадров (Alternate Frame Rendering) — методика хороша для приложений, упирающихся в геометрическую производительность ускорителя и не критичных к плавности смены кадров (что редко встречается в игровых приложениях), но будет весьма эффективна в приложениях DCC/CAD/CAM/CAE (например, при интерактивном редактировании моделей в приложениях для создания реалистичной трехмерной графики).

Конец 84 вопроса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]