новости
Больше полугода мы с нетерпением ждали появления видеокарт нового поколения от корпорации ATI/AMD. За это время мы рассмотрели и протестировали большое количество новейших видеокарт от конкурента - NVIDIA Corporation, и каждый раз нам приходилось оговариваться, что тестирование GeForce 8 в сравнении с видеокартами предыдущего поколения некорректно. Это связано и с тем, что видеокарты создавались с особым уклоном под обработку графики, написанной на DirectX 10, и с тем, что унифицированные шейдерные архитектуры намного лучше справляются с обработкой современной графики, насыщенной шейдерной, то есть математической, обработкой. И вот наконец 14 мая ATI официально представляет новое поколение видеокарт под названием Radeon HD 2000. Теперь мы сможем перестать сравнивать тёплое с мягким, наконец у нас есть видеокарты, выступающие в "одной лиге".
|
| Графический процессор Radeon HD 2900 |
Как видим, так же, как в своё время NVIDIA поступила с префиксом FX, ATI избавляется от префикса X в названиях видеокарт. Вместо него появляются буквы HD. Ход абсолютно логичный: архитектура ядер R6xx абсолютно не похожа на предыдущие поколения и никоим образом не является их эволюционным развитием. Буквы HD символизируют основное направление развития всей индустрии компьютерной (да и не только) графики: разрешения растут, и требуется приемлемая производительность на невообразимых ранее диагоналях мониторов. На способностях Radeon HD 2000 по обработке графики высокого разрешения мы остановимся отдельно.
Что же нам предлагает ATI в новой линейке продукции?
|
Модель видеокарты |
Radeon HD 2400 |
Radeon HD 2600 |
Radeon HD 2900 |
|
Количество SP |
40 |
120 |
320 |
|
Частота ядра |
525-700 МГц |
600-800 МГц |
740 МГц |
|
Мат. производительность |
42-56 GigaFLOPs |
144-192 GigaFLOPs |
475 GigaFLOPs |
|
Скорость пиксельной обработки |
4,2-5,6 млрд пикселей/с |
14,4-19,2 млрд пикселей/с |
47,5 млрд пикселей/с |
|
Скорость обработки полигонов |
262-350 млн/c |
600-800 млн/с |
740 млн/с |
|
Текстурных блоков |
4 |
8 |
16 |
|
Блоков рендеринга |
4 |
4 |
16 |
|
Энергопотребление |
~25 Вт |
~45 Вт |
~215 Вт |
|
Объем памяти |
256 МБ GDDR3, 128/256 МБ DDR2 |
256 МБ GDDR4, 256 МБ GDDR3, 256 МБ DDR2 |
512 МБ GDDR3 |
|
Шина памяти |
64 бит |
128 бит |
512 бит |
|
Частота памяти |
400-800 МГц |
400-1100 МГц |
825 МГц |
|
Пропускная способность памяти |
6.4-12.8 Гбайт\с |
12.8-35.2 Гбайт\с |
106 Гбайт\с |
|
Кол-во транзисторов |
180 миллионов |
390 миллионов |
700 миллионов |
|
Техпроцесс |
TSMC 65G+ |
TSMC 65G+ |
TSMC 80HS |
|
Разъёмы вывода |
D-Sub+Dual Link DVI+Video-Out (HDMI адаптер) |
2x Dual-Link DVI+Video-Out (HDMI адаптер) |
2xDual Link DVI+Video-Out (HDMI адаптер, HDCP) |
В рамках линейки, как видим, будет довольно большое количество модификаций видеокарт, имеющих разные частоты и оборудованных разными типами памяти. Уже сейчас можно выделить как возможного фаворита Radeon HD 2600XT c высокочастотной памятью GDDR3. Нам кажется несколько неоправданным создание модификации с памятью GDDR4, которая стоит заметно выше предыдущего поколения, греется и потребляет больше энергии, а в условиях 128-битной шины памяти вряд ли раскроет свой потенциал. Впрочем, для того чтобы говорить с уверенностью, нужно сначала увидеть видеокарты в работе.
Отметим, что, к сожалению, AMD не удалось сдержать обещания и выпустить на рынок сразу целую линейку видеокарт нового поколения, покрыв все сегменты рынка: 14 мая выходит только Radeon HD 2900XT, а продукты среднего и нижнего ценового диапазонов появятся в продаже в конце июня. Также чуть позже выйдет самая производительная видеокарта новой линейки - Radeon HD 2900XTX, оборудованная 1 Гбайт памяти GDDR4 и способная работать на более высоких частотах.
Итак, приступим к рассмотрению архитектуры. Сразу оговоримся, что рассматривать мы будем старшую версию ядра, так как младшие не имеют принципиальных различий, кроме уменьшенного числа функциональных блоков.
|
| Архитектура Radeon HD 2900 |
|
| Архитектура Radeon HD 2600 |
|
| Архитектура Radeon HD 2400 |
Архитектура Radeon HD 2000 очень заметно оптимизирована под новое поколение API DirectX. В прошлых поколениях архитектур проектировщикам приходилось искать оптимальное соотношение пиксельных процессоров, выполняющих работу сугубо графического характера, и вершинных, фактически занимающихся математическими вычислениями с плавающей точкой. Это было связано с тем, что раньше весь массив данных проходил по традиционному конвейеру от начала до конца, и при необходимости изменения или повторной обработки приходилось заново всё просчитывать. Теперь можно в любой момент выгрузить данные в память, снова их считать, не дожидаясь конца конвейера, и произвести новые расчёты.
|
| Эволюция архитектур |
Если проследить эволюцию "соотношений сил" между пиксельными и вершинными конвейерами, то можно заметить, как с течением времени ATI всё больше ориентировалась на математическую работу, то есть вершинные шейдеры. Не зря скорость их обработки была коньком архитектур R4x и R5x. Теперь же с унифицированной шейдерной архитектурой, заложенной в требованиях DirectX 10, не нужно ломать голову над поиском оптимального соотношения, скорость обработки вершин в любой момент может быть повышена за счёт простаивающих пиксельных конвейеров, и наоборот.
Семейство Radeon HD 2900 основано на графическом процессоре, разработанном ATI для консоли нового поколения Xbox 360, которое называется Xenos. Как и конкурирующая архитектура G80 от NVIDIA, R600 является суперскалярной архитектурой, ориентированной на параллельное исполнение нескольких потоков данных и в первую очередь математические вычисления. Инженеры использовали почти все выигрышные особенности консольного процессора и развили их. Из сокращений можно отметить разве что отсутствие памяти eDRAM, использовавшейся в Xenos в качестве высокоскоростного кэша.
Рассмотрим ядро в порядке прохождения данных по конвейеру. В самом начале обработки в дело вступает командный интерпретатор (Command processor). Он распоряжается загрузкой данных в память, исполняет часть микрокода. В результате оптимизаций AMD заявляет, что нагрузка на процессор, связанная с этими операциями, снижена на 30%.
Далее Setup Engine, состоящий из вершинного и геометрического ассемблеров и интерполятора, готовит данные для обработки потоковыми процессорами. Он может исполнять три вида функций: сборку вершин (vertex assembly) и тесселяцию, геометрическую обработку (для нововведения DirectX 10 - Geometry Shaders) и выборку и интерполяцию для пиксельных шейдеров. Затем данные передаются диспетчеру.
|
| Диспетчер |
На диспетчере следует остановиться отдельно. ATI называет его Ultra-Threaded Dispatch Processor. Он поддерживает раздельные очереди команд для каждого типа шейдеров. Инструкции и данные поступают в диспетчер и распределяются по очередям. Затем данные из очередей передаются на арбитраж. На каждый SIMD-массив приходится по два арбитра, что даёт возможность обрабатывать по 2 потока данных на массив, то есть до 8 потоков одновременно. Для текстур и вершин - свои арбитры. В зависимости от инструкций данные направляются либо на обработку потоковыми процессорами, либо на текстурную выборку и другие текстурные операции в текстурные блоки. В любой момент при возникновении в конвейере данных, имеющих более высокий приоритет, диспетчер может сбросить даже не до конца обработанные данные в кэш и пустить приоритетные данные на обработку. После этого данные, отправленные ранее в кэш, могут быть снова загружены, и обработка продолжится с того места, где остановилась. Это обеспечивается возможностью потоковой обработки данных, предусмотренной DirectX 10, о которой мы уже говорили в статье про GeForce 8800.
Для вершинных и пиксельных шейдеров предусмотрены собственные кэши, геометрические шейдеры используют кэш вершинных. При этом объём вершинного кэша увеличен в 8 раз по сравнению с архитектурой Radeon X1950. Наличие кэша инструкций позволяет исполнять шейдеры неограниченной длины с неограниченным числом констант.
Диспетчер следит за тем, чтобы исполняющие блоки не простаивали, и при возникновении ситуации, когда обрабатываемые в конвейере данные нуждаются в выборке из памяти или ожидают результатов обработки в другом конвейере, возвращает эти данные в текущем состоянии в очередь и запускает следующие из очереди в обработку. После выполнения условий, необходимых для продолжения обработки, она возобновляется с места остановки.
|
| Потоковый процессор |