Тенденциоз
АрхивПродолжение. Начало в #319
Гонка тактовых частот началась в мире ускорителей недавно. Последние чипы выпускаются, как правило, в двух вариантах: обычном и ultra (pro, max, + и т. п., за которым скрывается лишь более высокая цена и более высокие частоты). Создатели чипов уже не рискуют рекомендовать производителям видеокарт какие-либо конкретные частоты, кроме очевидно заниженного "очень надежного уровня". Они ограничивают допустимый диапазон, а выбор параметров, гарантирующих стабильную работу продуктов, остается на совести производителей карт.
И нет ничего удивительного, что экстремальная, хорошо разведенная и снабженная добротной памятью карта на базе Riva TNT2 одного производителя может в полтора раза превосходить по результатам тестов карту другого. Немаловажную роль в выборе частоты ядра играют параметры памяти и наличие активного охлаждения. Большинство новых ускорителей комплектуется вентиляторами, но фирма 3dfx, видимо, принципиально не желает признавать необходимость активного охлаждения, на радость любителей разгона. Прикрутив хороший вентилятор к карте Voodoo3 2000, можно добиться стабильной работы на частотах, значительно превышающих номинальные. Количество тепла, выделяемого чипом, зависит от проектной нормы и числа транзисторов: для чипов, изготовленных по технологии 0,25 мкм, на частотах порядка 100-140 МГц вентилятор еще не обязателен (но желателен), а на более высоких частотах он жизненно необходим. Все действительно новые ускорители сделаны по технологическим нормам 0,25 мкм или меньшим.
Число транзисторов сильно влияет на предельную тактовую частоту: несмотря на технологию 0,20 мкм, используемую для производства GeForce 256, этот ускоритель стабильно работает лишь на частоте ядра порядка 120 МГц, и виной тому огромное число транзисторов - около 23 миллионов. По этому параметру GeForce 256 превосходит самый шумный долгострой года - Intel Itanium. Меньшее число транзисторов (12 миллионов) и более "узкая" технология (0,18 мкм) позволяют Savage 2000 работать на частоте до 170 МГц.
Больше памяти больному
Покажите мне игру, которой не хватит 16-мегабайтного буфера. Я всегда знал, что рано или поздно такая игра будет написана, и мы сможем вздохнуть спокойно: деньги брошены не на ветер. Вот и тестовая версия Quake 3 успешно балансирует на грани 16 и 32 Мбайт, в зависимости от установок. Очень политически грамотно: и тех, у кого 16 Мбайт, не обижает, и тех, у кого 32, радует. Но бог с ним, с объемом, это не единственный параметр памяти. Важно, какого типа эта память, как ускоритель с ней управляется и на какой частоте она работает. В данный момент самой распространенной и, следовательно, экономически выгодной является обычная SDRAM- и SGRAM-память (или наоборот, самой экономически выгодной а значит, самой распространенной). В серийных картах уже встречаются микросхемы памяти с номинальным временем такта 7-5 нс, работающие соответственно на частоте от 125 до 200 МГц. Что интересно, SGRAM гораздо менее стабильна на частотах, превышающих паспортные. Так что любителям запредельных частот стоит задуматься, что выгоднее - 10% скорости или 30% потенциального разгона. По моему же скромному мнению, разгон имеет смысл только в редких случаях. Как, например, с первыми картами Voodoo 2000, успешно разгоняемыми при установке вентилятора со 143 до 183 МГц, что превышает номинальную частоту более дорогих карт Voodoo 3000. Главную же роль в подобном успехе играет качество микросхем памяти. Но теперь "досадная ошибка" исправлена, и "хорошие микросхемы" ставятся на старшие модели. Вот и нынешние Voodoo 3000 работают на 195 МГц (при условии использования вентилятора).
Интересно, что в 32-битных режимах большинство ускорителей гораздо выгоднее разгонять путем увеличения частоты памяти, а не ядра. Что говорит о хронической недостаточности пропускной полосы памяти у современных чипов. Проблема может быть решена разными способами, например, сжатием текстур или применением новых типов памяти. Лобовое решение принимать никто не решается, 256 бит требуют слишком дорогой, как правило, шестислойной платы. Но не за горами внедрение давно разработанной и уже выпускающейся памяти типа DDR SDRAM (Double Data Rate - удвоенная скорость передачи данных). Шустрая DDR-память способна передавать данные дважды за такт, ее поддерживают и GeForce 256 (где цифра означает эффективную передачу 256 бит за такт в случае DDR-памяти, а не физическую ширину шины), и Savage 2000. Ориентированные на дешевые и интегрированные применения чипы, наоборот, позволяют себе 64-битную шину. Тем временем, серийно производятся чипы с интегрированной на кристалле памятью, объем которой пока не превышает 4 Мбайт (из-за технологических ограничений). Они находят применение в ноутбуках и мини-компьютерах, но некоторые специалисты считают, что за подобными решениями будущее ускорителей. Благодаря возможности без особых затрат увеличить ширину внутренней (для ускорителей) шины памяти до 512 или более бит.
Другой способ борьбы с недостаточной пропускной способностью - оптимизация обращений к памяти. Все приведенные в таблице чипы имеют тот или иной кэш для текстур, кроме того, большинство из них имеет отдельный кэш для значений из Z-буфера. Именно раздельное кэширование и позволяет избежать резкого падения производительности при переходе в жадные до пропускной полосы 32/32-режимы (32 бита цвет, 32 бита Z). Буферизация обращений к памяти стала стандартной возможностью, ее реализуют все чипы, хотя и не столь эффективно, как G400. Этот чип имеет две внутренние 128-разрядные шины, работающие независимо друг от друга с буферами чтения и записи, что позволяет загрузить внешнюю (также 128-разрядную) шину почти до теоретического предела пропускной способности. Даже когда частота шины памяти значительно превышает частоту ядра ускорителя. Кстати, о буферах, ведь мы опять приходим к аналогии с процессорами! И параллельные конвейеры уже есть, что дальше? Внеочередной выбор треугольников или предсказание областей закраски?
Бугорки и горбики
Вот опять, окунувшись в параметры памяти и тактовые частоты, мы упустили из виду красоту и качество картинки. Очень дешевый (с ускорительной точки зрения) метод повышения реалистичности - наложение рельефа, так называемый bump-mapping. На плоской по своей природе поверхности путем модуляции (неравномерного затенения) текстуры создается хорошо различимый рельеф. Например, волны на поверхности воды или барельеф на стене. Поддерживать bump-mapping аппаратно можно множеством различных способов, три из которых в настоящий момент наиболее актуальны.
Embossed bump-mapping - модуляция текстуры смещенной картой высот (неровностей). Смещение определяется положением источника света относительно поверхности. Требует одного дополнительного прохода ускорителя. Не нуждается в специальной аппаратной поддержке, но без нее неэффективна (попиксельная точность требует расчета модуляционной текстуры с высоким разрешением, причем сдвиг выполняется для каждого источника света, что совершенно неприемлемо). Существенные ограничения на высоту рельефа.
Environmental mapped bump-mapping - технология, продвигаемая создателями G400. Заранее просчитанная карта освещения мутирует (ее пикселы сдвигаются) под действием карты высот. Результирующая сдвинутая карта модулирует поверхность объекта. Требуется три дополнительных прохода ускорителя, включая наложение карты освещения. Эффективная реализация требует специальной аппаратной поддержки первой стадии (мутации) на ускорителе с двумя текстурными блоками. Фактически, это оптимизированный путем "внесения действий в аппаратные скобки" метод embossed bump-mapping. Нет досадных ограничений на высоту рельефа. Уже используется в играх. Будет аппаратно поддерживаться Savage 2000, поддерживается G400.
Dot product bump-mapping - самый честный и реалистичный метод, оперирующий с отклонениями векторов нормали от общей нормали поверхности. Без аппаратной поддержки не эффективен (требуется расчет модуляционной текстуры с высоким разрешением, что неприемлемо), но, в отличие от первого метода, может быть полностью ускорен аппаратно, при сохранении карты нормалей в виде специальной RGB-текстуры (XYZ). В этом случае требуется по одному дополнительному проходу ускорителя на каждый источник света. Будет аппаратно поддерживаться GeForce 256 и уже поддерживается Permedia3 и Videologic PowerVR.
Как мы видим, реальная аппаратная поддержка рельефа есть пока лишь у нескольких ускорителей. Что, впрочем, не мешает остальным продуктам ее декларировать, скромно умалчивая о применяемой ими эмуляции на уровне драйверов.
Введение рельефа - не единственный метод интеллектуального увеличения реализма. Новая технология 3dfx, названная T-буфер, призвана аппаратно поддержать различные эффекты, связанные с накоплением результатов. Например, полное сглаживание без использования дополнительной памяти, размытие объектов в движении, передача глубины и ширины фокуса в реальных оптических системах и некоторые другие не менее реалистичные эффекты. Эта технология будет впервые аппаратно реализована в чипе Voodoo4. И что весьма занимательно, и Intel, и AMD бросились заявлять о своей поддержке этой технологии.
Еще одна интересная технология реализована nVidia в GeForce 256 - cube environmental mapping. Это аппаратная поддержка наложения карты внешней среды на поверхность объектов. Объект помещается в воображаемый куб, со сторон которого текстуры проецируются на поверхность объекта. Подобным образом можно легко реализовывать отражение предметов окружающего мира от металлических поверхностей или воды, создавать реалистичные блики от направленных источников освещения и некоторые другие, не менее впечатляющие эффекты.
Судорожные сжатия
Чрезвычайно эффективный метод повышения реализма - увеличение детализации текстур. Чрезвычайно эффективный метод безболезненного увеличения детализации - сжатие текстур. Бенефисов много, недостатки практически незаметны. Можно снизить объем занимаемой текстурами памяти (раз), увеличив тем самым качество или число одновременно доступных текстур. Можно снизить нагрузку на шину (два) во время прокачки текстур. Можно снизить объем основной и даже файловой памяти, занимаемый исходными данными (три). Но пока никто (кроме фирмы S3) не торопится серьезно продвигать аппаратное сжатие текстур. Есть DXTC (не очень удачный метод сжатия Direct3D), есть собственные методы ATI и 3dfx, которыми, впрочем, никто не желает пользоваться. Да и производители чипов не особенно на них настаивают, ведь лучше поставить 32 Мбайт памяти на борт карты. Но, несмотря на подобный расклад, S3 старается задать тон, обрабатывая производителей игр (и производителя DirectX) и, надо отметить, добившись на этом поприще некоторых успехов. Конкретный результат этой работы - поддерживаемый продуктами S3 и DirectX (что самое важное) метод сжатия, названный S3TC.
Он с потерями обеспечивает коэффициент сжатия 6:1. Используются блоки 4х4 точки текстуры. При кодировании для каждого блока специально подбираются два основных цвета (в формате RGB565 каждый из них представлен 16 битами), из которых можно легко получить два дополнительных, итого - четыре цвета. Таким образом, на представление цвета каждой точки уходит два бита, а на весь блок - 64 бита, или 4 бита на точку.
Как мы видим, метод прост, дает неплохие визуальные результаты (мой субъективный визуальный опыт) и может быть легко реализован в железе и распараллелен. Вероятно, вскоре появятся чипы других производителей, поддерживающие S3TC. Или очередной собственный? Вот и 3dfx обещает в Voodoo4 свой собственный, полностью открытый метод FXTC (степень сжатия до 8:1), который "могут использовать любые производители карт и программного обеспечения". При ближайшем рассмотрении он оказывается несколько модернизированным S3TC, сдобренным возможностью палитровых методов сжатия, возможностью выбора метода сжатия для каждого блока отдельно и поддержкой блоков 8х4. То есть - более сложным в аппаратной реализации аналогом S3TC, дающим небольшое преимущество в сжатии и большое в лицензировании (открытости). Пока же производители продолжают упорно наращивать объем памяти и увеличивать пропускную полосу шины.
Окончание следует