ТЕХНОЛОГИИ: Новая надежда
Выхода графического ускорителя нового поколения от ATI, известного под кодовым названием R520, ожидали долго. Даже, пожалуй, слишком долго: мы искали его на Computex, мы надеялись увидеть его в июле, когда nVidia начала продавать видеокарты GeForce 7800GTX, затем в сентябре, когда, казалось, ждать дальше уже было некуда.
Но прошли уже все мыслимые сроки, а R520 все не было.
Тестовая система:
Материнская плата: ASUS A8N SLI Deluxe. Оперативная память: Corsair DDR CMX512-3200XLPRO, 2x512 Мбайт, 2-2-2-10. Видеокарта: nVidia 7800GTX 256 Мбайт, ATI X1800XT 512 Мбайт. Операционная система: Microsoft Windows XP SP2. Драйверы: последние официальные на момент написания статьи. Все настройки системы оставлялись по умолчанию, процессоры функционировали на своих номинальных частотах: Athlon 64 FX-57 2,8 ГГц - множитель 14, шина 200 МГц, память в синхронном режиме с таймингами 2-2-2-10
Вот и получилось, что ситуация на рынке сегодня далеко не в пользу канадцев. Уверенно лидируя в «дешевых» и «интегрированных» нишах, солидных по оборотам, но, увы, не приносящих по-настоящему большой прибыли, самые «вкусные», высокопроизводительные сегменты еще недавно доминировавшая здесь ATI утратила. В результате - провальный квартал и 104 млн. долларов убытков.
Почему так вышло? Думаю, отчасти виноват новый, прогрессивный 90-нм low-k технологический процесс, освоение которого на заводах TSMC, производящей GPU по заказам aTI, вероятно, проходило далеко не так гладко, как рапортуют теперь маркетологи[Все мы помним, что первая итерация 90-нм процессоров Intel получилась «слишком горячей» (большие токи утечки вносили ощутимый вклад в тепловыделение ранних степпингов Prescott), а у aMD - «слишком медленной». Да и nVidia, тоже размещающая заказы на заводах TSMC, предпочла изготавливать свой новый GPU G70 по «старому, дорогому и медленному», зато проверенному 110-нм техпроцессу]. Отчасти - «погоня за двумя зайцами», то есть одновременная разработка и запуск в серию двух совершенно разных продуктов: основанного на унифицированной шейдерной архитектуре процессора R500[На нем построена приставка Xbox 360, выпуск которой намечен на ноябрь ], который невозможно использовать в обычных видеокартах; и нашего сегодняшнего героя R520, построенного по «классической», но сильно переработанной архитектуре. Вдобавок чип получился по-настоящему новым и революционным (после едва ли не трех лет постепенной эволюции удачной линейки Radeon 9xxx), так что его проектирование и доводка наверняка отличались особенной сложностью, и сколько ушло итераций на то, чтобы отловить все ошибки, - знают только инженеры aTI.
Впрочем, довольно толочь воду в ступе. В конце концов, пусть и с полугодовым опозданием, но R520 - перед нами, и в ближайшее время видеокарты на его основе появятся в розничной продаже.
Технические характеристики новинки
Итак, что же удалось сделать ATI? Я бы сказал, невероятно многое. Словно все три года, пока регулярно выходили превосходные видеокарты, полученные экстенсивным расширением старой технологии, инженеры откладывали все по-настоящему интересные задумки в долгий ящик, чтобы потом реализовать их скопом.
Во-первых, радикально переработано сердце любого графического ускорителя - блок пиксельных процессоров, отвечающий за закраску сцены по заданным алгоритмам. Традиционно в этом блоке ставится энное количество одинаковых пиксельных конвейеров, каждый из которых «в параллель» с остальными вычисляет цвет отдельно взятого пиксела (или субпиксела) в нашей сцене[Строго говоря, одиночные конвейеры сейчас уже никто не использует, поскольку гораздо эффективнее собирать их в группы по четыре штуки (процессоры квадов), чтобы они обрабатывали не отдельные пикселы, а блоки 2x2 пиксела (квады). При этом часть логики удается объединить, проводя некоторые операции не над отдельными пикселами, а над квадами целом - это и быстрее и проще]. То есть, единожды попав на какой-нибудь конвейер, пиксел, обрабатываемый соответствующей ему программой - пиксельным шейдером, раз за разом проходит по этому конвейеру, как бы крутится внутри него до тех пор, пока не закончится вычисление его цвета. Соответственно все устройства, и, в частности, текстурные модули, выбирающие из видеопамяти необходимые для этих вычислений данные, напрямую подключены к исполнительным устройствам конвейера. Схема достаточно простая и эффективная: нужно увеличить вычислительную мощность графического процессора - ставим больше конвейеров, и количество обрабатываемых за такт пикселов, а вместе тем и скорость закраски изображения пропорционально возрастет.
Инженеры aTI пошли другим, «процессорным» путем,[Подробнее см. «КТ» #609 (рубрика 'Архитектура ХХ века") ] не став дублировать конвейеры, а организовав из GPU своеобразный суперскалярный процессор с единым конвейером, на котором несколько пикселов могут обрабатываться одновременно. Вместо того чтобы «распихать» пикселы по разным конвейерам, R520 накапливает их (вместе с соответствующими шейдерными инструкциями) в специальном огромном планировщике, который aTI называет Ultra-Threading Dispatch Processor. Почему Ultra? Да потому, что этот планировщик управляет одновременным выполнением колоссального числа операций (512 квадов 2x2 пиксела в High-End, и более скромные 128 квадов - в менее дорогих Middle-End и Low-End графических чипах). Все квады хранятся в длиннющих очередях, и по мере того, как освобождаются вычислительные ресурсы, отправляются на соответствующее устройство, будь то вычислительный, текстурный блок или блок графического Back-end’а (запись результатов во фрейм-буфер, блендинг, z-тест, антиалиасинг и пр.). Это более сложный подход, чем несколько однотипных конвейров, но и более гибкий и эффективный. Например, мы можем сколь угодно гибко варьировать соотношение количества вычислительных и текстурных модулей, так как они больше не подключаются друг к другу, образуя единое целое, а разделены по операциям, которые они выполняют[Подобную оптимизацию можно будет увидеть в ядре R530 - сердце Middle-End ускорителя Radeon X1600. В нем будет три процессора квадов (3x4 = 12 пиксельных конвейера), но всего один процессор текстур (1x4 = 4 TMU). Для современных шейдеров, которые больше занимаются вычислениями, нежели выборкой данных из оперативной памяти, такой подход оправдан, поскольку позволяет рациональнее расходовать площадь кристалла, увеличив число пиксельных конвейеров за счет сокращения числа TMU]. Речь идет о текстурных операциях, которые ранее могли блокировать конвейер до тех пор, пока не будет завершена операция выборки очередного тексела[Традиционный конвейер GPU устроен гораздо проще конвейера CPU, так что переупорядочивания инструкций, которое позволило бы обогнать застрявшую в конвейере инструкцию другой, не зависящей от нее, - в графических процессорах нет].