Выпустив в сентябре 2009-го Radeon HD 5870, AMD начала новую главу в
истории видеокарт. Тогда мы признали HD 5870 самой быстрой в мире,
отдали ей медаль «Выбор редакции» и затаили дыхание в ожидании новых
GeForce. Ждать пришлось долго: пока NVIDIA обнародовала скупые сведения о
следующем поколении своих плат, AMD успела выпустить двойную Radeon HD
5970 и прочно обосноваться в нижнем и среднем ценовом сегментах. Наконец в нашей тестовой лаборатории появились первые
образцы NVIDIA GeForce GTX 4х0 — и сейчас мы готовы подробно рассказать,
чем закончился бой GeForce GTX 480 с Radeon HD 5870 и HD 5970.
Архитектура процессора Новые чипы NVIDIA устроены непросто.
Недальновидные люди скажут, что NVIDIA просто взяла GPU GeForceGTX 285,
впихнула в него три миллиарда транзисторов, в два раза увеличила число
процессорных ядер и получила GF100 — процессор для GeForce GTX 4x0. На
самом деле все куда сложнее. Да, сегодняшнее появление GF100 не сравнить
с приходом G80 в 2006-м — революции не произошло, в основе GF100 лежит
все та же архитектура потоковых процессоров, — но по сравнению с GT200
изменили очень много. Забегая вперед, скажем, что хотя Fermi и
продвигался как суперпроцессор для работы с любыми вычислениями и
поддержкой C++, но про игроков NVIDIA тоже не забыла. Начнем с
того, что в GF100 иначе скомпонованы ядра. Процессор GF100 разделен на
четыре больших кластера под названием Graphics Processing Clusters. На
каждый из них приходится по четыре блока SM (Streaming Multiprocessors,
потоковые мультипроцессоры), на которые выделено по 32 CUDA-ядра —
теперь так называют потоковые процессоры. В общей сложности на один
GF100 приходится 512 CUDA-ядер против 240 на GT200. Чтобы избежать
перегрева, на GF100 частоты CUDA-ядер снижены с 1476 до 1401 МГц.
Каждое из CUDA-ядер способно выполнять логические операции, операции с
целыми числами и числами одинарной и двойной точности. Скорость
обработки чисел двойной точности значительно выросла по сравнению с
предыдущей архитектурой, GT200. Играм это не особо нужно, но благодаря
этому графические процессоры NVIDIA приблизились по возможностям к
центральным процессорам. Помимо CUDA-ядер, в состав SM-блока входят
еще четыре компонента: — ядра загрузки/выгрузки, на них
рассчитываются адреса хранения нужной информации; — четыре блока
SFU (Special Function Units, исполнительные модули специальных
функций), которые выполняют сложные математические операции: нахождение
синуса, косинуса, извлечение корня; — блоки текстурирования. В
GT200 на три SM-набора приходилось восемь текстурных блоков, которые
делились между SM-наборами по мере надобности. В GF100 каждый SM-набор
получил четыре собственных текстурных блока. В целом блоков
текстурирования стало меньше (64 на GF100 против 80 на GT200), но
работают они гораздо эффективнее благодаря серьезной оптимизации
архитектуры. — самое главное — движок PolyMorph engine. Это
целый блок для расчета тесселяции, главной гордости DirectX 11 (о том,
что такое тесселяция, подробно рассказано в статье «AMD бьет первой» в
«Игромании» №12/2009). PolyMorph engine работает параллельно с
остальными системами, что серьезно ускоряет обработку графики. К
примеру, PolyMorph engine получает порцию информации, обрабатывает ее и
отсылает результат обратно на SM-блоки. В то время пока SM-блоки
накладывают шейдеры на новые полигоны, PolyMorph engine уже обрабатывает
следующий блок данных. Архитектура подсистемы памяти
Глобальные изменения претерпела архитектура кэш-памяти видеокарт. По
традиции на каждом процессоре присутствует память для обмена данными
между потоками вычислений, но есть и кэш первого уровня (L1-кэш) для
ускорения обращений к глобальной памяти. Обе эти памяти делят между
собой один блок статической памяти на кристалле (SRAM). Когда считается
графика, L1-кэш особо не нужен (все вычисления стандартны), ему выдается
всего 16 Кб. Оставшиеся 48 Кб идут под общую память, которая
используется, например, для хранения геометрических данных при
тесселляции. Когда же начинаются расчеты общего назначения, то все
меняется с точностью до наоборот. Еще сильнее модифицирована
кэш-память второго уровня. Для ускорения работы GPGPU инженеры NVIDIA
унифицировали L2-кэш, который теперь используется как при стандартном
текстурировании, так и при операциях чтения/записи. Количество
блоков растеризации увеличено в полтора раза — с 32 у GT200 до 48 у
GF100. Увеличилась также эффективность обработки пикселей при
использовании сглаживания (антиалиасинга); добавились новые режимы
сглаживания, позволяющие использовать до 32 сэмплов на пиксель. Кроме
того, в блоках растеризации подключили продвинутые режимы TMAA
(Transparency Multisample Anti-Aliasing, сглаживание полупрозрачных
текстур), благодаря чему оконные стекла, витрины, изгороди, стеклянные и
пластиковые стаканы, столики и тому подобные объекты будут выглядеть
гораздо реалистичнее. Как это работает Принцип работы GF100
следующий. От центрального процессора через особый интерфейс (Host
Interface) приходит команда на расчет. Специальный блок вытаскивает
нужные данные из основной памяти (1536 Мб GDDR5) и копирует их в буфер
кадров, доступ к которому обеспечивают шесть контроллеров памяти по
интерфейсу шириной 384 бита. При обработке как графических, так и
вычислительных задач (например, PhysX) важно обеспечить равномерную
загрузку всех потоковых мультипроцессоров (SM) в чипе. За это отвечает
двухуровневый планировщик потоков GigaThread engine: он формирует пакеты
из 32 задач, распределяя их между потоковыми мультипроцессорами таким
образом, чтобы нагрузка была максимально равномерной. На один SM-блок
приходит по два таких пакета, которые потом отсылаются на расчет в
CUDA-ядра или SFU. Благодаря такой системе процессор не тратит
время на сборы и сортировку потоков, ведь они приходят уже готовыми
пакетами. К примеру, когда нужно обсчитать и PhysX, и графику, то
необходимо быстро переключаться между этими двумя режимами. GigaThread
engine позволяет переключаться с задержкой не больше 20 мкс, что почти в
десять раз быстрее, чем на предыдущих архитектурах. На заметку
Впервые за многие годы мы тестируем видеокарты NVIDIA с оглядкой на
возможности флагманов AMD. И тут, надо сказать, паритет. У NVIDIA на
руках такие козыри, как 3D Vision и доработанный PhysX, который научили
экономить ресурсы графики и красиво прорисовывать воду (в одной из
демонстраций обрабатывается до 120 000 частиц!). У AMD в запасе
технология ATI Eyefinity, обеспечивающая работу на шести мониторах, и
полная поддержка защищенных Blu-ray. У NVIDIA есть технологии,
похожие на Eyefinity. Уже давно существуют системы Quadro Plex,
поддерживающие до восьми дисплеев, но они явно ориентированы не на
массовую аудиторию, так как стоят сотни тысяч рублей. Более доступная
технология — NVIDIA Surround — анонсирована в начале года: она позволяет
подключить к компьютеру три монитора, но работает не с одной
видеокартой, как Eyefinity, а с SLI-связкой. С поддержкой Full
HD на первый взгляд все в порядке. Еще на GeForce GT 220 установили
новый движок ускорения декодирования VP4, который не только на отлично
справляется с MPEG-1/2, H.264 и VC-1, но еще и поддерживает MPEG-4 ASP.
Также видеокарты NVIDIA научились выводить звук через HDMI, чего раньше
не наблюдалось. Но с проигрыванием некоторых лицензионных фильмов с
закодированными дорожками все еще остались проблемы: платы NVIDIA, в
отличие от карт AMD, не могут вывести звук на ресивер.
|