Так ли необходима шина памяти 256-бит в видеокартах middle-end? Теория и практика.
Данный материал является скорее теоретическим (по крайней мере – в большей своей части) и посвящен изучению влияния ширины шины видеопамяти на производительность графических ускорителей. Казалось бы, что тут тестировать? И так понятно, что видеокарты с шириной шины памяти 256-бит будут более производительны, чем такие же видеокарты у которых ширина шины памяти 128-бит, к примеру. Но не спешите с выводами. Может быть, относительно слабым графическим процессорам широкая шина памяти и не нужна? Когда разработчики видеочипов «урезают» ширину шины видеопамяти - это намеренное создание «бюджетного» решения (с целью вписаться в нужный ценовой диапазон) или же трезвый расчет, основанный на том, что больше то и не надо? С этими вопросами мы и попытаемся разобраться.
Для экспериментов мы решили взять довольно старую видеокарту – GeForce 7600GT. В момент появления на рынке данный продукт являлся типичным представителем среднего класса и обладал всеми ключевыми особенностями middle-end решения. Это и шина памяти 128-бит, и относительно слабый видеопроцессор. Выбор данной видеокарты обусловлен тем, что к ней в пару можно подобрать аналог, практически не отличающийся по производительности видеопроцессора, но обладающий шиной памяти 256-бит. Многие наверное уже догадались, что мы имеем ввиду, однако подробно мы расскажем об этом чуть позже. А пока попробуем выяснить, насколько шина памяти шириной 128-бит ограничивает производительность GPU на видеокарте 7600GT.
Предварительные замечания
В качестве мерила производительности видеокарты мы будем использовать количество FPS (кадров/сек), которое видеокарта покажет в тесте Quake 4. Разрешение экрана выбиралось равным 1280х1024 точек и оставалось неизменным на протяжении всех тестов. Это типичное разрешение большинства современных мониторов с диагональю 17-19 дюймов. Графический режим в самой игре устанавливался на “High Quality”, с помощью видеодрайверов выбирались режимы тестирования “NO AA/AF” или “4AA/16AF”. В качестве тестовой платформы использовался следующий тестовый стенд:
Тестовый стенд
Шина
|
PCI-Express
|
CPU
|
|
MB
|
|
Memory
|
|
OS
|
WinXP + SP2 + DirectX 9.0c
|
PSU
|
FSP 400 Wt
|
Данный стенд не является чемпионом по производительности среди современных CPU. Тем не менее, как неоднократно показывалось, при тестировании видеокарт middle-end производительность центрального процессора не является ограничивающим фактором.
Стандартные частоты GeForce 7600GT составляют 560/700 МГц для GPU/видеопамяти соответственно. Для видеопамяти указана реальная частота в мегагерцах, а не эффективная (1400 МГц DDR), так сделано лишь для удобства построения графиков. Из этих же соображений мы будем задавать исходную частоту для видеопроцессора 7600GT равной не 560 МГц, а 600 МГц ровно.
Тестирование
В чем будет заключаться тестирование? Как вообще узнать, насколько ширина шины памяти ограничивает производительность GPU? Давайте будем рассматривать ситуацию следующим образом. У нас есть видеокарта, которая выполняет определенную "работу", и по величине FPS на выходе мы будем делать те или иные заключения. В нашем распоряжении имеется два параметра, которые мы можем изменять – частоту GPU и частоту видеопамяти видеокарты. Очевидно, что частота видеопамяти прямо определяет пропускную способность видеопамяти, при прочих неизменных параметрах (типа ширины шины памяти). Чтобы определить, насколько производительность видеокарты ограничивается «скоростью» видеопамяти, построим следующий график.
Мы понизили частоту видеопамяти на видеокарте 7600GT до 200 МГц (реальных), а затем увеличивали ее с шагом 50 МГц. Конечно, в реальности никто не будет добровольно понижать частоту видеопамяти, смысл в другом. Если у нас имеется два параметра, влияющих на итоговый результат, и мы предполагаем, что один из параметров является «ограничителем», то при линейном увеличении этого параметра мы должны наблюдать линейный рост итоговой величины. Чтобы проверить, так это или нет, давайте на вышеприведенном графике построим две касательные к графику, в левой и в правой части.
Как видно из графика, в левой части рост FPS с увеличением частоты видеопамяти является линейным, то есть, пропускной способности видеопамяти явно не хватает и она действительно является ограничивающим фактором. По мере роста частоты видеопамяти, касательная к графику начинает «наклоняться» в сторону оси Х, следовательно, увеличение частоты видеопамяти становится не столь эффективным средством повышения производительности видеокарты. Теоретически, если бы мы могли повышать частоту видеопамяти сколько угодно высоко, рано или поздно мы бы увидели, как линия графика стала бы параллельной оси Х, а значит общая производительность уже ограничивалась бы только мощностью видеопроцессора. Теория теорией, но можно ли такое увидеть на практике? Можно, почему нет. Раз мы не можем сильно разогнать видеопамять, давайте смоделируем подобную ситуацию, понизив производительность GPU, а частоты для видеопамяти оставив неизменными. На следующем графике мы понизили частоту GPU на видеокарте до значения 300 МГц.
Как видите, теория получает подтверждение. Когда реальная частота видеопамяти становится вдвое больше частоты GPU, мы уже практически не получаем роста результатов, даже при ширине шины памяти 128 бит. Впрочем, данный конкретный вывод может относиться исключительно к видеопроцессору 7600GT, поэтому не будем спешить с обобщениями. Теперь посмотрим, что произойдет, если мы «утяжелим» графический режим, включив полноэкранное сглаживание и анизотропную фильтрацию.
Очевидно, что основная нагрузка ложится на видеопамять. Для частоты GPU, равной 600 МГц, мы наблюдаем практически линейный рост результатов с увеличением частоты видеопамяти. Да и для частоты GPU 300 МГц на графике уже не наблюдается горизонтальной «полочки», которая свидетельствовала бы об избыточной пропускной способности видеопамяти. Примечательно, что в левой части графики для разных частот GPU сливаются в одну линию. По всей видимости, здесь скорость видеопамяти настолько ограничивает общую производительность, что нет разницы между GPU, работающими на частотах 600 МГц и 300 МГц.
Наиболее пытливые читатели, наверное, уже задали себе вопрос – «какое же сочетание частот GPU/видеопамяти является оптимальным?». Как мы видели, при слишком низкой частоте видеопамяти GPU не может проявить себя в полную силу. Но и слишком сильно увеличивать частоту видеопамяти большого смысла нет, раз результаты перестают расти.
Как обычно, однозначно ответить на данный вопрос вряд ли получится, потому что оптимальное сочетание частот зависит и от архитектуры GPU, и от «тяжести» графического режима, не говоря уже о том, что может меняться от одной игры к другой.
Тем, кто предпочитает изучать проблемы с разных точек зрения, приведем еще пару графиков. Их отличие от предыдущих состоит в том, что в этот раз мы фиксировали реальную частоту видеопамяти (а не GPU) на уровнях 300 МГц и 600 МГц. Вот что получилось для режима без AA/AF.
Если установить реальную частоту видеопамяти на GeForce 7600GT равной 300 МГц, то изменение частоты GPU вообще никак не сказывается на общей производительности, и мы получаем горизонтальную «линию насыщения» на графике. Если же частота памяти равна 600 МГц, то прирост результатов от увеличения частоты GPU более заметен, но опять же, как только частота GPU достигает 600 МГц, рост результатов практически прекращается.
Если мы построим аналогичные графики для режима 4AA/16AF, то увидим уже две «линии насыщения». Вполне закономерный результат, поскольку в более тяжелом графическом режиме производительность видеокарты «упирается» в скорость работы видеопамяти.
Подведем промежуточные итоги. Как следует из вышеприведенных графиков, в наших условиях тестирования для видеокарты 7600GT, обладающей шириной шины памяти 128 бит, оптимальное отношение реальной частоты видеопамяти к частоте графического процессора составляет примерно 1,5-2 : 1. То есть, если частота видеопроцессора равна 600 МГц, частота видеопамяти должна находиться на уровне 900-1200 МГц (реальных). Рекомендованные частоты для типичной 7600GT равны 560/700 МГц для GPU/видеопамяти, следовательно, их соотношение равно 1:1,25, что несколько меньше найденного нами «оптимального» уровня.
Как мы неоднократно подчеркивали, это «оптимальное» соотношение справедливо для 7600GT с шириной шины памяти 128 бит. А что будет, если мы увеличим ширину шины памяти в два раза? По идее, с точки зрения увеличения максимальной пропускной способности видеопамяти, она также возрастет вдвое, что можно было бы расценивать как удвоение рабочей частоты видеопамяти с шириной шины 128 бит и, следовательно, будет более точно соответствовать «оптимальному» соотношению частоты GPU и видеопамяти. Так это или нет, мы сейчас и попробуем выяснить.
7600GT 256-bit memory
Вы скажете, что таких видеокарт в природе не бывает. В общем-то, да, не бывает. Но есть другие видеокарты, из которых, при желании, можно получить аналог GeForce 7600GT с шириной шины памяти 256 бит. Собственно, мы так и сделали. Взяли видеокарту ASUS EN7900GS TOP, у которой штатные частоты равны 590/720 МГц и ширина шины памяти 256-бит. Затем, с помощью утилиты RivaTuner, отключили пиксельные и вершинные блоки таким образом, чтобы привести их в точное соответствие с конвейерной формулой GeForce 7600GT – 12p, 5v. Таким образом, в нашем распоряжении оказался аналог видеокарты 7600GT, обладающий похожими на 7600GT характеристиками GPU, но имеющий ширину шины памяти 256-бит вместо 128. На графиках мы будем отображать результаты этой видеокарты красным цветом.
Ниже приведен график, аналогичный Графику №1 и дополненный результатами, полученными на аналоге GeForce 7600GT с шириной шины памяти 256-бит.
Очевидно, что увеличение ширины шины видеопамяти изрядно прибавляет производительности. При небольших частотах видеопамяти (левая часть графика), прирост производительности 7600GT 256-бит практически двукратный, по сравнению с обычной 7600GT 128-бит. C ростом частоты видеопамяти относительное превосходство 256-бит варианта 7600GT уменьшается, и на типовой частоте видеопамяти 700 МГц составляет всего 26%, что является вполне закономерным результатом. Выше было показано, что с ростом частоты видеопамяти, рано или поздно, мы получим на графике горизонтальную линию результатов, когда общая производительность видеокарты больше не ограничивается памятью и зависит только от GPU. Понятно, что для 256-бит варианта 7600GT такой «режим насыщения» будет достигнут быстрее.
Что касается практической стороны вопроса, то 26% превосходства варианта с шириной шины памяти 256-бит над 128-битной 7600GT - это конечно существенно, но и производители видеокарт, получается, оказываются не так уж и неправы, когда в middle-end продуктах ограничиваются шиной памяти 128-бит. Ведь им, помимо чистой производительности, приходится принимать во внимание и экономические вопросы. А разработка видеопроцессора с контроллером памяти 256-бит будет сложнее, соответственно дороже, не говоря уже про усложненный и более дорогой дизайн самой печатной платы.
Говоря простыми словами, не самому мощному видеопроцессору нет смысла подключать видеопамять по более широкой шине. Игра Quake 4 уже довольно старая, новые игры предъявляют к производительности GPU более высокие требования, и не факт, что даже с широкой шиной памяти средний GPU это «потянет». Проиллюстрировать это можно на простом примере. Построим еще один график, в тех же условиях что и предыдущий, но снизим частоту GPU вдвое.
И что же мы видим? При слабом GPU и номинальной частоте видеопамяти разница в результатах 7600GT 128-бит и 256-бит составляет всего 12%. Так что, если у вас слабый GPU, не нужно жаловаться на недостаток пропускной способности шины памяти. Слабый видеопроцессор просто не сможет воспользоваться ею в полной мере. Вполне возможно, что этим же фактом объясняется популярность памяти стандарта GDDR2 в сегменте видеокарт low-end, где производительность GPU настолько урезана, что ставить более скоростную видеопамять просто бессмысленно.
Хорошо, с простым графическим режимом все понятно. А что будет, если мы включим полноэкранное сглаживание и анизотропную фильтрацию?
Очевидно, с возрастанием нагрузки на видеопамять прирост производительности от широкой шины памяти становится более заметен, и на типовой частоте видеопамяти 700 МГц равен 60%. Вот тут, пожалуй, можно и пожалеть, что продукты middle-end не оснащаются шириной шины памяти 256-бит (или выше). С другой стороны, много ли вы знаете современных игр, в которые можно играть с настройками 4AA/16AF на видеокартах среднего класса? Вот именно. Если и удастся выставить качественную графику в игре, то о полноэкранном сглаживании речь, как правило, не идет. И это вполне типичная ситуация для видеокарт среднего сегмента и современных им игр, которая повторяется в течение уже многих лет.
Ну и, напоследок, приведем еще пару графиков. Результаты на первом из них получены в следующих условиях – изменялась частота GPU, а частота видеопамяти оставалась неизменной. Для стандартной 7600GT 128-бит частота памяти была выставлена в 600 МГц, для сэмулированной 7600GT 256-бит частота видеопамяти была установлена на значение 300 МГц. Таким образом, максимальная теоретическая пропускная способность видеопамяти у этих двух видеокарт была одинакова. Теперь посмотрим, насколько эффективно используется более широкая шина памяти в зависимости от частоты GPU.
Начиная с частоты GPU 300 МГц, видеокарта с шиной памяти 128-бит показывает более высокие результаты. Получается, что при прочих равных условиях узкая шина памяти оказывается более эффективной, с точки зрения производительности. Может быть, так происходит потому, что мы использовали простой графический режим? Давайте включим AA/AF и проверим еще раз.
Как ни странно, но и на этом графике мы видим превосходство 7600GT 128-бит над своим 256-битным аналогом, причем даже более заметное. По всей видимости, медленная, но широкая шина памяти используется не так эффективно, как узкая, но скоростная.
Заключение
Как выяснилось в ходе данного тестирования, шина памяти шириной 128-бит для видеопроцессоров класса middle-end определенно является фактором, сдерживающим производительность. Но не стоит преувеличивать степень этого ограничения. В типичных условиях использования видеокарт среднего класса – не самые высокие настройки графики в приложении и отсутствие полноэкранного сглаживания, переход к более широкой шине памяти способен добавить лишь пару десятков процентов к общей производительности видеосистемы, в то время как стоимость такого «перехода» может существенно сказаться на цене продукта. В целом, разработчики видеопроцессоров наверное правы в том, что не спешат с внедрением шины памяти 256-бит в продукты класса middle-end, как это ни грустно для нас, пользователей. Но и теряем мы не так уж и много. Хороший разгонный потенциал, который, как правило, присущ видеокартам middle-end, практически всегда позволяет скомпенсировать пару десятков «упущенных» процентов производительности видеокарты.
Возможно, кого-то разочарует то, что в этом тестировании мы взяли уж очень старого представителя middle-end в лице GeForce 7600GT и «ветерана» Quake 4 в качестве тестируемого приложения. Но иначе было бы сложно подобрать точную «пару» видеокарт, отличающихся лишь шириной шины памяти, и многие нюансы не проявились бы так сильно. А использование более новой игры для тестов могло чрезмерно нагрузить «старичка» 7600GT, и опять же свести на нет разницу в результатах. Не расстраивайтесь. Мы продолжим наши исследования, и в следующих материалах изучим производительность современных представителей среднего класса в новых играх.
Кстати, а вам интересно узнать, насколько эффективно используется шина памяти 512-бит в Radeon HD2900XT?
- Обсудить материал на форуме.