Видеокарты и математика | 24.06.2003 |
ВведениеБолее полугода прошло с момента опубликования статьи "Пропускная способность видеопамяти: комплексный подход к проблеме". Многое с того момента изменилось в мире видеокарт, в том числе вышел NV30 память которого оказалась вовсе не 256-битной и даже NV35, который исправил это досадное недоразумение. В этом смысле статья конечно отстала от жизни. Но, что меня обрадовало гораздо больше, не возникало повода усомниться в правильности и логичности изложенных в ней мыслей. В этой статье я хочу продолжить рассказ об отношениях рассмотренных в вышеуказанной статье. В этот раз я постараюсь изложить материал более просто и понятно, с комментариями, примерами и аналогиями, а также обновить его в соответствии с современной ситуацией на рынке видеокарт. Используемые сокращения и обозначения
ПСП — пропускная способность памяти; Я решил сменить обозначения отношений, так как двухбуквенные запоминать и читать было не очень удобно. Теперь отношение bv будет обозначаться V, а отношение fv — F. Цели
Вопросы на которые должна ответить данная статья два:
Об отношении "ПСП / ОВП" (V)Много памяти это всегда хорошо. По одной простой причине — карта с большим объемом памяти ничего не теряет. Карта же, с объемом памяти недостаточным для хранения всех текстур в локальной видеопамяти, будет вынуждена работать с обычной памятью (ОЗУ), что катастрофически скажется на ее производительности. Казалось бы все просто: больше памяти — лучше! Ну, так бы оно и было, если бы карты с разным объемом памяти стоили одинаково. К сожалению, это не так. Тогда возникает вопрос: а нужен ли данной карте такой объем памяти? Ответ на этот вопрос поможет найти соотношение "ПСП / ОВП" (V).
Соотношение V вычисляется по следующей формуле: Стоит отметить, что в вычислениях используется теоретическая, а не эффективная ПСП, которая может быть выше за счет использования ТЭПСП. Таким образом, забегая немного вперед, скажем, что например для GeForce4 Ti4200 64 Мб V = 106+, а не строго 106, т.к. величина стоящая в числителе (ПСП) отношения может, в принципе, принимать и большие значения. С другой стороны лично я считаю что более правильным, по крайней мере на данный момент, не учитывать ТЭПСП по причине того, что не всегда и не везде ТЭПСП дает эффект и он не всегда одинаков. В то время как величина без учета ТЭПСП дает, в некотром роде, гарантированное значение. Таким образом усливимся использовать "чистые" значения ПСП в своих вычислениях, а "+" держать в уме. Ниже приведен график отношений для различных карт фирмы nVIDIA с объемами видеопамяти от 32 до 512 Мб:
Дадим некоторые пояснения к графику. "Вершина" каждого цвета это величина V для объема указанного в легенде. "Низ", соответственно, является величиной V для вдвое меньшего объема памяти. То есть, для карты объемом Х Мб область "эффективного" V (использование памяти 50-100%) будет соответствовать диапазону цвета графика "Х".
Для удобства эти же величины в табличной форме:
В примечании звездочкой отмечены карты с ТЭПСП. Таблица отношения V для некоторых карт фирмы ATi:
Стоит отметить любопытный факт: для Radeon 9800Pro установка 256 Мб (о которых сейчас идет так много споров) не более "нелогична" чем 32 Мб на Radeon 32 Mb SDR. Теоретически карта способна "ворочать" такими объемами при скорости 40-80 кадр/с (даже без учета ТЭПСП). Еще один любопытный момент: обратим внимание на карту о которой было последнее время сказано очень много — Radeon 9500 (256 bit). 256 bit версия Radeon 9500 известна тем, что существует возможность переделать ее программным способом в Radeon 9700. Перспектива заманчивая. Нетрудно заметить что на этом графике показатели 9700 и 9500 (256 bit) совпадают. Мы вернемся к этим картам при рассмотрении отношения F. Для удобства эти же величины в табличной форме:
В примечании звездочкой отмечены карты с ТЭПСП. Итак, подведем некоторый итог. Отвечая на поставленный нами вопрос: "Как оценить максимальный объем памяти, который будет эффективным для данной карты?", даем такой ответ: чтобы оценить максимальный объем памяти, который будет эффективным для данной карты необходимо посчитать соотношение V для возможных вариантов и оценить абсолютный возможный максимум ЧОК при этом объеме. Выберите тот, который устраивает вас (как известно у разных пользователей требования тоже разные). Рассмотрим пример: например вы выбираете карту GeForce Ti4200, но не знаете с каким объемом виодеопамяти 64 или 128 Мб. Смотрим график для карты с 64 Мб V = 53-106 к/с, а для карты с 128 Мб V = 26-53 к/с. В действительности ЧОК скорее всего будет ниже в силу ряда причин (одну из которых мы рассмотрим при анализе отношения F), а выше, наоборот, скорее всего не будет. Таким образом если вас не устраивает ЧОК в 53 к/с, то ваш выбор карта с 64 Мб, но будьте готовы к проблемем если настройки игры не позволяют снизить объем требуемой видеопамяти ниже 64 Мб. Иначе соответственно 128 Мб. В этом случае следует оценить вероятность появления игр с такими требованиями к видеопамяти, если их просто не будет, то и деньги будут потрачены зря. Об отношении "филлрейт / ПСП" (F)Если соотношение V достаточно простое и очевидное, то вопрос баланса карты гораздо более сложный. В первую очередь, конечно, из-за множества факторов влияющих на это. Рассмотрим теоретические обоснования, опираясь на которые мы будем вести дальнейшие рассуждения. Как и при рассмотрении отношения V зададимся вопросом: а что дает нам право утверждать, что данная карта сбалансирована, а эта нет? Проведем аналогию с компьютерами: если например процессор Pentium 4 или Athlon XP, снабдить памятью PC66, то очевидно, что процессор не будет работать на полную мощность, ему просто ну будет хватать данных для обработки. Хотя с другой стороны существует ряд задач где и этой скорости памяти хватит. Но ведь как раз на видеокартах, как мы уже отмечали при рассмотрении отношения V, класс решаемых задач очень узок, поэтому в отличие от простого процессора, связь "скорость ГП — ПСП" гораздо более жесткая. Остается определить основную работу которую выполняет ГП. Это в первую очередь операция текстурирования, которая по совместительству является и наиболее требовательной к ПСП операцией. Именно это положение является базовым в теории отношения F. Таким образом под сбалансированностью карты будем понимать соотношение мощности ГП, которая у нас будет ассоциироваться со скоростью текстурирования, с пропускной способностью памяти. Сбалансированность карты можно разбить на 3 условные категории :
Соотношение F вычисляется по следующей формуле: Поскольку в современных видеокартах используются ТЭПСП, эффективная ПСП становится выше теоретической. Это также необходимо по возможности учитывать. Таким образом, забегая немного вперед, скажем, что F у GeForce4 Ti4200 равно не 0.282, а 0,282-, т.к. величина в знаменателе (ПСП) может, в принципе, принимать и большие значения. Как и в аналогичной ситуации в отношении V, лично я считаю, что более правильным, по крайней мере на данный момент, не учитывать ТЭПСП по причине того, что не всегда и не везде ТЭПСП дает эффект и он не всегда одинаков. В то время как величина F без учета ТЭПСП дает, в некотром роде, гарантированное значение. Таким образом усливимся использовать "чистые" значения ПСП в своих вычислениях, а "-" держать в уме. Чем больше отношение F, тем менее ограничен филлрейтом максимальная ЧОК видеокарты. Большое отношение не значит что карта хороша, скорее наоборот — она несбалансированна (категория 3). Малое значение F свидетельствует о малом филлрейте карты и ее несбалансированности с этой стороны (категория 1). Можно привести очень наглядную аналогию: представим две последовательно соединенные трубы, по которым течет вода, первая труба символизирует ПСП, вторая — мощность ГП. Если первая труба будет шире второй, то поток воды будет ограничен второй трубой — это категория 1. Если трубы будут одинакового диаметра, то поток воды не ограничивается ничем кроме собственно диаметра труб — это категория 2. Если вторая труба шире второй, то поток воды будет ограничен первой трубой — это категория 3. Оценивая известную для некоторых карт сбалансированность полученную практическим путем, можно предположить, что для карт без ТЭПСП оптимальное значение F находится около 0.2, а в картах с такими технологиями — около 0.2-0.25. Повторюсь, что единственным надежным способом определения сбалансированности карты являются практические испытания. Однако, отношение F может быть удобным для сравнения и предварительной оценки. Например, известно, что GeForce2 GTS сильно несбалансированная карта — у нее недостаточная пропускная способность памяти. Сразу можно оценить какая карта из всего семейства будет более сбалансированной. Хотелось бы отметить влияние такой популярной опции как анизотропная фильтрация на оптимальное значение отношения F. Здесь все просто — анизотропия требует лишних тактов ГП при текстурировании, а сколь-нибудь заметного увеличения требований к ПСП не происходит (видимо за счет эффективного кэширования). Таким образом, требуется увеличение мощности ГП при прежней ПСП, а значит увеличение оптимального F. Строго говоря, для каждого типа ГП множитель увеличения свой. Более того, нельзя даже утверждать что переход с 2х на 8х анизотропию на разных ГП потребует одинакового увеличения множителя F — сказываются различия как в самих алгоритмах реализации анизотропной фильтрации, так и в архитектурах ГП. Но можно очень приблизительно сказать, что, на данный момент, требуется увеличение F в 1.5-2 раза для достижения сбалансированности видеокарты при высоких степенях анизотропии (8х-16х). Отмечу что выше- и нижеприведенные оптимальные значения этот множитель анизотропии не учитывают. Ниже приведен график отношения F для различных карт фирмы nVIDIA:
Например если взглянуть на соотношение V для GeForce DDR, то можно смело утверждать, что 64 Мб для ее шины памяти "по зубам". Однако если мы взглянем на соотношение F для этой карты — 0.100, будет понятно что карта сильно несбалансирована по филлрейту с пропускной способностью памяти. Поэтому 64 Мб памяти на ней это скорее излишество. В то же время, при примерно равном с ней V, у GeForce2 GTS соотношение F значительно больше — 0.300. Поэтому 64 Мб памяти на GeForce2 GTS более уместны. Также можно отметить, что на графике хорошо заметна несбалансированность карт GeForce FX 5600/5200 [Ultra], которые из-за этого в проигрывают "реальной жизни" своим "младшим братьям" GeForce 4 Ti4x00. Можно сказать, что теория получила свое практическое подтверждение. Для удобства эти же величины в табличной форме:
В примечании звездочкой отмечены карты с ТЭПСП. График отношения F для различных карт фирмы ATi:
Честно говоря, мне было очень любопытно узнать, насколько эмпирически полученные величины оптимального F подойдут к картам другой фирмы. Владельцы ATi буду ли я прав, если скажу, что большинство карт ATi дают хороший прирост при разгоне чипа, и что одни из самых сбалансированных карт это Radeon 8500/LE/9100/9500Pro? Судить вам. А теперь вернемся, как и обещали к Radeon 9500 (256 bit). Как видно по графику ее показатели в случае неудачи при переделке в Radeon 9700 будут очень плохими. Стоить отметить что карта не будет медленее Radeon 9500 (128 bit) как это может показаться на первый взгляд из графика (значение F у неё в 2 раза ниже). Карта будет такой же по скорости, возможно даже местами немного быстрее, а отношение показывает лишь то, что сбалансированность карты будет в 2 раза хуже. А если учесть что сбалансированность даже Radeon 9500 (128 bit) не на высоте, то можно считать что в случае неудачи при переделке в Radeon 9700, 256 bit шина памяти уйдет, как и ваши деньги, что называется "коту под хвост". В этом смысле их с гораздо большей пользой можно было бы потратить на Radeon 9500Pro — отличную по сбалансированности карту. Для удобства эти же величины в табличной форме:
В примечании звездочкой отмечены карты с ТЭПСП, а двумя звездочками те карты, у которых, при расчете отношения F, учитывались только 2 блока блока текстурирования из трех. Итак, подведем некоторый итог. Отвечая на поставленный нами вопрос: "Как оценить сбалансированность карты (соответствие ПСП скорости графического процессора)?", даем такой ответ: чтобы оценить сбалансированность карты, необходимо вычислить соотношение F и оценить в какую из категорий сбалансированности вы попали. Рассмотрим пример: например вы выбираете между картами GeForce 4 Ti4200 и GeForce FX 5200. По графику сразу видно что более оптимальной является карта GeForce 4 Ti4200, как хорошо сбалансированная, в то время как у GeForce FX 5200 проблемы с нехваткой филлрейта. О других прикладных применениях отношений V и FО совместном их использовании мы мимоходом уже упоминали при описании соотношения F. Итак, соотношение V дает нам оценку разумного объема памяти. Соотношение F же является как бы критерием его истинности. Если при данном V, F <= 0.1 (явно низкое), то значение V не будет соответствовать действительности и лучше взять карту с меньшим объемом памяти. Если же F >= 3.0 (явно высокое), то соотношение V будет соответствовать действительности, но лучше по возможности поискать модель карты с более быстрой памятью или меньшей частотой ядра (в обоих случаях соотношение F уменьшается), так как в таком случае работа карты будет более эффективной (а вам возможно удасться съэкономить немного денег). При F ~= 0.2 значение V близко к действительному и карта достаточно хорошо сбалансирована. Любителям же анизотропной фильтрации нужно сделать соответствующие поправки этих значений. В других словах, при формулировке определения отношения V мы упоминали, что полагаем что временных потерь на обработку кадра ГП не существует, так вот, чем больше отношение F, тем больше это положение соответствует действительности. Это очевидно — чем больше филлрейт, тем меньше времени нужно ГП для текстурирования (в нашем вычислении V мы имеем некоторый гипотетический ГП с бесконечно большим филлрейтом). Для любителей "разгона" пользу представляет отношение F. По нему можно определить, какую часть карты лучше разгонять, и какую в этом случае лучше карту покупать. Например, соотношение F велико, в этом случае лучше разгонять память. Поэтому лучшим решением будет купить карту с минимально наносекундной памятью и/или с хорошим охлаждением памяти. При малом F, соответственно, все наоборот — лучше запастись хорошим кулером для чипа и упор делать на разгон последнего. ЗаключениеВ заключение хотелось бы сказать следующее. Конечно, отношения V и F сильно упрошают некоторые вещи и игнорируют множество факторов. У отношения F под вопросом его оптимальное значение. Но тем не менее, даже столь упрощенные, они все же дают согласующиеся с рельностью результаты, а также очень эффективны для сравнительного анализа, где абсолютное значение не играет роли. ПриложениеВ качестве приложения к статье, рекомендуем воспользоваться программой Math (366 Кб), вычисляющей соотношения V и F (и некоторые промежуточные величины) по заданным исходным данным. Программа обладает более широкими возможностями чем графики и таблицы, представленные в статье. В частности, есть возможность ввести коэффициент средней экономии полосы пропускания и вычислять V и F как с его учетом, так и без; а также вычислять значение F с испольованием всех ТМ конвейера графического процессора (а не только двух). Программа обладает интуитивно понятным интерфейсом и не должна вызвать трудностей в использовании. Дополнительная документация к программе содержится в файле readme.txt, входящим в архив с программой.
djpython
|