Пропускная способность видеопамяти: комплексный подход к проблеме

10.11.2002


О соотношении "пропускная способность / объем видеопамяти" (bv)

Много памяти это всегда хорошо. По одной простой причине: карта с большим объемом памяти ничего не теряет. Карта же, с объемом памяти недостаточным для хранения всех текстур в локальной видеопамяти, будет вынуждена работать с обычной памятью (ОЗУ), что катастрофически скажется на ее производительности. Казалось бы все просто: больше памяти - лучше! Ну, так бы оно и было, если бы карты с разным объемом памяти стоили одинаково. К сожалению, это не так. Тогда возникает вопрос: а нужно ли данной карте такой объем памяти? Ответ на этот вопрос поможет найти соотношение "пропускная способность / объем видеопамяти" (bv).

Соотношение bv вычисляется по следующей формуле:

     пропускная способность памяти / объем памяти ([байт/с]/байт)

Размерность получающейся величины 1/c или Гц. Полученная величина это количество раз, сколько за 1 секунду может быть считана вся память видеокарты. Теоретически это максимальный FPS при полностью заполненной памяти. Как известно ограничением FPS может быть не только пропускная способность, но и другие параметры, например, филлрейт - про это не стоит забывать. Ниже приведен график отношений для различных карт с объемами видеопамяти от 8 до 256 Мб:

пропускная способность / объем видеопамяти (bv)

Дадим некоторые пояснения к графику. "Вершина" каждого цвета это величина bv для нижней границы объема указанного в легенде. "Низ", соответственно, является величиной bv для верхней границы объема. То есть, для карты объемом Х Мб область "эффективного" bv (использование памяти 50-100%) будет соответствовать цвету графика "Х/2-Х Мб".

Что же можно сказать по полученным величинам? А можно сказать, например, что рациональность установки 32Мб на GeForce2 MX примерно такая же как и 64Мб на GeForce2 GTS и примерно такая же, как 128Мб на GeForce4 Ti4600. Рациональность, подчеркиваю, с чисто технической точки зрения, независимо от того, требуют игры такой объем памяти или нет. Можно также сказать, что рациональность установки 64Мб на GeForce2 MX сомнительна, ибо в этом случае, несмотря на то, что скорость ее работы при объемах текстур порядка 64Мб будет несравненно выше чем на карте с 32Мб, максимум скорости будет равен 40 FPS. В этом случае лучше просто уменьшить объем текстур до 32Мб и играть с нормальной скоростью. Однако очевидно, что объем текстур достаточно произвольное значение и он может быть, например 38Мб. В этом случае карта с 32Мб будет неспособна работать с нормальной производительностью, в то время как карта с 64Мб будет чувствовать себя достаточно неплохо. Это тоже не стоит упускать из виду. Именно поэтому график описан так, что выделены именно диапазоны объемов, а не максимальные величины. По графику также можно сказать, что установка менее 128 Мб памяти на будущий NV30, если имеющиеся технические характеристики являются близкими к истинным, будет просто преступлением :), а установка 512 Мб (!) будет даже более рациональной чем 128 Мб на GeForce2 MX 400, а такие "творения", как известно, имели место быть.

Для удобства приведу также табличный вариант отношений bv:

пропускная способность / объем видеопамяти (bv)

Стоит отметить, что в графиках и таблице использована теоретическая, а не эффективная пропускная спосбность памяти, которая может быть выше за счет использования технологий экономии пропускной способности памяти. В таблице карты использующие такие технологии помечены знаком * в примечании. Таким образом например для GeForce4 4200 64 Мб bv = 106+, а не строго 106.

О соотношении "филлрейт / пропускная способность" (fb)

Под сбалансированностью карты понимают соотношение мощности чипа с пропускной способностью памяти. Традиционно сбалансированность карты проверялась экспериментально (это и есть самый точный способ) повышением частоты чипа при постоянной частоте памяти и, наоборот, повышением частоты памяти при постоянной частоте чипа. Я предлагаю более быстрый приблизительный, удобный для сравнения и теоретического расчета способ оценки сбалансированности карты. Это соотношение "филлрейт / пропускная способность" (fb). Большинство приложений используют мультитекстурирование с использованием двух текстурных модулей, поэтому будем использовать это значение, однако об этой договоренности следует помнить.

Соотношение fb вычисляется по следующей формуле:

     филлрейт / пропускная способность памяти ([текс/с]/[байт/с]).

Размерность получающейся величины текс / байт. Полученная величина это количество обработанных текселей на 1 байт переданных данных. Ниже приведен график этих отношений для различных карт:

филлрейт / пропускная способность (fb)

Чем больше отношение, тем менее ограничен филлрейтом максимальный FPS видеокарты. Большое отношение не значит что карта хороша, скорее наоборот - она сильно несбалансированна. Малое значение fb свидетельствует о малом филлрейте карты и ее несбалансированности с этой стороны.

Например если взглянуть на соотношение bv для Riva TNT2, то можно смело утверждать, что 32 Мб для ее шины памяти "по зубам". Однако если мы взглянем на соотношение fb для этой карты - 0.104, будет понятно что карта сильно несбалансирована по филлрейту с пропускной способностью памяти. Поэтому 32 Мб памяти на ней это скорее излишество. В то же время, при равном с ней bv, у GeForce256 соотношение fb значительно больше - 0.181. Поэтому 32 Мб памяти на GeForce256 вполне уместны.

Для удобства приведу также табличный вариант отношений fb:

филлрейт / пропускная способность (fb)

Поскольку в современных видеокартах используются технологии экономии полосы пропускания, эффективная пропускная способность становится выше теоретической. Это также необходимо по возможности учитывать. В таблице такие карты помечены знаком * в примечании. Таким образом fb у GeForce4 4200 равно не 0.282, а 0,282-. Поэтому в данный момент имеет место тенденция смещения оптимального fb в область более высоких значений.

Вероятно, для карт без технологии экономии полосы пропускания оптимальное значение fb находится около 0.2, а в картах с такими технологиями - около 0.3. Повторюсь, что единственным надежным способом определения сбалансированности карты являются практические испытания. Однако, отношение fb может быть удобным для сравнения и предварительной оценки. Например, известно, что GeForce2 GTS сильно несбалансированная карта - у нее недостаточная пропускная способность памяти. Сразу можно оценить какая карта из всего семейства будет более сбалансированной. Можно уже сейчас сказать, что памяти частотой в 400 МГц при частоте ядра 400МГц для NV30 будет вполне достаточно, так как в этом случае имеем fb = 0.25-, а при еще большей пропускной способности памяти скорее всего будет чувствоваться недостаток филлрейта

Об анализе видеокарты с помощью соотношений bv и fb

О совместном их испотльзовании я уже упоминал при описании соотношения fb. Итак, соотношение bv дает нам оценку разумного объема памяти. Соотношение fb же является как бы критерием его истинности. Если при данном bv, fb = 0.1 (явно низкое), то значение bv не будет соответствовать действительности и лучше взять карту с меньшим объемом памяти. Если же fb = 0.4 (явно высокое), то соотношение bv будет соответствовать действительности, но лучше по возможности поискать модель карты с более быстрой памятью или меньшей частотой ядра (в обоих случаях соотношение fb уменьшается), так как в таком случае работа карты будет более эффективной (а вам возможно удасться съэкономить немного денег). При fb = 0.2 - 0.3 значение bv близко к действительному и карта достаточно хорошо сбалансирована. Причем для старых карт (без технологий экономии ПСП) лучше меньшее отношение (0.2), а для новых (с технологиями экономии ПСП) - лучше большее (0.3).

Для любителей "разгона" пользу представляет отношение fb. По нему можно определить, какую часть карты лучше разгонять, и какую в этом случае лучше карту покупать. Например, соотношение fb велико, в этом случае лучше разгонять память. Поэтому лучшим решением будет купить карту с минимально наносекундной памятью и/или с хорошим охлаждением памяти. При малом fb, соответственно, все наоборот - лучше запастись хорошим кулером для чипа и упор делать на разгон последнего.

Приложение

В качестве приложения к статье, я написал программу Math (366 Кб), вычисляющую соотношения bv и fb (и некоторые промежуточные величины) по заданным исходным данным. Программа обладает более широкими возможностями чем графики и таблицы, представленные в статье. В частности, есть возможность ввести коэффициент средней экономии полосы пропускания и вычислять bv и fb как с его учетом, так и без; а также вычислять значение fb с испольованием всех ТМ конвейера графического процессора (а не только двух). Программа обладает интуитивно понятным интерфейсом и не должна вызвать трудностей в использовании. Дополнительная документация к программе содержится в файле readme.txt, входящим в архив с программой.



djpython (djpython@mail.ru)


Обсудить/дополнить в конференции