Компьютер вашей мечты. Часть 2: Реальность и фикция

Computer hardwareDesktop PC's
Продолжению быть!
Часть 1


Задачи поставлены, и вроде бы самое время перейти к чтению различных обзоров и тестов, но…
С чего начать? В какую сторону вообще смотреть?
image

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

Для начала сделаю небольшое отступление.
Моя предыдущая статья вызвала на хабре довольно неоднозначную реакцию. Суть большинства негативных комментариев сводилась к одному: «Это всё очевидные вещи! Ничего нового! Всё уже известно! Где конкретика?».
Что поделать, я не могу писать кратко (да-да, краткость — сестра таланта, но не моя), не могу не делать различных отступлений. Не могу писать инструкции вида «делай раз, делай два, делай три».
И мой предыдущий топик — это не инструкция, не руководство «как собрать компьютер». Это вступление для одного большого материала, описывающее лишь общие принципы. Да и сам материал тоже не инструкция и не руководство, а пища для соображений, повод изменить некоторые свои взгляды и начать думать в ситуациях, где это вы считали лишним.
Вторую часть я планировал опубликовать дня через 2-3 после первой и писать начал практически сразу, но как-то дело не клеилось. Через неделю было готово процентов 60. Я сел, прочитал написанное, и оно мне дико не понравилось. Получилось действительно слишком растянуто и скучно. Поэтому всё было переписано заново, практически с нуля. Я постарался сделать материал более читаемым и, насколько возможно, сократить длину. Буду рад, если мои старания оказались не напрасны =)

Часть 2. Реальность и фикция


Статей про компьютерное железо просто огромное количество. Немало и различных ресурсов, лабораторий и даже отдельных людей, которые их пишут. У всех своя методика, свои критерии, свои наборы тестовых программ, да и железо в конце концов везде разное. Хорошо, если мы находим тесты интересующего нас девайса в нужном приложении. А если нет? Если железка слишком новая, или просто непопулярная? А что, если интересующая сфера применения не в почёте среди обозревателей. Становится плохо. Единственный выход из этой ситуации — проработать большое количество материала, близкого к интересующему вопросу, и на его основе сделать общие выводы и определить тенденции. Вообщем-то мой опус и представляет из себя результат подобных изысканий.
В ходе написания данной статьи было использовано большое количество обзоров следующих ресурсов:
Именно их я считаю достойными и качественными обозревателями.
Одними из основным принципов сопоставления результатов были:
  • Максимально возможное равенство условий тестирования;
  • Отказ от использования результатов синтетических тестов и бенчмарков.
На основе изученных материалов были сделаны определенные выводы, кое-где для наглядности составлены графики.
Представленная ниже картина не претендует на звания абсолютно точной, но довольно хорошо отражает текущую ситуацию в области железа.

Центральный процессор


— Не можешь выбрать обогреватель — купи процессор AMD!
Для начала выбросите всё это дерьмо из вашей головы. Можно сколько угодно устраивать холивары на тему Intel vs AMD, только пользы от этого никакой.
— А почему Пентиум а не Кор2Дуо?
А вы какой пентиум сравнивать собираетесь? Под этим брендом выпускается уже 6 поколений процессоров, в каждом — несколько разновидностей и большое количество конечных моделей с разными характеристиками.
Характеристики — вот что по-настоящему важно. Узнать их можно по полному (внимание! полному) наименованию линейки и модели процессора на официальном сайте производителя или приличных тематических ресурсах.
Не буду перечислять здесь все характеристики современных ЦП, их слишком много. Нам интересны следующие:
  • Ядро и его степпинг;
  • Количество вычислительных ядер;
  • Тактовая частота;
  • Тип и частота системной шины;
  • Тип и значение системного множителя;
  • Характеристики кэш-памяти (количество уровней и объём на каждом из них);
  • Наборы инструкций и расширений, поддержка различных фирменных технологий;
  • Уровень энергопотребления и тепловыделения (тепловой пакет, TDP).
Вот теперь по порядку их и разберём.

Ядро

Название ядра нам нужно знать хотя бы потому, что оно определяет принадлежность модели процессора к конкретной микроархитектуре. А без информации об этом сравнение всех остальные характеристики может дать результаты, весьма далекие от реальности.
Сейчас довольно распространены 5 микроархитектур:
  • AMD K8 (практически все Athlon 64 и Athlon 64 X2, за исключением буквально пары моделей);
  • AMD K10 (Athlon 7xxx и Phenom первого поколения, а так же пара моделей Athlon 64 X2);
  • AMD K10.5 (Athlon II и Phenom II, а так же новые Sempron — все модели данной микроархитектуры имеют трёхзначный индекс);
  • Intel Core 2 (включает в себя два поколения процессоров — 65нм Conroe и 45нм Penryn);
  • Intel Nehalem (Core i7,i5,i3 и т.д.).
Различные K7 с Netburst'ами и прочую антикварную продукцию рассматривать не будем.
На графике наглядно отображено сравнение производительности современных микроархитектур в различных задачах. В качестве эталонного значения взяты результаты Intel Conroe.
image

Сразу же видно безнадежное устаревание K8 и не самую лучшую картину с K10. K10.5 показывает более приятные результаты, кое где даже обгоняя продукцию Intel, но расстраивает полный слив всех процессоров AMD в задачах, связанных с графикой. Если же говорить о продукции Intel — планомерный рост при переходе к Penryn, и ещё более приятный — к более современным Nehalem, которые помимо всего ещё и в видеокодировании отличились.
Вообщем выводы о первоначальной расстановке сил сделать можно довольно точно.
Что касается степпинга (ревизии) ядра — влияет он в основном на TDP и частотный потенциал процессора.Бывает, что новые степпинги приносят дополнительные наборы инструкций и расширений. Уточняйте на сайте производителя =)

Количество ядер

Война между сторонниками 2-ядерников и 4-ядерников началась ещё тогда, когда вторые только-только замелькали в анонсах, и копья в спорах ломаются до сих пор. Со временем в «войну» вклинились компромиссные решения — 3-ядерные ЦП (предлагаемые, правда, только AMD), что естественно породило новые вопросы. Насколько же на самом деле важна многоядерность? Или даже не так — где именно важна многоядерность, в каких приложениях?
image

Первое, что видно из графика — явно не в играх. Вообще, есть конечно несколько игр, где прирост производительности довольно высок (до 50%), но их очень мало — меньше чем пальцев на руках (самые-самые ядрозависимые — GTA IV и World in Conflict) =) В большинстве же он составляет от 0 до 15% и падает с увеличением настроек качества и разрешения.
Наиболее эффективно многоядерные конфигурации показывают себя в 3D-рендеринге и компиляции. Хорошие результаты также в кодировании видео. При работе с графикой прирост есть, но он не так высок, как хотелось бы.
Ну и наконец сильный удар по стереотипам — сжатие данных. Архиваторы показывают впечатляющие цифры во встроенных синтетических бенчмарках, но когда дело доходит до работы с реальными данными — выясняется, что лишние ядра им, как собаке пятая нога.
Трёхъядерная конфигурация действительно оказывается весьма интересной — отличные результаты в оптимизированных под многопоточность приложениях и гораздо большая польза, чем от 4-ядерников — в неоптимизированных. При не сильной разнице в цене с 2-ядерными ЦП — может стать хорошим выбором.
Что же касается технологии Hyper-Threading (виртуальное распараллеливание), возрожденной в процессорах Intel Core i7, то польза от неё есть только в очень чувствительных к количеству ядер приложениях (тех, у которых на графике колбаса длиннее 40 ;) ). Ну и никакого мифического двукратного роста включение HT естественно не даёт — лишь 1/3 от того, что получилось бы при увеличении реального количества ядер вдвое. Графики приводить не буду.

Тактовая частота

Параметр, который исторически был «главным измерителем производительности», да вообщем-то и сейчас им является.
image

Да, всё-таки зависимость производительности от частоты ЦП гораздо заметнее, чем от количества ядер. Например, при увеличении частоты с 2.8 до 3.8ГГц, т.е. на 35%, в большинстве случаев мы будем иметь рост производительности больше 30%, что очень хорошо. C играми картина хуже, влияние частоты меньше раза в два, да к тому же, как и в случае с количеством ядер, падает с увеличением настроек качества, разрешения, и… частоты, т.е. зависимость эта нелинейна. Если углубиться в тесты, то можно сделать вывод, что наиболее важный участок — от 2 до 3ГГц, а к сверхвысоким частотам (выше 4ГГц) игры относятся довольно холодно.
Большинство современных процессоров имеет заводскую частоту как раз от 2 до 3ГГц, т.е. покупка модели с более высокой частотой (на 300-500МГц) действительно даст преимущество везде.

Частота системной шины и множитель

Производители очень любят меряться инновациями в области системных шин, вовсю рекламируя различные QuickPath'и с HyperTransport'ами, которые по пропускной способности затыкают за пояс «классическую» FSB.
Если здесь есть те, кто уверовал в эти слова — рекомендую вернуться к первому графику. Может, заслуги высокопроизводительных шин там и есть, но это определенно не тот фактор, который оказывает сильное влияние на результат.
Нет, в своё время это конечно было очень важно. Но сейчас даже бюджетные решения с поддержкой той самой «морально устаревшей» FSB работают изначально с эффективной частотой 800МГц и имеют пропускную способность 6.4Гб/с. Здесь мы сталкиваемся с понятием «достаточности».
Вообще частота системной шины в плане производительности наиболее важна как основополагающая скорости обмена данными между процессором и оперативной памятью. Чтобы реализовать потенциал высокоскоростных шин важно использование высокоскоростной оперативной памяти (обратное утверждение тоже верно). Так что отложим этот вопрос до тестов оперативной памяти.
Что же касается периферийных устройств — младшие Nehalem, например, используют для связи с ними шину DMI с пропускной способностью 2Гб/с. И опять же — хватает.
Системный множитель определяет результирующую частоту ядер. Умножается он соответственно на частоту системной шины, либо на частоту системного генератора — в зависимости от реализации. Множитель может быть полностью заблокирован (сейчас встречается редко), разблокирован в сторону уменьшения (встречается почти повсеместно, т.к. эта функция является одной из оставляющих энергосберегающих технологий) или полностью разблокирован (специальные оверклокерские модели процессоров).
Отсюда вывод — на тип и частоту системной шины, а также множитель в общем случае можно не обращать внимания.

Объем кэш-памяти

Объём кэша является одним из параметров наиболее сильно влияющих на позиционирование процессора в модельном ряду. К примеру, Core 2 Duo E8300 и Pentium Dual-Core E6300 выполнены на одном ядре — Wolfdale, а различаются в первую очередь именно объёмом кэш-памяти — 6мб против 2мб, аналогично Phenom II X4 925 отличается от Athlon II X4 630 только наличием 6мб кэш-памяти 3 уровня, и т.д. Велика и разница в ценах между представителями младших и старших линеек процессоров. А что на практике?
image

Как видно — влияние объёма кэш-памяти везде разное и сильно зависит от конкретной задачи. О линейности говорить не приходится, но переход 4Мб->6Мб даёт очень маленький прирост практически везде, т.е. некоторые выводы о достаточности уже напрашиваются. А ещё, в отличие от предыдущих тестов, сильную любовь к кэшу показывают игры.
Из всего этого многообразия результатов больше всего интересует нас тот, который на графике показан черным цветом, т.е. 2МБ->6МБ. Почему? Младшие Intel Pentium имеют 2Мб кэш-памяти, а старшие Core 2 Duo — 4-6мб. Среди современной продукции AMD 2мб кэша 2 уровня имеет вообще большинство процессоров, а Phenom II помимо этого обладают ещё и кэшем 3 уровня объёмом 4-6мб (для первых Phenom этот показатель скромнее — 2Мб). Учитывая вышесказанные слова о достаточности, можно сделать вывод, что «чёрная колбаса» весьма наглядно показывает соотношение производительности между младшими и старшими линейками процессоров. Более глубокое изучение тестов этот вывод вообщем-то подтверждает.

Оперативная память


Конфигурация подсистемы оперативной памяти имеет не так много важных для нас характеристик:
  • Тип памяти;
  • Реальная и эффективная частота;
  • Количество каналов;
  • Схема таймингов;
  • Объем.

Тип памяти

Является основополагающей для остальных характеристик памяти, но в плане производительности сам по себе не важен.

Частота

Сама по себе частота памяти не важна. Важен такой параметр, как её пропускная способность. Формируется ПСП исходя их произведения эффективной частоты на ширину шины памяти. Ширина шины памяти в современных ПК составляет 64 бита, отсюда для DDR2-800 ПСП будет равна 6400Мб/с, что и указывается как одна из характеристик памяти (PC2-6400, например).
Следующий график отображает рост производительности при увеличении ПСП с 6400Мб/с до 12800Мб/с, т.е. вдвое.
image

Совершенно несерьёзно — при росте ПСП ВДВОЕ рост производительности в большинстве случаев не превышает даже 5-6%. Вывод напрашивается один — достаточность пропускной способности современной памяти.
Собственно этим же можно поставить и окончательную точку в вопросе пропускной способности системной шины.

Количество каналов

Многоканальные режимы работы с памятью предназначены опять же для увеличения ПСП.
При включении двухканального режима удаётся добиться в лучшем случае 2-3% прироста производительности, а хвалёный трёхканальный контроллер процессоров Intel Core i7 на платформе S1366 в подавляющем большинстве случаев вообще не может оторваться от одноканального. Причина — повышенное количество тактов, тратящееся на синхронизацию такой схемы.

Схема таймингов

Тайминги памяти — это временные задержки сигнала (выраженные количеством тактов) при операциях обращения к памяти. Всего таймингов довольно много, но в основную схему входят 4 наиболее важных — CAS Latency, RAS to CAS Delay, RAS Precharge Time, Row Active Time. Чем меньше задержки, тем соответственно выше скорость доступа к памяти, однако с повышением частоты для сохранения стабильности работы их приходится увеличивать. Поэтому на практике приходится решать вопрос о том, что важнее — пропускная способность памяти или скорость доступа.
Влияние таймингов на производительность оказывается тоже весьма незначительно. Для систем со встроенным в процессор контроллером памяти можно выиграть 2-5% при снижении таймингов на одну ступень. Для систем, у которых контроллер памяти находится в чипсете, для достижения такого результата необходимо понизить их уже на две ступени.
Если рассматривать чувствительность отдельных приложений к таймингам — расклад примерно тот же, что и с ПСП.

Объём

Один из наболевших вопросов, на который в принципе сложно найти однозначный ответ.
Вообще для большинства приложений и игр достаточно объёма памяти 2Гб. Некоторые игры весьма позитивно относятся к его увеличению до 3-4Гб. Дальнейшее же наращивание объёмов смысла не имеет ни в играх, ни в других рядовых задачах.
Когда же действительно может понадобиться объём памяти, превышающий рядовые 3-4Гб?
  1. Профессиональная работа с графикой. Хранение истории правок для тяжелых файлов может серьёзно кушать оперативку, однако на практике отразится это только в чуть более быстрой работе тех же функций отмены/повтора.
  2. Несколько виртуальных машин. Опустим вопрос о необходимости держания нескольких одновременно работающих ВМ на одном компьютере, но если такая необходимость есть — память естественно для этого тоже понадобится.
  3. Веб-сервера, терминальные сервера и т.п. Одним словом — сервера. Вообще серьёзные сервера с большим количеством одновременно работающих приложений могут потребовать и 16, и 32ГБ, и ещё побольше, но этот вопрос уже выходит за рамки данной статьи =)
Вообщем-то и всё.
Некоторые тут могут привести в качестве аргумента необходимости большого объёма памяти улучшенную многозадачность (тот же аргумент кстати любят ярые сторонники многоядерных конфигураций). Посоветую задать самому себе вопрос — насколько часто вы будете одновременно например играть в крайзис, рипать свежий BD-диск, а попутно ещё и архивировать что-нибудь? Мне кажется, что очень и очень нечасто. Да и вообще, если захочется сделать что-то подобное, то скорее всего производительность упрётся в возможности дисковой подсистемы и никакие гигабайты памяти тут не спасут.
Как один из вариантов использования больших объёмов — отключение свопа или его перемещение в виртуальный RAM-диск. Но это тоже палка о двух концах
Кстати, для работы с объёмами памяти свыше 4ГБ (вообще, Windows ограничивается уже на 3.25Гб) вам понадобится 64-битная операционная система (нет, есть конечно костыль в виде PAE, но это всё же костыль...). А чтобы более 4ГБ смогло адресовать одно приложение, оно соответственно тоже должно быть 64-битным.
Остаётся ещё один вопрос вопрос — конфигурация планок. Оптимальный объём можно набрать несколькими способами: 1х2Гб, 2х1Гб, 2х2Гб, 3х1ГБ, 1Гб+2Гб… В принципе, приемлем любой вариант. Современные контроллеры памяти довольно непривередливы, достаточно будет наличия одинакового режима работы в SPD всех модулей. Но вообще, чем меньше планок, тем предпочтительнее — снижается нагрузка на контроллер и энергопотребление системы.

Видеокарта


С видеокартой ситуация совсем не такая, чем с центральным процессором.
Вообще, для начала неплохо бы разобраться, для чего собственно сей девайс нужен. Практика показывает, что даже среди «нечайников» встречаются люди, не совсем это понимающиее.
Для чего нужна видеокарта:
  • Видеокарта как графический адаптер используется для вывода изображения на экран;
  • Видеокарта как 3D-ускоритель используется для обработки трехмерной графики.
Для чего не нужна видеокарта:
  • Видеокарта НЕ используется как ускоритель в процессе обработки 2D-графики;
  • Видеокарта НЕ используется как ускоритель в процессе воспроизведения видео.
Здесь рассмотрен общий случай, поэтому дошедшим до этого места более сведущим юзерам просьба не бежать сразу же в комментарии с гневными «а вот...», а иметь терпение и читать дальше (конкретно — абзац про дополнительные возможности).
Перед тем как говорить о видеокартах, важно уяснить один момент. Центральные процессоры изготавливаются непосредственно на фабрике производителя, там же маркируются, после чего отгружаются поставщикам. С видеокартами всё по-другому.
Конечно, производитель видеокарт разрабатывает эталонный дизайн PCB, определяет эталонные характеристики и т.п., но на выходе его фабрики дают только графический процессор (бывает, что ещё и некоторые вспомогательные чипы, но это сути не меняет). Сборкой же на их базе видеокарт занимаются субвендоры. И вот им открывается полный простор для деятельности. Если первая волна видеокарт идёт на эталонном дизайне (субвендору просто не хватает времени разработать свою PCB), то дальше появляется россыпь эксклюзивных решений. А с частотами экспериментировать начинают уже сразу…
Поэтому при сравнении производительности конкретных изделий важно знать насколько их характеристики близки к эталонным.

Видеокарта как устройство вывода


Если рассматривать видеокарту с этой точки зрения, то характеристики нам интересны исключительно «потребительские»:
  • Внутренний интерфейс;
  • Внешние интерфейсы;
  • Поддерживаемые режимы вывода изображения;
  • Поддерживаемые ОС;
  • TDP.

Внутренний интерфейс

Если говорить о современной ситуации — выбор тут будет невелик — либо дискретная плата с интерфейсом PCI Express, либо интегрированное в чипсет решение (Intel извратились до того, что начали встраивать видеоядра в центральный процессор — Core i3 и Pentium G, однако суть от этого мало поменялась — использование этого ядра возможно только с определенными чипсетами — Intel H55/H57, что вообщем-то, ИМХО, убило хорошую идею), использующее тот же PCI Express. Видеокарты с интерфейсом AGP окончательно вымерли, а изредка встречающиеся девайсы для старого доброго PCI относятся к разряду «для извращенцев». Что касается поддержки PCI Express 2.0, то она важна в том случае, если вы собрались строить систему с использованием нескольких высокопроизводительных видеокарт — материнские платы в этом случае, как правило, переключают слоты PCIE в менее производительные режимы и удвоенная пропускная способность оказывается кстати.

Внешний интерфейс

Здесь выбор зависит исключительно от того, на что вы собираетесь выводить изображение. Интерфейсы DVI и VGA (чаще через переходник DVI-VGA) поддерживают все видеокарты поголовно. Многие имеют поддержку HDMI (чаще опять же через переходник DVI-HDMI). DisplayPort встречается редко, но его и на технике что-то не особо видать =)
Кстати, не стоит расстраиваться, если выбранный девайс начисто лишен поддержки HDMI. Большинство отзывов о попытках использования данного интерфейса по назначению пестрит гневом и бранью. Личный опыт дал ту же картину — замечательное изображение через «в конец устаревший» VGA и ужасно дерьмовое через «новый высокотехнологичный» HDMI. Ну и помимо этого — совершенно жлобские цены на соответствующие кабели.

Поддерживаемые режимы вывода изображения

В этом вопросе больше важны мультимониторные возможности видеокарты. Даже при наличии 3-4 внешних интерфейсов, одновременно выводить изображение девайс скорее всего может только на 2, причём тот же HDMI часто бывает запараллелен с DVI, что соответственно не даёт использовать их вместе. Так что, если хочется подключать к компьютеру 3 и более монитора — придётся либо поискать девайс с такой функцией (добрый производитель не забудет упомянуть об этом, как об одной из ключевых фич), либо запасаться второй видеокартой.
Что же касается непосредственно режимов вывода — даже бюджетные решения обладают поддержкой широченного набора этих режимов, вплоть до 2560х1600. Хотя перестраховаться и уточнить никто не мешает.

Поддерживаемые ОС

Тут всё зависит от наличия и качества драйверов под нужную ось. Особенно болезненным в своё время этот вопрос был для адептов пингвиноподобных операционок, однако сейчас, вроде бы, всё наладилось. Если же говорить о Windows, то качество драйверов AMD — частый предмет холиваров. Объективно тут что-то говорить трудно, однако камень в огород «красных» всё же можно кинуть: AMD выпускает апдейты драйверов строго раз в месяц, и на этот график не могут повлиять ни внезапно обнаруженные баги, ни прилёт НЛО, ни прочие факторы; NVIDIA таким маразмом не страдает — обновления выходят по мере надобности, кроме того всегда есть публичные бета-версии. Выводы делайте сами.

Видеокарта как 3D-ускоритель


Возможности видеокарты как 3D-ускорителя будут определять общую производительность системы в трёхмерных приложениях, в первую очередь — в играх. Именно на видеокарту, а не на процессор и память следует делать упор, когда собирается игровая машина.
С точки зрения производительности нам важны следующие характеристики:
  • Графический процессор и его ревизия;
  • Количество текстурных блоков и блоков растеризации;
  • Количество и тип шейдерных процессоров;
  • Частоты ГП (могут задаваться отдельно для растрового и шейдерного доменов);
  • Характеристики видеопамяти (ширина шины памяти, тип памяти, реальная и эффективная частота, объём);
  • Уровень поддержки DirectX, OpenGL и Shader Model.

Графический процессор

Вообще, логично бы было предположить, что здесь, как и в случае с ЦП будет разбор каждой из характеристик с графиками, анализом их влияния и т.п. Однако с видеокартами такой фокус не пройдёт. Слишком сильно различаются их архитектуры, слишком сильно различаются характеристики конечных решений.
Характеристики видеокарты важно знать в первую очередь для сравнения с эталонным решением, а далее — для сравнения с решениями той же линейки.
И вот тут вклинивается один нехороший момент. Существует практика переименования решений.
Например, следующие видеокарты:
  • GeForce 8800GTS/512MB
  • GeForce 9800GTX
  • GeForce 9800GTX+
  • GeForce 250GTS
Различаются по большому счёту только дизайном PCB и частотами ГП (вообще, конечно ещё и ревизией ГП, но это второстепенно), т.е. фактически представляют из себя одно и то же. Однако ж на первый взгляд это три совершенно разных серии. Аналогично GF8600GT=GF9500GT, GF8800GT=GF9800GT и т.д. AMD прямые переименования не применяет, но в прошлом нечто подобное встречались и у них (HD2600 и HD3650 например). Всё это создает довольно ощутимый бардак, разобраться в котором поможет только название графического процессора. Отыскав все решения на нём, вполне можно обнаружить «клонов» имеющих те же (или почти те же) характеристики, но старое название.
Ревизия ГП и его техпроцесс, как и в случае с ЦП, влияют в основном на TDP и частотный потенциал.

Количество специализированных блоков

Вообще говоря, эти параметры относятся к напрямую влияющим на производительности, но, как было уже сказано выше — напрямую их сравнивать нельзя.
Шейдерные процессоры современных ГП AMD, кстати, суперскалярные и выполняют 5 инструкций за такт, а хитрый производитель заявляет, что у него самих процессоров в 5 раз больше =)

Характеристики видеопамяти

Уж не знаю, почему так сложилось, но тянет людей мерять производительность видеокарт характеристиками видеопамяти.
Всякий бюджетный хлам вроде GeForce 8400 или Radeon HD4300 расходится как горячие пирожки, ибо продаётся под лозунгом «крутая игровая видеокарта на гиг». Смешно. И грустно. А в последнее время другая тенденция наметилась. Начало всё больше появляться «специалистов», которые прочитав по диагонали пару статей (люди то айтишники блин, или хотя бы близко к IT — вот что обидно) делают вывод, что главный параметр — это ширина шины видеопамяти. И даже практическими примерами пытаются доказать. Вот только если бы статьи те они читали не по диагонали, а нормально, то знали бы, что сама по себе ширина шины в себе огромной важности не несёт, но определяет действительно значимую характеристику — пропускную способность памяти (которой, в отличие от ситуации с ОП, сейчас чем больше — тем лучше, причём заметно лучше). И то, что ПСП для случаев с использование 256bit GDDR3 на частоте 2ГГц и 128bit GDDR5 на 4ГГц, например, будет абсолютна равна.
Возвращаясь же к объёму — большинство решений среднего сегмента имеет на борту либо 512, либо 1ГБ видеопамяти. Тесты показывают, что гигабайт может пригодиться лишь для видеокарт верхнего сегмента при работе в высоких разрешениях (1920х1080, например), и то не всегда. А ещё большие объёмы соответственно — исключительно маркетинговая «замануха».
Двухчиповые видеокарты, к слову, имеют не тот объём, что указан на коробке, а «два раза по половинке». Т.е. Radeon HD4870X2 2GB, например, имеет не 2Гб памяти, а по 1Гб на процессор. А какая разница? Очень большая — каждый из ГП может использовать только свою память. Так-то =)

Уровень поддержки API

Уровень поддержки различных API и Shader Model ничего, кроме совместимости видеокарты с ними, естественно не определяет. И вообще, не стоит за ними гоняться. К тому времени, как нормальной (а не на уровне пары эффектов) поддержкой новых API обзаводится достаточное количество игр (а тем более когда они перестают тормозить...), сменяется не одно поколение видеокарт.

О производительности в играх


Вообще, кстати, важно упомянуть о том, как измеряется производительность в играх.
Если зайти на любой железячный форум, то можно обнаружить как массу школоты людей, кричащих о том, что «кризис на максималках летает без тормозов» на их бюджетных девайсах прошлого поколения, так и собсно железячников, тщетно пытающихся то самое «без тормозов» выжать на топовых карточках за 500$.
Причина здесь в методике измерения производительности. У школоты народных масс это субъективные ощущения, у айтишников всё же помимо субъективного мнения есть и объективный показатель — FPS.
FPS (Frames Per Second) — количество кадров, которое успевает отрисовать игровой движок за одну секунду.
«Минимальной игровой планкой» считается 25-30FPS.
«Уровнем комфорта» — вдвое больше, т.е. 50-60FPS.
Откуда взяты цифры, расписывать не буду. Это общепринятые значения и стали они ими не просто так. Если есть желание — поищите сами.
Как и в случае с любой динамической величиной, можно рассматривать максимальный, минимальный, и средний FPS.
Пиковая производительность нам малоинтересна, поскольку очень кратковременна и на общую картину не влияет, а вот средняя и минимальная — очень даже.
Некоторые игровые движки, правда, страдают нехорошей особенностью — лагать (дёргаться) при вроде приличном FPS. К счастью, такой эффект встречается нечасто.
Итак, если средний FPS находится на уровне 50-60 и выше, в пике нагрузки не опускается ниже 25-30, а различные лаги/подергивания/подвисания отсутствуют — только тогда можно объективно говорить об отсутствии тормозов при текущем разрешении и настройках качества.
Что касается настроек качества — это тоже палка о двух концах. Лично я не считаю допустимым называть настройки «максимальными», если выключено полноэкранное сглаживание (FSAA), например. Что поделать, люблю я красивую чистую картинку и не люблю лесенки. Кстати, встречаются игры, где FSAA отсутствует, или есть, но не даёт эффекта — это, как правило, те же поделия, что лагают при любом FPS =)

Дополнительные возможности современных видеокарт


DXVA

DirectX Video Acceleration — технология аппаратного ускорения видео. Позволяет практически полностью переложить процесс декодирования видео с центрального процессора на ГП, соответственно заметно его разгрузив. Требует поддержку со стороны ГП (GeForce 8 и старше, кроме тех, что на ГП G80, и все Radeon HD2000 и старше) и софта (название намекает, что работать оно не будет без оси от мелкомягких, а более глубокое изучение вопроса — что и вообще без Vista/7 с их Enhanced Video Renderer). Поддерживает далеко не все кодеки, да и вообще капризна и ест не любой файл, а только «правильно закодированный» (что, естественно, встречается совсем не повсеместно).

GPGPU

General Purpose Graphics Processing Units — технология использования графического процессора для вычислений общего назначения. Т.е. грубо говоря, заставляющая ГП выполнять работу центрального процессора.
В настоящее время существует 4 реализации даного подхода — CUDA (NVIDIA GeForce 8 и старше), Stream (AMD Radeon HD4000 и старше), Compute Shader (одна из фич MS DirectX 11), OpenCL (открытый стандарт, призванный навести порядок в данной области).
Рассматривать будем CUDA, как наиболее распространенную на данный момент.
Список действующих решений есть на сайте http://www.nvidia.com/object/cuda_home.html
Внушительную часть этого списка составляют программы для экономических и научных расчетов. Среди них есть клиенты проектов распределенных вычислений Folding@home и SETI@home, которые имеют определенную аудиторию поклонников.
С точки зрения же обычного пользователя больше интересен софт для кодирования и декодирования видео, который так же присутствует в ассортименте.
Декодер CoreAVC, например, выполняет фактически ту же функцию что и DXVA, но совсем не привередлив к параметрам файла — достаточно, чтобы он была закодирован нужным кодеком (H264/AVC).
Среди средств кодирования наиболее заметны Badaboom, MediaCoder, TMPGEnc, Movavi Video Suite и два продукта Cyberlink. Правда, среди тех продуктов, которые успел опробовать лично я (Badaboom и MediaCoder) — ни один не поддерживал многопроходное кодирование, а это довольно критично. Но я ведь опробовал не все, да и время не стоит на месте =)
Прирост производительности в вышеуказанных приложениях при включении CUDA составляет от полутора до ДЕСЯТИ (!!!) раз. Большую роль естественно играет связка ЦП-ГП, особенно последний, но даже видеокарты среднего класса показывают очень интересные результаты.

Teh End?


А как же материнская плата, жесткие диски, блок питания и т.д.?
Имейте терпение. Статьи итак получаются непомерных размеров. На первую то часть ругались, что она длинная, а эта ещё вдвое длиннее получилась. Всё будет. Конкретно о жестких дисках и вообще хранении данных будет 4я часть.
А вот следующая, 3я часть будет посвящена продолжению начатого здесь вопроса — о производительности процессоров, оперативной памяти и видеокарт. Только рассматриваться он будет с другой стороны — использование скрытого потенциала ;) Ну и поскольку сегодняшняя тема, получается, раскрыта не до конца, то и общего вывода пока не будет.
Tags:железоинформационные технологиивыбортестированиепроизводительностьпроцессорывидеокартыпамятьGPGPU
Hubs: Computer hardware Desktop PC's
+82
9.1k 187
Comments 127

Popular right now