Каталог
Новая архитектураСогласно NVIDIA, работа над GPU G80 и видеокартами GeForce 8800 GTX и GeForce 8800 началась летом 2002 года. Чтобы обеспечить новый уровень производительности, G80 сделан с множеством параллельных, унифицированных шейдеров, потоковыми процессорами NVIDIA и технологией GigaThread. В отличие от GeForce 7900 GTX, у этого процессора совершенно новая архитектура, которая должна обеспечить поддержку DirectX 10. NVIDIA хвалится, что по сравнению с GeForce 7900 GTX у GeForce 8800 GTX производительность в современных приложениях выше в 2 раза, а некоторые операции шейдинга выполняются до 11 раз быстрее. Рассмотрим некоторые ключевые особенностей этой новой архитектуры. Архитектура унифицированных шейдеров В предыдущих архитектурах своих процессоров и ATI, и NVIDIA делали совершенно разные пиксельные и вершинные шейдеры, предназначенные для выполнения только одной задачи. Пиксельные шейдеры работали с пикселями, а вершинные – только с вершинами. У них не было общей работы, и они не перераспределяли работу между собой. Это было сделано потому, что в предыдущих версиях DirectX пиксельные и вершинные шейдеры были разными. Пиксельные и вершинные модули управлялись разными наборами команд, которые были приспособлены под определенные приложения; например, пиксельные и вершинные шейдеры поддерживали разное количество входов и разные регистры констант. Но в DirectX 10 все шейдеры работают с одним и тем же набором команд и поддерживают одинаковое число регистров и входов. Каждый шейдер – это универсальный программируемый шейдер с плавающей запятой, работает ли он как вершинный, пиксельный или геометрический. Другими словами, ни один вычислительный блок не отличается функциональностью от других. Это позволяет шейдерам работать с данными любых типов, как с обсчетом пикселей, так и с обсчетом вершин. В результате этого повышается и производительность, и эффективность. Рассмотрим в качестве примера эти 2 картинки. В случае старой архитектуры графических процессоров в первом случае вершинные шейдеры загружены максимально, а пиксельные шейдеры почти все простаивают. Учитывая, что в предыдущих архитектурах графических процессоров NVIDIA соотношение между пиксельными и вершинными шейдерами было 3:1, то в этом случае получается, что большая часть вычислительных мощностей GPU не используется! В нижнем примере (вода) – всё наоборот: вершинные шейдеры бездействуют, а пиксельные шейдеры работают по полной программе. При унифицированной архитектуре шейдерные модули могут выполнять любую работу, если нужно обсчитывать пиксели – переориентируем большую часть шейдеров на пиксели, если больше вершин – то наоборот. В результате такой универсальности значительно увеличивается производительность и эффективность, также важно то, что разработчикам программного обеспечения об этом не нужно думать. Унифицированные шейдеры GeForce 8800 могут также использоваться без проблем с DirectX 9 и более старыми версиями DirectX, а так же с OpenGL. Перед тем как продолжить, нужно отметить, что архитектура унифицированных шейдеров не является требованием DirectX 10. Формально, для DX10 нужен только набор унифицированных команд. Но согласно NVIDIA: “разработчики GeForce 8800 уверены, что архитектура GPU с унифицированными шейдерами наилучшим образом подходит для равномерной и эффективной загрузки шейдерных вычислений DirectX 10 и эффективного использования питания”. [N4-128 потоковых процессоров] Сердцем нового графического процессора NVIDIA G80 являются новые шейдерные блоки, которым NVIDIA дала название “потоковые процессоры”. Как уже говорилось, они одинаково хорошо справляются с обсчетом вершин, пикселей, физики и геометрии, а управляет ими распределительная и контролирующая логика GPU, которая может динамически перераспределять между ними задачи таким образом, чтобы поддерживать максимальную общую производительность. Потоковые процессоры и ветвление GigaThreadЗа последние несколько лет инженеры NVIDIA проанализировали тысячи программ-шейдеров самых новых игр. В результате этого анализа, например, в NVIDIA обнаружили, что одними из наиболее часто используемых математических функций являются операции сложения-умножения (MADD). Поэтому для каждого пиксельного конвейера G70 было удвоено количество MADD инструкций, в результате чего пропускная способность пиксельных шейдеров увеличилась. Для G80 ключевыми являются скалярные вычисления. Инженеры NVIDIA заметили, что такие вычисления становятся все более распространенными, и что традиционные векторные GPU, такие как G70, с трудом справляются со скалярными вычислениями и таким процессорам трудно эффективно управлять ими. Поэтому для шейдерных процессоров G80 (так называемых "потоковых" процессоров), NVIDIA ввела скалярную архитектуру. Чтобы обеспечить хорошую производительность, векторно-шейдерные вычисления в процессоре G80 преобразуются в скалярные операции. Каждый потоковый процессор может работает с MAD и MUL инструкциями, и поддерживает стандарт IEEE 754 плавающей запятой. На этом рисунке представлена блок-схема процессора G80. Здесь маленькие зеленые квадратики – это потоковые процессоры, и как видите, каждая группа потоковых процессоров имеет свой собственный модуль адреса текстуры и модуль фильтрации, а так же кэш L1. Потоковые процессоры объединены в группы по 16 процессоров в каждой. Для простоты, назовем группу из 16 процессоров "банком" потоковых процессоров. 16 потоковых процессоров в банке, всего 8 банков, итого 128 потоковых процессоров у GeForce 8800 GTX. У GeForce 8800 GTS 2 банка отключены – то есть у неё всего 96 потоковых процессоров. Потоковые процессоры работают на своей собственной частоте, которая не зависит от тактовой частоты остальной части графического ядра. Например, у GeForce 8800 GTX потоковые процессоры работают на частоте 1,35 ГГц, а остальная часть GPU – на частоте 575 МГц. Если помните, NVIDIA ещё в G70/G71 применила разнесение по частотам; вершинные шейдеры этих процессоров работают на немного более высокой частоте, чем остальная часть ядра. Для ветвления вычислений в G80 применяется технология GigaThread. Заметим, что в последнее время эту функцию уже поддерживали графические процессоры и ATI, и NVIDIA. Хотя считалось, что GPU ATI R5xx могли задействовать гораздо больше потоков на 1 квад пиксельных шейдеров, а также использовать более тонкое разделение на потоки, чем процессоры NVIDIA G70 и NV40. NVIDIA не сообщает ничего о том, как в G80 было улучшено ветвление, говорят только то, что в любой точке могут быть "тысячи" потоков. NVIDIA, однако, заявляет, что у неё более тонкая потоковая гранулярность – 32 пиксельная гранулярность на каждый пиксельный шейдер, в то время как у ATI R580 48 пиксельная. Остальные части GPUБлоки фильтрации текстуры (TF) G80 вынесены от потоковых процессоров и за один такт могут обработать до 64 пикселей при обычной фильтрации текстур (по сравнению с 24 у G70/71), 32 пикселя при билинейной фильтрации, и 32 пикселя при 2X анизотропной фильтрации. GeForce 8800 GTX имеет 6 блоков растеризации (ROP) (у GTS их 5), и каждый может обработать 4 пикселя, то есть всего – 24 ROP'а (эффективных) у 8800 GTX, и 20 ROP'ов у 8800 GTS. Более подробно подсистему памяти мы обсудим чуть позже, так как они у 8800 GTX и 8800 GTS немного разные, но заметим, что у G80, как и у предыдущих процессоров, имеется высокоскоростная поперечная шина с 64-битными контроллерами памяти (у ATI R520/R580 были 32-битные контроллеры), что позволяет контроллеру памяти одновременно обрабатывать больше запросов чтения / записи. Эти контроллеры поддерживают память DDR1, DDR2, DDR3, GDDR3 и GDDR4. Технология Quantum EffectsПрежде чем мы обсудим отличия 8800 GTX и GTS, и соответствующие видеокарты, давайте вкратце рассмотрим технологию “квантовые эффекты" – NVIDIA Quantum Effects. Это название относится к NVIDIA'вской реализации движка Havok FX для обсчета физики графическим процессором. Как Вы, наверное, помните, движок Havok FX реализует обработку физики в любом GPU, который поддерживает shader model 3.0 (или больше). К ним относятся процессоры GeForce 6 и 7 серий. Как уже говорилось ранее, обсчет физики производится потоковыми процессорами GPU G80, а не какими-то специализированными расчетными модулями. [N5-8800 GTX и GTS] Для начала NVIDIA установила G80 на 2 видеокарты: GeForce 8800 GTX и GeForce 8800 GTS.
Как видите, количество транзисторов у GeForce 8800 GTX и 8800 GTS одинаковое, это потому, что это абсолютно одинаковые GPU G80. Как уже было сказано, основное отличие этих вариантов GPU – 2 отключенных банка потоковых процессоров – всего 32 шейдера. При этом число рабочих шейдерных блоков со 128 у GeForce 8800 GTX уменьшено до 96 у GeForce 8800 GTS. Также NVIDIA отключила 1 ROP (блок растеризации). Частоты ядер и памяти у этих видеокарт также немного отличаются: частота ядра GeForce 8800 GTX - 575 МГц, у GeForce 8800 GTS – 500 МГц. Шейдерные блоки GTX работают на частоте 1350 МГц, GTS – 1200 МГц. У GeForce 8800 GTS NVIDIA также использует более узкий 320-битный интерфейс памяти и 640 МБ более медленной памяти, которая работает на частоте 800 МГц. У GeForce 8800 GTX 384-битный интерфейс памяти, 768 МБ памяти / 900 МГц. И, конечно, совсем другая цена. Сами по себе видеокарты сильно отличаются: Как видно на этих фотографиях, референс-платы GeForce 8800 черные (впервые для NVIDIA). С модулем охлаждения GeForce 8800 GTX и 8800 GTS – двуслотовые. GeForce 8800 GTX немного длиннее, чем GeForce 8800 GTS: её длина – 267 мм, против 229 мм у GeForce 8800 GTS, и, как было заявлено ранее, у GeForce 8800 GTX 2 PCIe разъема питания. Зачем 2? Максимальное энергопотребление GeForce 8800 GTX – 177 Вт. Однако в NVIDIA говорят, что это может быть только в крайнем случае, когда все функциональные блоки GPU будут максимально загружены, а в обычных играх при тестировании видеокарта потребляла в среднем 116 - 120 Вт, максимум – 145 Вт. Так как каждый внешний разъём питания PCIe на самой видеокарте рассчитан максимум на 75 Вт, и слот PCIe тоже рассчитан максимум на 75 Вт, то 2-х этих разъемов буден недостаточно для подвода 177 Вт, поэтому пришлось сделать 2 внешних разъёма питания PCIe. Добавив второй разъём, NVIDIA обеспечила 8800 GTX солидный запас мощности. Кстати, максимальное энергопотребление у 8800 GTS – 147 Вт, так что она может обойтись и одним разъёмом питания PCIe. Говоря о питании, нужно сказать, что для GeForce 8800 GTX NVIDIA рекомендует минимум 450 Вт блок питания (30A по 12В шине) и 400 Вт блок питания для GeForce 8800 GTS (26A по 12В шине). Источник: www.firingsquad.com |