Видеокарты 

Архитектура R600. Теория превосходства

версия для печати послать другу 0
|| Содержание статьи

Показать одной страницей

23.05.2007 00:01 Автор: Мирослав Бабицкий

Не все шейдерные блоки одинаково полезны

Уже с первых анонсов стало ясно, что потоковые процессоры AMD – это какие-то иные потоковые процессоры, нежели те, что использует NVIDIA в G80. Если посмотреть на самую первую блок-схему архитектуры R600, то можно заметить, что шейдерные блоки сгруппированы по пять. Такая группа называется суперскалярным процессором, и именно ее следует считать основным структурным  блоком модуля обработки шейдеров. Однако в целях маркетинга AMD считает каждый отдельный ALU (арифметико-логическое устройство), входящий в суперскалярный процессор, за потоковый процессор, откуда и проистекает красивая цифра 320 потоковых процессоров. Приглядимся поближе к одному такому суперскалярному процессору.

Архитектура

Как мы видим, составляющие его ALU (в дальнейшем мы будем называть потоковые процессоры AMD именно так) совсем не равнозначны. Только один из пяти ALU (он обозначен более толстым "кирпичиком") способен исполнять специальные функции, такие, как синус, логарифм, экспонента и так далее. Остальные четыре арифметико-логических устройства предназначены для выполнения операций сложения-умножения, как и обычные ALU в центральных процессорах. Сходство дополняется также поддержкой этими ALU полной 32-битной точности вычислений и инженерного стандарта IEEE 754. Означает это, что на R600 без особого труда можно организовать ускоритель определенных видов вычислений, например, различного рода научных или экономических калькуляций. Каждый из 64 суперскалярных процессоров R600 дополнительно снабжен блоком предсказания ветвлений (ещё одна архитектурная аналогия – префетч у CPU), что повышает эффективность работы на шейдерах с большим числом переходов.

Архитектура

 

AMD сравнивает теплое с мягким

Напрямую сравнивать 64 суперскалярных процессора R600 со 128 скалярными потоковыми процессорами G80 нельзя. Во-первых, все 128 процессоров NVIDIA умеют производить как элементарные функции (сложение-умножение), так и специальные (синус, косинус, экспонента), а также целочисленные операции, в то время как только 20% ALU в R600 могут выполнять весь набор данных действий. Но при этом каждая инструкция, поступающая на модуль потоковых процессоров, должна обрабатываться не менее чем 16-ю потоковыми процессорами для вершин или 32-мя для пикселей. Итого получается, что за такт G80 способен отработать до 8 вершин или 4 пикселей на одну инструкцию. Для R600 ситуация такова, что каждый ALU всегда обрабатывает одну инструкцию. Число потоков при этом равно числу суперскалярных процессоров, то есть 64 (против 128 потоков у NVIDIA, но с меньшим в разы числом инструкций). Итого мы получаем не только гораздо большую параллельность выполнения для шейдеров в R600, но и гораздо большую зависимость от эффективности компиляции. В идеальной ситуации за такт обрабатывается 320 операций, но сможет ли компилятор нагрузить каждый из ALU своей операцией в реальных приложениях? В худшем случае мы получим только одну операцию на суперскалярный процессор, то есть 64 за такт, а если учесть вдвое более высокую частоту шейдерного домена у G80 – получаем серьезное падение производительности.

Архитектура

Таким образом, мы видим, что архитектура шейдерных блоков у AMD дает нам колоссальную разбежку между пиковой и минимальной производительностью, а в реальных приложениях почти все зависит от эффективности поданного на GPU кода. К счастью, почти все обрабатываемые величины (значения цвета пикселей, положения вершин и так далее) обычно являются четырехкомпонентными, и при грамотной компиляции будут задействованы как минимум 80% всех ALU. NVIDIA же предлагает абсолютно стабильную производительность шейдеров, которая слабо зависит от характера исполняемого кода. В итоге подход у компаний просто разный, и назвать какой-то из них более удачным просто невозможно. Быть может, некоторые точки над i позволит расставить дальнейшая разработка ПО, использующего мощности GPU для неграфических нужд, но пока о прямом сравнении шейдерных архитектур говорить рано.

Работаем с картинкой

Мы очень много времени отдали описанию шейдерной архитектуры, в то время как основная часть графики в наших любимых играх  - это по прежнему полигоны и натянутые на них текстуры. Фактически впервые AMD отдельным слайдом в своей презентации упоминает текстурный кэш. Кэш первого уровня имеет объем 64 KB, по 32 KB для вершин и текстур (похоже на L1-кэш для данных и инструкций у CPU), общий же кэш второго уровня равен 256 KB. Текстурных блока у R600 всего четыре. Это весьма небольшое число, и от топового чипа мы могли ожидать большего, однако в компании решили, что будущее за шейдерами и отдали им большую часть транзисторов на чипе.

Архитектура

Вообще говоря, это традиционный для ATI подход – концентрироваться на производительности шейдеров, в R580 также было текстурных блоков меньше, чем у конкурентов. Зато текстурники (TMU) в R600 полностью независимы от шейдеров и подключены параллельно суперскалярным процессорам к диспетчеру потоков. Соответственно TMU могут получать предварительную выборку данных еще до того, как они попадают на шейдерные блоки.  Текстурные блоки R600 похожи по производительности на TMU у G80. Каждый из них способен делать выборку и билинейную фильтрацию 32-битных текстур без потери производительности (при сравнении с 16-битными), либо с двукратной потерей производительности при отображении текстур в полной 32-битной точности (FP32, 32 бита с плавающей запятой). В каждом из TMU имеется по 8 блоков адресации, 20 блоков выборки и 4 блока фильтрации, причем 4 блока адресации и 4 блока выборки работают с вершинами и не нуждаются в фильтрации текстур. Работу с HDR такая архитектура проделывает (в теории) в семь раз быстрее, чем R580, но все равно медленнее, чем архитектура G80.

Блоков записи в буфер кадра (ROP) мы имеем, как и TMU, четыре. Скорость их работы – по четыре пикселя за такт, записываемых в кадровый буфер. Никаких сюрпризов и коренных отличий от решений, использованных в R580. Отличается только заявленная компрессия стенсил-буфера и Z-буфера: до 16:1 (у R580 было 8:1), и до 128:1 при использовании полноэкранного сглаживания по схеме 8x MSAA.

Архитектура

Иерархическая структура z- и стенсил-буферов улучшена, что должно благотворно отразиться на скорости в играх, изобилующих трафаретными тенями (тот же Doom 3, в котором карты ATI традиционно проигрывали решениям NVIDIA).

Больше рельефа, меньше полигонов

Мы уже знакомы с использованием технологий, призванных создавать эффект объемных поверхностей, не затрачивая лишних полигонов. Это карты нормалей, карты неровностей (бампмэппинг) или даже параллаксмэппинг. На сей раз AMD решила применить в своем чипе технологию тесселяции, ранее использованной в чипе Xenos (Xbox 360). Тесселяция используется для тех же целей, что и все вышеперечисленные "мэппинги", то есть для увеличения геометрической сложности (рельефности) объектов без увеличения числа реальных полигонов модели при помощи наложения карты смещения. Сама технология, мягко говоря, не новая (ее первое серьезное применение на рынке PC-графики произошло с выходом Matrox Parhelia), а для ее применения (помимо собственно карты смещения) необходима модификация вершинных шейдеров в игре.

Архитектура

Тут-то и возникает вопрос: а захотят ли разработчики игр "затачивать" свои шейдеры под одну из существующих на рынке архитектур. В случае с Xbox 360, где тесселяция была применена ATI, у разработчиков игр под конкретную платформу не было выбора. К слову сказать, до сих пор не вполне понятно, насколько интенсивно будут использовать тессселяцию порты с Xbox 360 на PC.  У разработчиков же игр на PC такой выбор есть, и в пользу тесселяции говорят многие факты.

Архитектура

Во-первых, "экономия" полигонов приводит к повышению производительности – для того, чтобы воссоздать сложную геометрически модель вместо массива вершин достаточно обработать низкополигональную модель и карту смещения – фактически обычную текстуру (причем не более, чем 16-битную).

Архитектура

Во-вторых, резко падает потребление видеопамяти (и пропускной способности), что AMD тотчас же проиллюстрировала слайдом.

Архитектура

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

Под перекрестным огнем

Первая реализация режима рендеринга двумя GPU у ATI была ужасна. Необходимость в мастер-карте, ограничения частоты развертки – эти и многие другие причины оставляли технологию CrossFire далеко позади после SLI. В поколении Radeon X1900 большинство проблем уже было решено, и CrossFire начал набирать обороты, поэтому при появлении Radeon HD 2000 AMD достаточно было закрепить успех количественными изменениями. Посмотрим, что произошло со схемой "перекрестного огня".

Архитектура

Как мы и подозревали, ничего по-настоящему существенного. Контроллер многочипового рендеринга встроен в сам графический процессор, поэтому нет никакой необходимости в специальной матер-карте. Также заявлена поддержка более, чем двух GPU (вероятный ответ на Quad SLI, если эта технология NVIDIA станет по-настоящему популярной). Добавился новый режим рендеринга, Alternate Frame Rendering – поочередная обработка картами кадров. Насколько данный режим окажется эффективным могут показать только тесты.

Ожидаемо появились и новые алгоритмы полноэкранного сглаживания. Только вместо того, чтобы жестко встраивать алгоритм антиалиасинга в ROP, AMD предпочла возложить эту задачу на суперскалярные процессоры. Процесс сглаживания теперь стал программируемым, а новый режим, соответственно, называется CFAA (Custom Filter AA – сглаживание при помощи программируемого фильтра).

Архитектура

Действительно, теперь качество сглаживания может улучшаться при обновлении драйверов, а также силами разработчиков игр. Новый алгоритм усреднения и обнаружения краев (на которых и образуется "лесенка") в сочетании с изменяемым весом пикселя вне зоны сглаживания должны уменьшить проблему "замыливания" картинки при использовании FSAA.

Кино на большом экране

AMD очень четко позиционирует новое семейство видеокарт, даже младшие его модели, в качестве центра домашнего кинотеатра. Для того, чтобы такое позиционирование было оправданным, в компании сделали действительно многое. Это новая технология аппаратного декодирования UVD (Unified Video Decode), это полная поддержка на уровне чипа HDMI/HDCP и встроенная звуковая карта. Последний факт был неожиданностью для многих, ведь теперь, по сути, для обладателей домашних театров и аудиосистем нет необходимости в отдельной звуковой карте.

Архитектура

Архитектура

Конечно же, проблема игрового трехмерного звука (аппаратный EAX) не решается до конца, но для многих пользователей огромным соблазном будет заменить пучок проводов в их системе на один-единственный сигнальный HDMI-кабель. Специальный переходник в комплекте видеокарты позволяет передавать сжатый в любом поддерживаемом стандарте аудиосигнал по HDMI-интерфейсу.

Архитектура

Что касается системы защиты контента от копирования HDCP, то теперь все необходимые для этого ключи хранятся в самом GPU вместо специального чипа. Преимуществами такого решения смогут воспользоваться обеспеченные люди,  поскольку все необходимое оборудование для работы с HD-видео по HDMI стоит немало. Представьте – 37" или больший дисплей с поддержкой разрешения 1080p, HD DVD или Blu-ray плеер, соответствующая аудиосистема. Даже сам HDMI-кабель стоит немалых денег.

Архитектура

Но и для тех, кто в силу финансовых обстоятельств не может себе позволить большой дисплей, и вынужден смотреть фильмы на обычном мониторе AMD приготовила приятный сюрприз. Очередная инкарнация технологии Avivo (аналог NVIDIA PureVideo) под названием Avivo HD (созвучно всему названию серии Radeon HD 2000) включает встроенный декодер практически всех современных видео-форматов UVD, который заметно снижает нагрузку на процессор, а если верить утверждениям AMD, то ещё и повышает само качество видео. Поддерживаются для декодирования все три формата, которые используются в HD-видео: VC-1, H.264 и AVC. В отличии от чипа G80, аппаратному декодированию подвергаются абсолютно все этапы обработки видео, другими словами, видеокарта напрямую получает поток данных с жесткого диска. Особенно заметной должна быть разгрузка процессора при работе с кодеком H.264. При воспроизведении HD DVD диска  загрузка должна упасть с 70% для среднестатистического двухъядерного процессора до 10%, что сделает возможным (при установке, скажем, Radeon HD 2400 Pro) создать бюджетную систему на базе какого-нибудь Sempron 3000, способную "потянуть" настоящий High Definition. Впрочем, данные сведения предоставляются самой AMD и их ещё стоит проверить на практике.

Архитектура

Присутствует в UVD и декодирование классического MPEG-2, однако на современных процессорах вряд ли будет сколько-нибудь заметным эффект от такой поддержки. На последок упомянем и такие, в общем-то, привычные для GPU функции – аппаратный деблокинг и деинтерлейс изображения, компенсация движения и фильтрация.

Выводы

Чип R600 – это самый сложный и совершенный GPU в архитектурном плане, выпущенный на данный момент на потребительский рынок. Архитектура R600 – это теория превосходства, теория, согласно которой лучше графического чипа быть на данном этапе не может. У R600 есть две ключевые особенности – это высокая степень программируемости и большое количество дополнительно интегрированных блоков. Что касается первого, то сближение архитектуры графического и центрального процессоров – это палка о двух концах. С одной стороны, потенциальная, пиковая производительность такого чипа достигает фантастических величин, а гибкость, с которой суперскалярные процессоры оперируют данными позволяют предельно расширить сферу применения ускорителя. С другой стороны, такая высокая степень программируемости делает производительность весьма чувствительной к эффективности работы компилятора. Нынешнее поколение трехмерных приложений ещё не ориентировано в такой степени на универсальную архитектуру, поэтому во всей красе чип сможет раскрыть себя только при должном внимании со стороны разработчиков.

R600 предлагает разработчикам игр эффективный способ увеличить сложность геометрии сцены и моделей, не прибегая к наращиванию числа полигонов – тесселяцию. Воспользоваться этим способом, или нет – это уже решение конкретного геймдевелопера, однако все пользователи консоли Xbox 360 уже смогли оценить этот новый прием в трехмерной графике. Интересные возможности предоставляется и разработчикам ПО для научных и экономических расчетов. Мощность блоков ALU и FPU, входящих в состав графического процессора, сопоставима с мощностью серверных процессоров, и появление ПО с использованием R600 – дело одного только времени. Потребители получили с R600 прекрасный старт, с которого можно начинать построение цифрового домашнего театра по последнему слову техники. Здесь ключевую роль играют технологии Avivo HD, поддержка HDMI/HDCP встроенными средствами и встроенный же звуковой кодек.             

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

Архитектура

|| Комментарии на форуме 0
Оставить комментарий