Видеокарты 

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

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

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

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

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

Архитектура

Факты таковы, что 14 мая 2007 года компания AMD представила широкой публике "почти топовый" ускоритель на базе R600 – Radeon HD 2900 XT, анонсировала ускорители начального уровня Radeon HD 2400 и Radeon HD 2600, а также пообещала выпустить этим летом "убийцу" GeForce 8800 Ultra – Radeon HD 2900 XTX. Таким образом, новая архитектура представлена, фактически, одной видеокартой, и ссылаться мы будем в основном на нее, лишь в паре мест указав на отличия урезанных и продвинутой версий.

За что боролись?

А боролись производители, фактически, за полностью адаптированную к последней версии графического API DirectX архитектуру. Давайте посмотрим, что приносит нам версия за номером 10 одного из ведущих современных API. В таблице сведены воедино основные параметры интерфейсов, и можно количественно оценить произошедшие при переходе к DirectX 10 изменения.

Версия API

DirectX 8

DirectX 9

DirectX 9.0c

DirectX 10

Версия шейдеров

1.1/1.4

2.0

3.0

4.0

Вершинных инструкций

128

256

512

65536

Пиксельных инструкций

4+8

32+64

512

65536

Вершинных констант

96

256

256

16x4096

Пиксельных констант

8

32

224

16x4096

Вершинных переменных

16

16

16

4096

Пиксельных переменных

2

12

32

4096

Потоков вершин

16

16

16

16

Потоков пикселей

4+2

8+2

10

32

Мишеней рендеринга

1

4

4

8

Вершинных текстур

-

-

4

128

Пиксельных текстур

8

16

16

128

Размер текстуры, точек

 

 

2048x2048

8192x8192

Целочисленные операции

-

-

-

+

Производные

-

-

+

+

Управление обработкой вершин

-

статическое

статическое или динамическое

динамическое

Управление обработкой пикселей

-

-

статическое или динамическое

динамическое

Виртуальная видеопамять

-

-

-

+

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

-

-

-

+

Поддержка формата IEEE 754

-

-

-

+

Как видно из таблицы, при переходе к DirectX 10 наблюдается целый ряд тенденций. Во-первых, это количественное усложнение шейдерных инструкций, благодаря которому становятся возможными все более и более реалистичные и сложные эффекты. Причем переход от DirectX 9.0c к 10-й версии вызвал весьма серьезное увеличение числа поддерживаемых инструкций, и если вспомнить, что даже современные игры в основной своей массе находятся по сложности инструкций на уровне шейдеров версии 2.0, становится понятно, с каким серьезным запасом сделан новый API.

Во-вторых, и это более важно, DirectX 10 обеспечивает некоторые качественные изменения в самом подходе к рендерингу картинки. Во-первых, наконец введена поддержка свопинга текстур на уровне API, проще говоря, теперь любая DirectX 10-видеокарта может пользоваться оперативной памятью в качестве текстурного буфера. Ранее такие технологии под видом проприетарных решений (например, P10 компании 3Dlabs) уже выступали на рынке, но не получили широкого распространения. Теперь же локальная видеопамять может служить лишь кэшем для тех текстур, которые нужны в данный момент, а дополнительные текстуры по мере надобности могут подгружаться из оперативной памяти. В итоге геймдевелоперы получают возможность использовать текстуры фантастически высокого разрешения и качества. Кроме того, малое количество памяти (порядка 128 MB) теперь перестанет быть бутылочным горлышком для недорогих видеокарт.

Архитектура

Правильнее называть DirectX 10 в контексте нового графического конвейера Windows Vista – WGF 2.0 (от Windows Graphics Foundation)

 

Производители видеокарт с поддержкой DirectX 10 поставлены в довольно жесткие условия. Каждая совместимая видеокарта обязана понимать только шейдерные инструкции, написанные на языке HLSL (High Level Shader Language – язык шейдеров высокого уровня). В результате ситуация "формальной" поддержки новой версии API, как это было в свое время с семейством GeForce 3, уже не повториться. Имеющиеся же у каждой видеокарты с поддержкой DX10 унифицированные шейдерные блоки не являются прямым следствием требований нового API, но логически вытекают из его спецификаций (взгляните хотя бы на симметричность требований по пиксельным и вершинным шейдерам, в частности, на 32-битную точность). Таким образом, выделять блоки с разной структурой для обработки пиксельных и вершинных шейдеров уже невыгодно экономически, что и было преподнесено нам как унифицированная шейдерная архитектура как NVIDIA, так и AMD. Справедливости ради добавим, что впервые унифицированная шейдерная архитектура была использована ATI в чипе Xenos, представляющем графическое ядро консоли Xbox 360. Сюда же можно записать и новый тип шейдеров – геометрический, хотя при нынешней свободе реализации любого кода на GPU при желании можно изобрести еще с десяток типов шейдеров.

Архитектура

Наконец, DirectX 10 дарует графической архитектуре гибкость, сравнимую с архитектурой центральных процессоров. Это и произвольный доступ к данным из шейдеров, и поддержка целочисленных типов данных и формата IEEE 754, и экспорт промежуточных результатов в память, и более широкие возможности программирования. Из узкоспециализированного ускорителя видеокарта, поддерживающая DirectX 10 превращается в небольшой "компьютер в компьютере". По этой причине DX10-видеокарта становится гибким инструментом, пригодным для решения различных инженерных задач (и поддержка IEEE 754 тут как нельзя кстати).

Чего новенького?

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

Архитектура

Первое, что сильнее всего бросается в глаза – огромный модуль унифицированных шейдерных блоков (или процессоров). Этот модуль выделяется на фоне таких важных составных частей любого чипа, как блоки записи в буфер кадра или текстурные блоки, более того, AMD чуть ли не в первую очередь упоминает число потоковых процессоров – 320. Именно на эти 320 процессоров угрохана значительная часть из 720 млн транзисторов, составляющих чип R600. Будучи прочно ассоциированным в умах потребителей с конвейерами рендеринга (коих совсем недавно в видеокартах было 16-24), эти самые потоковые процессоры (Stream Processors, SP) завораживают магией цифр. Ведь у предыдущего поколения видеокарт ATI шейдерных блоков было всего 48 (напомним – при фактическом числе конвейеров 16), да и нынешний G80 может похвастаться только 128-ю потоковыми процессорами. Чуть позже мы попытаемся раскрыть эту магию чисел, а пока пробежим по узловым моментам новой архитектуры.

Архитектура

Тут же стоит отметить частоту ядра видеокарты – 740 МГц и тот факт, что все модули ядра работают на этой частоте. Для сравнения, шейдерный домен G80 спокойно работает на частоте 1.5 ГГц, чем уже практически удваивает свою производительность по сравнению с решением AMD. Память, работающая у Radeon HD 2900 XT на 825 МГц (в перспективе – 1 ГГЦ у XTX-модификации) соединена с ядром по 512-битной шине с архитектурой Ring Bus (дословно – кольцевая шина). В теории это дает AMD преимущество над 384-битной шиной соперника.

Архитектура

Как и контроллер памяти, переработке подвергся специфический для решений AMD модуль под названием Ultra-Threaded Dispatch Processor, или диспетчер потоков. Как и следует из название, этот модуль ответственен за распределение нагрузки на исполнительные блоки, в первую очередь на потоковые процессоры. Ведь унифицированная шейдерная архитектура с ее гибкостью и возможностью исполнения на одних и тех же блоках различных операций предъявляет серьезные требования к модулю распределения вычислений, которым и является диспетчер потоков. Здесь мы также видим и слабое место архитектуры – даже при заявленном количестве одновременно выполняемых потоков, составляющем тысячи, эффективность архитектуры сильно зависит от софтверной оптимизации. Чем больше на вход диспетчера поступит инструкций, выполнение которых можно распараллелить, тем быстрее будет происходить рендеринг. Таким образом, оптимизацией инструкций на уровне драйвера и самого приложения (игры) можно добиться очень и очень многого.

Архитектура

Совершенно уникальными особенностями R600 являются блоки тесселизации и встроенный аудиокодек, новый адаптивный алгоритм антиалиасинга, выделенный DMA-контроллер системной (!) памяти для работы со свопингом текстур, новый аппаратный видео-декодер и многие другие вещи. О них мы подробнее поговорим ниже, пока же остановимся на сравнении анонсированных карт линейки.

О пользе масштабируемости

Мы все прекрасно знаем, что мало произвести удачную архитектуру, необходимо также сделать ее легко масштабируемой для всех сегментов рынка. Говоря другими словами, производитель должен иметь возможность, не меняя существенно процесс производства "штамповать" все новые и новые видеокарты, покрывая самые разные рыночные ниши. Обычно модификаций чипа не слишком много, всего три-четыре, а дальнейшая сегментация идет за счет изменения частот, типа и объема памяти, включения-отключения тех или иных технологий и так далее. Но создать масштабируемую структуру флагманского чипа – важнее всего, и с данной задачей AMD справилась на "отлично". Посмотрим на блок-схемы чипов R600, RV630 и RV610, которые отличаются последовательными упрощениями.

Архитектура

Полную архитектуру R600 мы наблюдаем у серии Radeon HD 2900. В наличии имеются 320 потоковых процессоров (или 64 шейдерных блока – об этой арифметике чуть ниже), 4 SIMD-блока (Single Instruction - Multiple Data), а также по 4 текстурных блока и блока записи в кадровый буфер (ROP).

Архитектура

В случае с RV630 (этот чип ляжет в основу июльских Radeon HD 2600) мы видим элементарную редукцию – 120 потоковых процессора, 3 SIMD-блока, 2 текстурника и всего один  ROP. Все остальные блоки и технологии на месте, поэтому HD 2600 можно считать прямым наследником HD 2900.

Архитектура

При создании RV610 в AMD пошли на упрощение основной архитектуры. Помимо уменьшенного до 40 числа потоковых процессоров и до двух – SIMD-модулей (текстурные и ROP-блоки представлены в единственном числе),  чип содержит упрощенный кэш текстур и не содержит иерархический Z-буфер. И если последний способ экономии транзисторов уже применялся в более ранних решениях AMD, то в случае с кэшем инженеры пошли на интересное совмещение – в кэше первого уровня складируются как пиксельные, так и вертексные данные. А второго уровня текстурного кэша у RV610 нет вовсе.

Архитектура

Линейка видеокарт AMD в июле будет выглядеть примерно так. Пока что все предельно четко и ясно, и мы понадеемся, что AMD не будет играть в столь любимые ATI игры с переименованиями

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

Чип

R600

RV630

RV610

Число транзисторов, млн

720

390

180

Диапазон частот чипа, МГц

740-800

600-800

525-700

Теоретическая производительность, ГФлоп/c

475

144-192

42-56

Скорость заполнения, млрд. пикс./с

47.5

14.4-19.2

4.2-5.6

Скорость обработки полигонов, млн. треугольников/с

740

600-800

262-350

Число потоковых процессоров

320 (64)

120 (24)

40 (8)

Число текстурных блоков

4

2

1

Число блоков записи в кадровый буфер

4

4

1

Память типа GDDR4

+

+

-

Память типа GDDR3

+

+

+

Память типа DDR2

-

+

+

Объем памяти, MB

512/1024

256

128/256

Шина памяти, бит

512

128

64

Частота памяти, МГц

825 - 1000

400-1100

400-800

Пропускная способность памяти, GB/s

106 - 128

12.8-35.2

6.4-12.8

Энергопотребление карты, Вт

215

45

25

Поддержка выходов

2x Dual Link DVI, Video-Out

2x Dual-Link DVI, Video-Out

D-Sub, DVI, Video-Out

HDMI со звуком

+

+

+

Техпроцесс, нм

80

65

65

Следует отдельным образом отметить, что урезанные модификации будут обходится компании значительно дешевле топовой не только благодаря уменьшенному числу транзисторов и упрощенной архитектуре, но и благодаря более совершенному 65 нм техпроцессу. Флагман Radeon HD 2900 пока не планируется переводить на 65 нм, очевидно AMD и не планирует продавать слишком много этих карт, делая ставку на традиционно прибыльный mainstream-сегмент.

Архитектура

Здесь же нельзя не упомянуть и про "вкусную" ценовую политику компании, когда DirectX 10 "раздается задаром" в случае с младшими картами Radeon HD 2400 – цена на них будет не выше $80 в розницу, а конкурирующие с откровенно слабым семейством GeForce 8600 видеокарты Radeon HD 2600 продаются чуть дешевле соперников. Впрочем, у NVIDIA ещё есть время и чтобы переиграть цены, и даже выпустить бюджетные карты типа GeForce 8400, хотя при всем желании такие "фичи", как полноценный HDMI со звуком в бюджетных картах NVIDIA не появится.

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