Шейдерная революция 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, что позволило заметно повысить тактовые частоты и упрочить и без того незыблемое лидерство калифорнийской компании.

450x136 44 KB. Big one: 500x151 18 KB
Десятилетие выхода, не побоюсь этого слова, легендарной видеокарты GeForce 8800 GTX почему-то оказалось практически незамеченным в Рунете, что побудило меня протестировать часть своей небольшой коллекции графических ускорителей и написать об этом статью.

Революция

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

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

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

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

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

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

450x354 38 KB. Big one: 1417x730 115 KB
Таким образом, резкое повышение производительности в сравнении с 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

450x253 50 KB. Big one: 1500x844 385 KB

Достаточно редкая модификация 6800 Ultra, оснащенная 512 Мбайт видеопамяти. Можете себе представить, что в 2005 году за такую видеокарту просили фантастические $849 или даже больше? И это несмотря на то, что в скором времени должен был появиться новый флагман!

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

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

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

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

При этом дополнительная память не только не давала никакого прироста производительности, но и зачастую модель с объемом памяти 512 Мбайт из-за более низких частот оказывалась медленнее варианта с 256 Мбайт, цена на который в момент анонса была установлена в $499.

Источник

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

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

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