Что такое шейдерные блоки

Шейдерная революция Nvidia: десять лет спустя

Оглавление

Вступление

Говорят, в Германии «олдтаймером» может считаться автомобиль, выпущенный тридцать и более лет назад. Почему именно такой срок выбран критерием, история умалчивает, но думаю, немцам можно доверять в этом вопросе, ведь именно Карл Бенц в 1886 году получил патент на первый в истории автомобиль с двигателем внутреннего сгорания.

реклама

Что такое тридцать лет для компьютерной индустрии? Определенно – целая вечность: тридцать лет назад, в 1986 году, появился на свет первый ноутбук – IBM PC Convertible, а всего пятью годами ранее произошло событие, о котором знает наверно каждый человек, хоть сколько-нибудь интересующийся историей развития персональных компьютеров. В 1981 году на рынок вышла первая модель персонального компьютера – IBM PC 5150.

И если тридцатилетняя Ferrari F40 по времени прохождения северной петли Нюрбургринга даст прикурить многим современным спорткарам, то можно не сомневаться, что тридцатилетний персональный компьютер уступит по вычислительной мощности даже каким-нибудь модным в определенных кругах публики «умным часам».

Очевидно, что компьютерная отрасль развивается быстрее автомобильной, а значит и компьютеры устаревают быстрее, чем автомобили. А теперь вопрос – какой срок для компьютеров и комплектующих может являться критерием, позволяющим отнести их к категории «ретро» или «олдтайм»? Все исходные данные для ответа на вопрос у нас есть: 130 лет – история развития автомобилей с двигателем внутреннего сгорания, 35 лет – история развития персональных компьютеров, 30 лет – критерий принадлежности к категории «олдтайм» для автомобилей.

Вычислив нехитрую пропорцию, находим, что критерием принадлежности компьютерной техники к категории «олдтайм» может являться срок восемь лет. Разумеется, расчет скорее шуточный, но тем не менее…

Восемь лет назад на рынок вышел первый процессор Intel Core i7 с архитектурой Nehalem. Он пришел на смену процессорам Intel Core 2, появившимся на рынке летом 2006 года и сместившим процессоры AMD с лидирующих позиций практически во всех тестах производительности.

8 ноября 2006 года запомнилось выходом видеокарты GeForce 8800 GTX с новой унифицированной шейдерной архитектурой. Производительность нового продукта Nvidia существенно превзошла уровень, который могли предложить предыдущие флагманы – GeForce 7900 GTX, Radeon X1950 XTX и даже оснащенная двумя графическими процессорами видеокарта GeForce 7950 GX2. Спустя полгода была представлена последняя на данный момент модель Nvidia серии «Ultra» – GeForce 8800 Ultra, получившая новую ревизию GPU G80, что позволило заметно повысить тактовые частоты и упрочить и без того незыблемое лидерство калифорнийской компании.

Десятилетие выхода, не побоюсь этого слова, легендарной видеокарты GeForce 8800 GTX почему-то оказалось практически незамеченным в Рунете, что побудило меня протестировать часть своей небольшой коллекции графических ускорителей и написать об этом статью.

Революция

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

реклама

Первым графическим процессором с аппаратной поддержкой шейдеров DirectX 8 стал NV20, лежащий в основе видеокарты GeForce3. Шейдеры первой версии (SM1) были довольно простыми – небольшая программа могла выполнять ограниченный набор команд. Более длинные и сложные шейдеры SM2 с расширенным набором команд появились с выходом GPU R300 и видеокарт Radeon 9500/9700, поддерживающих DirectX 9. Очередное увеличение возможностей принесли модели GeForce шестой серии, поддерживающие DirectX 9.0c и SM3.

В чем же тогда заключалась шейдерная революция, если и до этого практически с каждым новым поколением повышалась производительность видеокарт и расширялись их возможности?

До появления GeForce 8800 GTX дискретные видеокарты использовали раздельные блоки исполнения пиксельных и вершинных шейдеров в составе графического процессора: блоки вершинных шейдеров (vertex) производили математические операции с вершинами, из которых состоят 3D-объекты, тогда как блоки пиксельных шейдеров (pixel) выполняли инструкции растеризации пикселей, из которых состоит изображение. Помимо унифицированных блоков исполнения шейдеров, новая архитектура получила целый ряд иных качественных и количественных улучшений, наделив видеоядро новыми возможностями. Подробно со всеми особенностями архитектуры G80 можно ознакомиться, например, в этом материале.

Важным является то, что раньше для выполнения одного типа шейдеров можно было задействовать только определенные блоки графического процессора, тогда как блоки, предназначенные для выполнения иных шейдеров, могли оказаться ничем не задействованы, то есть графический процессор далеко не всегда использовал 100% своих возможностей.

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

Таким образом, резкое повышение производительности в сравнении с DX9-флагманами Nvidia и ATI было достигнуто не только за счет увеличения абсолютного количества транзисторов графического процессора, но и за счет качественных изменений архитектуры, в чем можно усмотреть некие аналогии со вторым законом диалектики.

По любым меркам видеокарты, ограниченные поддержкой DirectX 10, и, тем более, DirectX 9, давно устарели и монстров своего времени можно смело отнести к категории «ретро». Посмотрим, на что они были способны?

Участники тестирования

Я постарался собрать флагманские видеокарты Nvidia, оснащенные интерфейсом PCI-Express и поддерживающие DirectX 9/10, но с некоторыми оговорками. Во-первых – предпочтение было отдано видеокартам с одним GPU. Этого достаточно для того, чтобы сравнить производительность архитектуры каждого поколения, кроме того ни одной мультипроцессорной модели у меня, к сожалению, нет. Во-вторых – в пределах одного поколения предпочтение отдавалось «финальной» версии флагмана, если так можно выразиться. Единственное исключение было сделано для GeForce 7 series – присутствуют как 7800 GTX, так и 7900 GTX.

Более новые флагманы своего поколения путем понижения частот позволяют эмулировать ранних лидеров. Пусть это и не совсем корректно из-за вероятных различий в таймингах видеопамяти или при некотором изменении архитектуры ядра, но позволяет примерно представить уровень производительности соответствующих продуктов.

Итак, представляю участников.

ASUS GeForce 6800 Ultra 512MB

реклама

Шестая серия видеокарт GeForce впервые была анонсирована в апреле 2004 года. Флагманом была 6800 Ultra с интерфейсом AGP 8X и частотами 400/1100 МГц. Графический процессор NV40, произведенный по технологии 130 нм, получил 16 пиксельных и 6 вершинных конвейеров, видеокарта оснащалась 256 Мбайт видеопамяти с шиной 256 бит. Позднее некоторые вендоры повысили частоту графического процессора до 425 МГц. Таким был последний флагман Nvidia, изначально разработанный для интерфейса AGP.

Версия 6800 Ultra для интерфейса PCI-Express получила тот же графический процессор NV40, на одной подложке с которым расположился переходной мост HSI. Расположение последнего непосредственно рядом с графическим процессором, а не на печатной плате, как в случае младших решений, было обусловлено большей скоростью работы такой конструкции, получившей собственное обозначение – NV45.

Частоты 6800 Ultra в версии для PCI-Express обычно составляли те же 425/1100 МГц, но лишь в версии с 256 Мбайт видеопамяти. Эталонными частотами для варианта с 512 Мбайт вроде бы являлись 400/1050 МГц, но некоторые вендоры по-своему решили этот вопрос, выпустив варианты 425/1050 МГц и 425/1100 МГц. И мой экземпляр из таких – с повышенными частотами графического процессора и памяти.

реклама

Существует мнение, что понижение частоты памяти в случае видеокарты с 512 Мбайт обусловливалось повышенной нагрузкой на контроллер памяти. Возможно, отчасти это так, но, на мой взгляд, все банальнее – если в варианте с 256 Мбайт тепло от всех восьми микросхем памяти отводилось через радиаторы, то в случае варианта с 512 Мбайт памяти радиаторы были установлены лишь на половине из шестнадцати микросхем.

Источник

Руководство покупателя игровой видеокарты


Последнее обновление от 28.09.2012


Основные характеристики видеокарт

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

Тактовая частота видеочипа

Рабочая частота GPU обычно измеряется в мегагерцах, т. е. миллионах тактов в секунду. Эта характеристика прямо влияет на производительность видеочипа — чем она выше, тем больший объем работы GPU может выполнить в единицу времени, обработать большее количество вершин и пикселей. Пример из реальной жизни: частота видеочипа, установленного на плате Radeon HD 6670 равна 840 МГц, а точно такой же чип в модели Radeon HD 6570 работает на частоте в 650 МГц. Соответственно будут отличаться и все основные характеристики производительности. Но далеко не только рабочая частота чипа определяет производительность, на его скорость сильно влияет и сама графическая архитектура: устройство и количество исполнительных блоков, их характеристики и т. п.

В некоторых случаях тактовая частота отдельных блоков GPU отличается от частоты работы остального чипа. То есть, разные части GPU работают на разных частотах, и сделано это для увеличения эффективности, ведь некоторые блоки способны работать на повышенных частотах, а другие — нет. Такими GPU комплектуется большинство видеокарт GeForce от NVIDIA. Из свежих примеров приведём видеочип в модели GTX 580, большая часть которого работает на частоте 772 МГц, а универсальные вычислительные блоки чипа имеют повышенную вдвое частоту — 1544 МГц.

Скорость заполнения (филлрейт)

Скорость заполнения показывает, с какой скоростью видеочип способен отрисовывать пиксели. Различают два типа филлрейта: пиксельный (pixel fill rate) и текстурный (texel rate). Пиксельная скорость заполнения показывает скорость отрисовки пикселей на экране и зависит от рабочей частоты и количества блоков ROP (блоков операций растеризации и блендинга), а текстурная — это скорость выборки текстурных данных, которая зависит от частоты работы и количества текстурных блоков.

Например, пиковый пиксельный филлрейт у GeForce GTX 560 Ti равен 822 (частота чипа) × 32 (количество блоков ROP) = 26304 мегапикселей в секунду, а текстурный — 822 × 64 (кол-во блоков текстурирования) = 52608 мегатекселей/с. Упрощённо дело обстоит так — чем больше первое число — тем быстрее видеокарта может отрисовывать готовые пиксели, а чем больше второе — тем быстрее производится выборка текстурных данных.

Хотя важность «чистого» филлрейта в последнее время заметно снизилась, уступив скорости вычислений, эти параметры всё ещё остаются весьма важными, особенно для игр с несложной геометрией и сравнительно простыми пиксельными и вершинными вычислениями. Так что оба параметра остаются важными и для современных игр, но они должны быть сбалансированы. Поэтому количество блоков ROP в современных видеочипах обычно меньше количества текстурных блоков.

Количество вычислительных (шейдерных) блоков или процессоров

Пожалуй, сейчас эти блоки — главные части видеочипа. Они выполняют специальные программы, известные как шейдеры. Причём, если раньше пиксельные шейдеры выполняли блоки пиксельных шейдеров, а вершинные — вершинные блоки, то с некоторого времени графические архитектуры были унифицированы, и эти универсальные вычислительные блоки стали заниматься различными расчётами: вершинными, пиксельными, геометрическими и даже универсальными вычислениями.

Впервые унифицированная архитектура была применена в видеочипе игровой консоли Microsoft Xbox 360, этот графический процессор был разработан компанией ATI (впоследствии купленной AMD). А в видеочипах для персональных компьютеров унифицированные шейдерные блоки появились ещё в плате NVIDIA GeForce 8800. И с тех пор все новые видеочипы основаны на унифицированной архитектуре, которая имеет универсальный код для разных шейдерных программ (вершинных, пиксельных, геометрических и пр.), и соответствующие унифицированные процессоры могут выполнить любые программы.

По числу вычислительных блоков и их частоте можно сравнивать математическую производительность разных видеокарт. Большая часть игр сейчас ограничена производительностью исполнения пиксельных шейдеров, поэтому количество этих блоков весьма важно. К примеру, если одна модель видеокарты основана на GPU с 384 вычислительными процессорами в его составе, а другая из той же линейки имеет GPU с 192 вычислительными блоками, то при равной частоте вторая будет вдвое медленнее обрабатывать любой тип шейдеров, и в целом будет настолько же производительнее.

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

Блоки текстурирования (TMU)

Эти блоки GPU работают совместно с вычислительными процессорами, ими осуществляется выборка и фильтрация текстурных и прочих данных, необходимых для построения сцены и универсальных вычислений. Число текстурных блоков в видеочипе определяет текстурную производительность — то есть скорость выборки текселей из текстур.

Хотя в последнее время больший упор делается на математические расчеты, а часть текстур заменяется процедурными, нагрузка на блоки TMU и сейчас довольно велика, так как кроме основных текстур, выборки необходимо делать и из карт нормалей и смещений, а также внеэкранных буферов рендеринга render target.

С учётом упора многих игр в том числе и в производительность блоков текстурирования, можно сказать, что количество блоков TMU и соответствующая высокая текстурная производительность также являются одними из важнейших параметров для видеочипов. Особенное влияние этот параметр оказывает на скорость рендеринга картинки при использовании анизотропной фильтрации, требующие дополнительных текстурных выборок, а также при сложных алгоритмах мягких теней и новомодных алгоритмах вроде Screen Space Ambient Occlusion.

Блоки операций растеризации (ROP)

Блоки растеризации осуществляют операции записи рассчитанных видеокартой пикселей в буферы и операции их смешивания (блендинга). Как мы уже отмечали выше, производительность блоков ROP влияет на филлрейт и это — одна из основных характеристик видеокарт всех времён. И хотя в последнее время её значение также несколько снизилось, всё ещё попадаются случаи, когда производительность приложений зависит от скорости и количества блоков ROP. Чаще всего это объясняется активным использованием фильтров постобработки и включенным антиалиасингом при высоких игровых настройках.

Ещё раз отметим, что современные видеочипы нельзя оценивать только числом разнообразных блоков и их частотой. Каждая серия GPU использует новую архитектуру, в которой исполнительные блоки сильно отличаются от старых, да и соотношение количества разных блоков может отличаться. Так, блоки ROP компании AMD в некоторых решениях могут выполнять за такт больше работы, чем блоки в решениях NVIDIA, и наоборот. То же самое касается и способностей текстурных блоков TMU — они разные в разных поколениях GPU разных производителей, и это нужно учитывать при сравнении.

Вплоть до последнего времени, количество блоков обработки геометрии было не особенно важным. Одного блока на GPU хватало для большинства задач, так как геометрия в играх была довольно простой и основным упором производительности были математические вычисления. Важность параллельной обработки геометрии и количества соответствующих блоков резко выросли при появлении в DirectX 11 поддержки тесселяции геометрии. Компания NVIDIA первой распараллелила обработку геометрических данных, когда в её чипах семейства GF1xx появилось по несколько соответстующих блоков. Затем, похожее решение выпустила и AMD (только в топовых решениях линейки Radeon HD 6700 на базе чипов Cayman).

В рамках этого материала мы не будем вдаваться в подробности, их можно прочитать в базовых материалах нашего сайта, посвященных DirectX 11-совместимым графическим процессорам. В данном случае для нас важно то, что количество блоков обработки геометрии очень сильно влияет на общую производительность в самых новых играх, использующих тесселяцию, вроде Metro 2033, HAWX 2 и Crysis 2 (с последними патчами). И при выборе современной игровой видеокарты очень важно обращать внимание и на геометрическую производительность.

Собственная память используется видеочипами для хранения необходимых данных: текстур, вершин, данных буферов и т. п. Казалось бы, что чем её больше — тем всегда лучше. Но не всё так просто, оценка мощности видеокарты по объему видеопамяти — это наиболее распространенная ошибка! Значение объёма видеопамяти неопытные пользователи переоценивают чаще всего, до сих пор используя именно его для сравнения разных моделей видеокарт. Оно и понятно — этот параметр указывается в списках характеристик готовых систем одним из первых, да и на коробках видеокарт его пишут крупным шрифтом. Поэтому неискушённому покупателю кажется, что раз памяти в два раза больше, то и скорость у такого решения должна быть в два раза выше. Реальность же от этого мифа отличается тем, что память бывает разных типов и характеристик, а рост производительности растёт лишь до определенного объёма, а после его достижения попросту останавливается.

Так, в каждой игре и при определённых настройках и игровых сценах есть некий объём видеопамяти, которого хватит для всех данных. И хоть ты 4 ГБ видеопамяти туда поставь — у неё не появится причин для ускорения рендеринга, скорость будут ограничивать исполнительные блоки, о которых речь шла выше, а памяти просто будет достаточно. Именно поэтому во многих случаях видеокарта с 1,5 ГБ видеопамяти работает с той же скоростью, что и карта с 3 ГБ (при прочих равных условиях).

Ситуации, когда больший объём памяти приводит к видимому увеличению производительности, существуют — это очень требовательные игры, особенно в сверхвысоких разрешениях и при максимальных настройках качества. Но такие случаи встречаются не всегда и объём памяти учитывать нужно, не забывая о том, что выше определённого объема производительность просто уже не вырастет. Есть у чипов памяти и более важные параметры, такие как ширина шины памяти и её рабочая частота. Эта тема настолько обширна, что подробнее о выборе объёма видеопамяти мы ещё остановимся в шестой части нашего материала.

Ширина шины памяти

Ширина шины памяти является важнейшей характеристикой, влияющей на пропускную способность памяти (ПСП). Большая ширина позволяет передавать большее количество информации из видеопамяти в GPU и обратно в единицу времени, что положительно влияет на производительность в большинстве случаев. Теоретически, по 256-битной шине можно передать в два раза больше данных за такт, чем по 128-битной. На практике разница в скорости рендеринга хоть и не достигает двух раз, но весьма близка к этому во многих случаях с упором в пропускную способность видеопамяти.

Современные игровые видеокарты используют разную ширину шины: от 64 до 384 бит (ранее были чипы и с 512-битной шиной), в зависимости от ценового диапазона и времени выпуска конкретной модели GPU. Для самых дешёвых видеокарт уровня low-end чаще всего используется 64 и реже 128 бит, для среднего уровня от 128 до 256 бит, ну а видеокарты из верхнего ценового диапазона используют шины от 256 до 384 бит шириной. Ширина шины уже не может расти чисто из-за физических ограничений — размер кристалла GPU недостаточен для разводки более чем 512-битной шины, и это обходится слишком дорого. Поэтому наращивание ПСП сейчас осуществляется при помощи использования новых типов памяти (см. далее).

Ещё одним параметром, влияющим на пропускную способность памяти, является её тактовая частота. А повышение ПСП часто напрямую влияет на производительность видеокарты в 3D-приложениях. Частота шины памяти на современных видеокартах бывает от 533(1066, с учётом удвоения) МГц до 1375(5500, с учётом учетверения) МГц, то есть, может отличаться более чем в пять раз! И так как ПСП зависит и от частоты памяти, и от ширины ее шины, то память с 256-битной шиной, работающая на частоте 800(3200) МГц, будет иметь бо́льшую пропускную способность по сравнению с памятью, работающей на 1000(4000) МГц со 128-битной шиной.

Особенное внимание на параметры ширины шины памяти, её типа и частоты работы следует уделять при покупке сравнительно недорогих видеокарт, на многие из которых ставят лишь 128-битные или даже 64-битные интерфейсы, что крайне негативно сказывается на их производительности. Вообще, покупка видеокарты с использованием 64-битной шины видеопамяти для игрового ПК нами не рекомендуется вовсе. Желательно отдать предпочтение хотя бы среднему уровню минимум со 128- или 192-битной шиной.

На современные видеокарты устанавливается сразу несколько различных типов памяти. Старую SDR-память с одинарной скоростью передачи уже нигде не встретишь, но и современные типы памяти DDR и GDDR имеют значительно отличающиеся характеристики. Различные типы DDR и GDDR позволяют передавать в два или четыре раза большее количество данных на той же тактовой частоте за единицу времени, и поэтому цифру рабочей частоты зачастую указывают удвоенной или учетверённой, умножая на 2 или 4. Так, если для DDR-памяти указана частота 1400 МГц, то эта память работает на физической частоте в 700 МГц, но указывают так называемую «эффективную» частоту, то есть ту, на которой должна работать SDR-память, чтобы обеспечить такую же пропускную способность. То же самое с GDDR5, но частоту тут даже учетверяют.

Основное преимущество новых типов памяти заключается в возможности работы на больших тактовых частотах, а соответственно — в увеличении пропускной способности по сравнению с предыдущими технологиями. Это достигается за счет увеличенных задержек, которые, впрочем, не так важны для видеокарт. Первой платой, использующей память DDR2, стала NVIDIA GeForce FX 5800 Ultra. С тех пор технологии графической памяти значительно продвинулись, был разработан стандарт GDDR3, который близок к спецификациям DDR2, с некоторыми изменениями специально для видеокарт.

GDDR3 — это специально предназначенная для видеокарт память, с теми же технологиями, что и DDR2, но с улучшенными характеристиками потребления и тепловыделения, что позволило создать микросхемы, работающие на более высоких тактовых частотах. Несмотря на то, что стандарт был разработан в компании ATI, первой видеокартой, её использующей, стала вторая модификация NVIDIA GeForce FX 5700 Ultra, а следующей стала GeForce 6800 Ultra.

GDDR4 — это дальнейшее развитие «графической» памяти, работающее почти в два раза быстрее, чем GDDR3. Основными отличиями GDDR4 от GDDR3, существенными для пользователей, являются в очередной раз повышенные рабочие частоты и сниженное энергопотребление. Технически, память GDDR4 не сильно отличается от GDDR3, это дальнейшее развитие тех же идей. Первыми видеокартами с чипами GDDR4 на борту стали ATI Radeon X1950 XTX, а у компании NVIDIA продукты на базе этого типа памяти не выходили вовсе. Преимущества новых микросхем памяти перед GDDR3 в том, что энергопотребление модулей может быть примерно на треть ниже. Это достигается за счет более низкого номинального напряжения для GDDR4.

Впрочем, GDDR4 не получила широкого распространения даже в решениях AMD. Начиная с GPU семейства RV7x0, контроллерами памяти видеокарт поддерживается новый тип памяти GDDR5, работающий на эффективной учетверённой частоте до 5,5 ГГц и выше (теоретически возможны частоты до 7 ГГц), что даёт пропускную способность до 176 ГБ/с с применением 256-битного интерфейса. Если для повышения ПСП у памяти GDDR3/GDDR4 приходилось использовать 512-битную шину, то переход на использование GDDR5 позволил увеличить производительность вдвое при меньших размерах кристаллов и меньшем потреблении энергии.

Видеопамять самых современных типов — это GDDR3 и GDDR5, она отличается от DDR некоторыми деталями и также работает с удвоенной/учетверённой передачей данных. В этих типах памяти применяются некоторые специальные технологии, позволяющие поднять частоту работы. Так, память GDDR2 обычно работает на более высоких частотах по сравнению с DDR, GDDR3 — на еще более высоких, а GDDR5 обеспечивает максимальную частоту и пропускную способность на данный момент. Но на недорогие модели до сих пор ставят «неграфическую» память DDR3 со значительно меньшей частотой, поэтому нужно выбирать видеокарту внимательнее.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *