Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ATI CrossFire (доклад).docx
Скачиваний:
1
Добавлен:
12.07.2019
Размер:
49.81 Кб
Скачать

Министерство образования и науки РФ

Федеральное государственное образовательное учреждение

среднего профессионального образования

«ДЗЕРЖИНСКИЙ ХИМИЧЕСКИЙ ТЕХНИКУМ ИМЕНИ КРАСНОЙ АРМИИ»

Конструкция и компановка ПК

Доклад

ATI CrossFire System

Выполнили:

студенты 1 подгруппы

37 гр. д/о

Проверил: Никитин Е.В.

Дзержинск, 2011

Содержание:

Что такое ATI CrossFire System?

ATI CrossFire — технология, позволяющая одновременно использовать мощности двух и более видеокарт Radeon для построения трёхмерного изображения.

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

На платформе ATI CrossFire в идеальных условиях можно получить почти двухкратный прирост производительности по сравнению с одиночной картой.

Хочется особо отметить, что CrossFire действительно работает со всеми играми. То есть, пользователи не будут зависеть от программистов ATI, которые по тем или иным причинам могут не включить поддержку CrossFire для той или иной игры - она включена автоматически для всех игр.

Для связки CrossFire требуется одна специальная видеокарта, в названии которой фигурирует словосочетание "CrossFire Edition", и другая современная карта, желательно из подобной серии, для достижения максимального эффекта.

Главная особенность видеокарт серии CrossFire Edition - наличие дополнительного чипа Compositing Engine. Эта микросхема берет частично отрендеренную картинку из стандартной карты и смешивает с такой же промежуточной картинкой из карты CrossFire Edition. В результате получается полноценное изображение, обработанное с большей скоростью. Чип Compositing Engine - это программируемое устройство с гибкой поддержкой различных видеокарт, в том числе будущих продуктов.

Две карты коммутируются с помощью внешнего кабеля, который соединяет DVI-выход обычной карты со специальным DMS-разъемом на карте CrossFire Edition. И частично отрендеренный кадр от первой карты поступает через DVI на DMS-вход карты CrossFire Edition. В итоге, работа двух видеочипов суммируется в микросхеме Compositing Engine.

Основные алгоритмы взаимодействия ускорителей

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

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

Для двух VPU будет происходить вертикальное разделение финального кадра на две зоны. Интересно, что граница зон не обязательно должна проходить по середине кадра и может выбираться динамически, исходя из сложности той или иной части изображения — грубо говоря, в верхней половине может оказаться меньше объектов, чем внизу (небо) и тогда один из ускорителей будет простаивать, что может быть скомпенсировано увеличением его зоны ответственности. Задача подобной динамической балансировки нетривиальна, и требует анализа сцены, что не всегда удобно. Этот метод хорош для сбалансированных по критерию геометрических вычислений / закраска приложений, так как в идеале (при правильном адаптивном делении кадра на зоны ответственности), позволит им поровну распределить и геометрическую и пиксельную нагрузку по двум ускорителям.

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

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

Итак, суммируем плюсы и минусы вышеописанных подходов:

Метод

Плюсы

Минусы

Scissor  (Slicing)

  • Делит и геометрическую и пиксельную нагрузку

  • Высокая степень асинхронности работы VPU

  • Ускоритель полностью владеет своей подотчетной зоной изображения результата

  • Требует балансировки на лету зон для равномерного распределения нагрузки

  • Могут быть проблемы с AA на стыке зон

  • Требует заметного вмешательства в драйвер и потому высока вероятность неожиданной и неверной работы некоторых приложений

Tiling + SuperAA

  • Делит пиксельную нагрузку ровно поровну

  • Очень точная балансировка нагрузки между VPU

  • Можно использовать для новых методик AA (SSAA)

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

  • Не делит геометрическую нагрузку и потому требует существенного запаса в геометрической производительности

  • Требует достаточно синхронной работы ускорителей и соответственно отсутствия различия их скоростных и прочих характеристик

Alternate Frame Rendering

  • Делит и пиксельную и геометрическую нагрузку, причем геометрия не дублируется по шине — разные ускорители получают разные наборы данных

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

  • Неровное чередование кадров и распределение нагрузки

  • КПД сильно зависит от CPU и системы, а также от характера сцены и падает с ростом FPS

  • Проблема со значительной задержкой между кадром, который нам демонстрируется и кадром, который в данный момент строится.

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