23 августа 2012 23.08.12 109 4511

ЖЕЛЕЗНОСТИ #2. Цикл статеек по компьютерным кишкам. Видеокарты.

+63

0. Список жаргонизмов и железного слэнга.

Я не Сократ, и мне неудобно всё время выражаться высокопарными терминами типа: «Видеоплата», «Центральное процессорное устройство», «ПЗУ», поэтому сразу выкачу список словечек, которые, человек далекий от электронного мира, может не раскурить.

Камень — процессор.
Видюха — видеоплата.
Кэш, оператива, хард, флэш — разновидности памяти, первые две энергозависимы (т.е. работают вместе с вами при включеном компе), вторые две, соответственно, энергоНЕзависимы, и при выключенном компе сохраняют данные в течение лет пяти.
БИОС, биосня — Базовая Система Ввода Вывода — шняга, которая до запуска оси запускает всю аппаратную начинку компа.
Комп — сами догадаетесь.
Ось — Операционная система (ШINDOШS, Linux, FreeBSD, Солярис и т п )
Мать — Материнская плата.

1. Общий ликбез и фоточки.

Довольно часто, при покупке новой видюшки возникает два вопроса: «Можно ли?» и «Нужно ли?». Т.е. запустится ли она, и если да, то будет ли работать в полную мощность? Вот на эти вопросы данный бложик и попытается развернуто ответить.

В эпоху далеких 90ых, видяха была устройством для тупого вывода на экран инфы, которая крутится в кишках вашего компа. Сам по себе процесс был довольно несложный.Контроллер на видеокарте тикал на частоте в пару десятков мегагерц, и перегонял двоичный код(из ноликов и единичек) приходящий с шины на матери, в сигналы управления цветом пикселя на VGA-разъеме. Надо было всего то закодировать яркость красной, зеленой и синей компоненты (RedGreenBlue — RGB), что бы получить любой угодный цвет. Например, в старом добром режиме 256 цветов, который еще был популярен на 95ой и 98ой винде, на это требовалось 8бит.

Красный: 00000000 / Зеленый: 00000000 / Синий: 00000000 — пиксель выключен, цвет черный (подсветка экрана).

Красный: 11111111 / Зеленый: 11111111 / Синий: 00000000 — цвет желтый, потому что красный и зеленый выкручены на максимум, а синий выключен вообще. Ну, короче, я уверен, что не единственный, кто в садике краски смешивал.

В шестнадцатеричном коде это выглядит более компактно: $FFFF00. Впрочем, эти коды еще используют при верстке сайта html'ом в блокноте.

К видеокамню прилагалась своя видеопамять (2,4,8,16 Мбайт), в которой постранично хранилась информация про каждый пиксел. Причем, микросхемы тогда были в паяемых корпусах, и, при желании, контроллер можно было заменить на более совершенный, и, даже, при наличии прямых рук, добавить видеопамяти, купленной в радиомагазине.

Что из себя представляет современная видеокарта? Это огромный видеокомбайн, в сотни раз мощнее всего остального компьютера, который получает уже не изображение, а только указания, что надо показать, и рисует исключительно сам. Теперь в памяти хранится все, данные о геометрии трехмерной модели, текстурах от нее и физически корректном расчете света, которые уже затем пройдя через шейдерный блок, преобразуются в пиксельные, и, наконец, пройдут пост-обработку (с помощью тех же шейдеров). Шейдер — грубо говоря, программа для видеокарты. Чем она отличается от обычной? Всем. Для этого наноликбез про то, что вообще умеет процессор.

Тайное знание: Core i7 за 30000 руб, на самом деле, не умеет НИЧЕГО кроме двух основных вещей: складывать и сдвигать разряды!

Подумайте сами:
вычитание — это алгебраическое сложение.
умножение — это многократное сложение.
деление — умножение на обратную величину.
возведение в степень — это многократное умножение.
большинство функций (синусы, тангенсы, логарифмы, и т д)- берутся от конкретных числовых значений и раскладываются в ряды, которые по сути — сложение, умножение и возведение в степень…
Отрицательные, дробные и мнимые числа — в двоичном виде достигаются за счет ухищрений с дополнительными контрольными разрядами (битами), которые процессор умеет только… правильно — двигать.

Из этих двух простых команд, складывают все остальные двоичные (ассемблерного уровня) операции, из которых происходит все остальное. Т.е. когда в каком-нибудь CPU-Z, вы видите что ваш процессор поддерживает набор процедур MMX, SSE4.0 — это просто список простейших операций, которые ваш камешек умеет делать (CISC — архитектуры с полным набором команд). Ассемблер — язык программирования низшего уровня, основное занятие в котором: курить мануал по кишкам той или иной микросхемы. (Говорю это по скромному опыту запарывателя микроконтроллеров.) Зато, знаете, как весело читать, комментарии школьников на Яндекс-Маркете, сокрушающихся по поводу того, что их свежекупленный Коре ту Дуо не поддерживает последний пакет SSE 4. Причем, они конечно же типа знают, что это такое))))))))

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

Вот только видюхе, считать какой-нибудь долбаный синус до 75ого знака после запятой вообще не надо. Монитор с разрешением 1920 х 1080, все равно, не отобразит погрешность в 0.0001 метр где-то там, на том краю текстуры. А даже если и отобразит, игрок в запале азарта все равно нифига не заметит. Следовательно, зачем считать некоторые функции, если их значения можно забить в память заранее, в виде констант с определенной точностью! Да и большинство ассемблерных процедур определенным ядрам процессора видюхи просто не нужны. Т.е. в вашем радеоне HD7970 ажно 1500 с гаком ядер и каждое занимается своим делом (RISK — архитектура с сокращенным набором команд), попутно вытаскивая из памяти нужные константы. Кстати, под ядрами подразумевается блок из АЛУ(складыватель, двигатель разрядом) и УУ(для связи АЛУ с остальным внутренним миром видеокарты).

Отсюда и получается, следующее:

1) в графических программах, основной камень лениво курит в углу, посылая команды видеокарте, а та делает то что лучше всего умеет, создает и рисует. А весь процесс от создания геометрии до отрисовки последнего постэффекта называется рендерингом. Теперь надеюсь ясно, что шейдерный язык программирования должен обладать своей уличной магией.

2) Из первого пункта, следует то что в играх и тяжелых графических программах, решающее значение на количество кадров в секунду оказывает именно видеокарта. НО, следует помнить, что чем быстрее видеокарта, тем быстрее она будет спрашивать у главного камня, что ей делать. Поэтому, сочетание типа Пентиум 4 + GT660Ti — конечно возможно, но проц настолько стар, что не будет успевать даже сказать видяхе, что ей надо делать. Как говорят матерые «железячники»: «Видеокарта просто не раскроет себя».

3) Можно разделять видеокарты по профпригодности: офисные, игровые, профессиональные.
Первые, это урезки, где оставлен самый минимум необходимый для комфортной работы офисных программ и графических финтифлюшек последних ОСей.
Вторые — обычные видеокарты рассчитанные на рендеринг (игры, 3ds max и т п)
Третьи предназначены не столько для изображения, сколько для трудоемких расчетов. Все таки согласитесь, использовать 800 ядер вместо четырех — очень соблазнительная перспектива. К ним существует спец софт и драйвера, с помощью которых сглаживаются некоторые подводные камни сокращенного набора команд. В итоге, на них нельзя запустить третий BattleField, зато можно сильно ускорить расчет в Ansys'е. Инженерной САПРе, в которой обычные расчеты могут идти сутками. //Дальше я их рассматривать не буду.

4) Кроме того видеоплаты разделяют по их стоимости:

Бюджетный сегмент GT610-640 ценой до 3-4 тысяч рубликов.
Средний класс: GT640(с разгоном) — GT660Ti/670 4-11000 деревянных.
Премиум сегмент: GT670-690 (HD7970/90) — средняя цена которых начинается с 12000.
HiEnd класс: штучные изделия типа ASUS MARS II, стоимость которых на момент продажи составляет 40-80к.

2. Брать или не брать.

Изложив матчасть и крупицы тайных знаний, самое логичное рассмотреть критерии отбора той единственной из тысячи наименований. Расмотрю только более-менее критичные параметры. С названием или максимальным разрешением все должно быть интуитивно понятно — чем страшнее смотрится — тем круче.

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

Здесь подразумевается выбираемая серия. Например, сейчас в ходу AMD HD7*** и GTX6**. Эти две серии предлагают самые современные алгоритмы рендеринга, и более умеренные мощности(читай, температуры) в референсной комплектации, соотвественно, стоят подороже.
Их предшественники были более горячими, особенно у зилененьких GeForc'ов. Многие с «теплом в сердце» вспоминают 480ые и 580ые печки, которые, под разгоном, во время какого-нибудь Метра 2033 с легкость могли заменить обогреватель. Что касается производительности, то она как бы сдвигается ступенькой, то есть, GTX470-GTX560-GTX650, в теоретических тестах окажутся ближайшими соседями (но не факт!). Аналогично 4850-5670-6550.
Постфикс Ti (GTX560Ti) — обозначает что из этой видюшке еще на заводе много чего прикрутили, поджали и разогнали.
У красных попроще, 6950 — типичный представитель, 6930 — подрезана, 6970 — подразогнана. Иногда, вопрос повышения крутизны решается перешивкой БИОСа, но так везет далеко не везде.

690 и 6990 — т.н. двухголовые монстры, т.е. две видеокарты слитые в одну. У них два раздельных процессора, удвоенный объем видеопамяти, да и вообще все удвоено. Разве что кроме мощности и ценника, в чем и заключается основная выгода.

->Интерфейс подключения
Это претензии к разъему на материнке. Когда-то давно в ходу были ISA и AGP. Сейчас только PCI-Express. 1.0/2.0/3.0 — совместимы, разница в скорости и ширине подводимых шин.

-> Частоты ядра/шейдерного блока/памяти
Тоже по принципу, чем больше тем лучше и… горячее.
У ядер средние частоты составляют: 600 МГц — холодные обрезки, 800-1000МГц — игровой сегмент, 1000+ — заводской и/или любительский разгон.
Шейдеры болтаются где-то там же.
А вот у памяти все гораздо хитрее, есть частоты эффективные и реальные. Несколько спаралелленных на шине чипов, так и будут работать на реальных частотах 1000-1200 МГц, в то время как их эффективая частота уже может достигать 6000. Разница в производительность между 4000 и 6000, конечно, будет, но, на мой скромный взгляд, это все таки, в большей степени, пиар ход разработчиков по проталкиванию собственной продукции.

При выборе частот, надо четко прикидывать насколько вы берете девайс. 800мегагерцовая видекарта разогнанная до 1300 может запросто скопытиться через год. Верите ли вы или нет, но на более высоких температурах полупроводниковая начинка процессора деградирует значительно быстрее, особенно если учесть что размер одного компонента на кристалле 28нм.

->Объем и разрядность видеопамяти.

Принцип — чем больше тем лучше — отлично работает и здесь. Другое дело, что если вы берете видеокарту на ближайший год-полтора, то гнаться за немыслимыми 6ю гигами видеопамяти просто глупо. Взять гиг-два, но с шиной 256-384-512 бит, на мой взгляд гораздо более выгодное вложение. Не сожрет эта тесселяция больше чем надо, да и к тому же консольки не торопятся обновляться. Правда, когда они обновятся, и выйдет какой-нибудь Beyond Good and Evil 2, то все, что слабее нонешнего HiEnd класса можно будет сразу выбрасывать или давиться 15ю ФПС на сжатых текстурах. Именно тогда будет крайне полезно смотреть на цифру 4, в графе объем видеопамяти.

-> Число универсальных процессоров
Имеется в виду число ядер. Чем их больше занято в работе тем быстрее видеокарта рисует изображение, и гоняет данные по шейдерному конвееру, тем логичнее иметь больший объем видеопамяти на борту. Уж извините, но что бы переплачивать за второй гиг видеопамяти на какой-нибудь GTX630, ради того что бы вообще запустить что-нибудь с пожатыми текстурками на 15 фпсах — это глупо. В общем, пиар, такой пиар…

-> Число текстурных блоков/блоков растеризации
Не критичное требование в общем то. Это просто тонкий намек на то чем и сколько ядер будут примерно заняты и как организованы.

-> Потребляемая мощность (TDP) и тип питания видеокарты
В явном виде этот параметр не везде пишут, но чисто эмпирически можно определять так:

-если нет доп разъемов — то 50-80 Ватт
-если один шести- восьмиконтактный — то 100-180 Ватт
-если два шести- восьмиконтактных — то 180-300 Ватт

Если ваша видеокарта прожорлива, то имеет смысл купить приличный блок питания.
Конечно, МОЖНО ЗАПУСТИТЬ HD6870 в купе с Core Duo E6700 на 350Ваттном БП, но когда дело дойдет до серьезной нагрузки, выключение вам обеспечено. Чего уж там говорить, если камень стоит более мощный и горячий. Поэтому мощность БП всегда выбирается с хорошим запасом. К тому же всегда надо помнить о том, что в из пиар-соображений на коробках блоков пишут всегда мощность близкую к максимальной. То есть, чем дороже блок, тем ближе к истине то что написано на коробке. 600Ваттные нонеймы из Кореи сдуются уже при нагрузке в полтора раза меньшей, поэтому самым низким критерием качества вообще, следует считать изделия фирмы FSP. Хотя и мой на 550Вт, за 1900р, умудрился подкинуть сюрпризец, в виде сломавшегося на третий раз, переключателя на задней стенке.

Простой расчет мощности БП, с запасом на все случаи жизни для любого процессора: примерную мощность видеокарты умножаем на 2 и прибавляем 50 Ватт. Те рекомендации которые обычно пишут на коробках — фигня. Например, под мою XFX 6870 настоятельно рекомендовался 600 или 700ваттный БП. Когда она больше 250 просто не в состоянии сожрать (катушки на плате не выдержат силу тока). Итог, 250*2+50=550Вт. — Хватает за глаза и уши на все про все. Даже под разгоном, даже под АППАРАТНЫМ! А уж про то что ее спокойно можно и на 350 ваттном запустить, я уже говорил. Другое дело, что играть при таком раскладе в тяжелые игры не получится.

-> Габариты, количество занимаемых слотов.

Тут чисто визуально, в магазине нужно определить, влезет ли монстр в ваш системник или нет. Я уверен, что две четырехслотовых бутерброда HD7970, в mini-tower вы тупо засунуть не сможете, не то что там куда то вставить)))…

<img

3. ИМХО.

Если с топовыми системами все понятно, то как быть когда денег немного, а еще надо купить камень, мать, память и сделать из этого игровую машину?

Камни, начиная с Core i5 2500 — позволят раскрыться любой видюхе на все 100%. Однако, определяющим фактором для игр остается только видеокарта. Лучше сэкономить на частоте процессора и вложиться в более мощный адаптер. При этом, никто не мешает взять что-нибудь из предыдущего поколения, но цифрой постарше (см. пояснения выше), если конечно цена позволяет.

Под урезки, вроде пентиумов и дуо, смысла брать чтото выше 67ой серии от АМД с доп. питанием, нет. Эти камни больше 45-50 ФПС, в новых играх не выжмут абсолютно точно. А вот к Quad'ам это не относится, все таки 4 ядра они и в Африке 4 ядра.

Гнаться за 6ю гигами видеопамяти и шиной PCI-Express 3.0, если у вас не топоповая мать — тоже бесполезно.

Про ньюансы БП — в другой статье.

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


Лучшие комментарии

Спасибо, было интересно почитать и даже узнать кое-что новое. Пожалуй, ничего не вызывало такой интерес в блогах за последнее время :)
Прям услада глаз моих. Спасибо.
Такое ощущение что меня только что paint'ом пользоваться учили :D
Блог собрал аж 20 голосов, значит что-нибудь еще точно напишу. По такому случаю всем отписавшимся лучи благодарности.
Колоссальное Вам спасибо. Информативно как нигде.
Как минимум один человек на ваши Железности подписался.
Я ж говорю, что упростил до предела. Просто мне самому не интересно просто так досконально разбираться в различных формах представления двоичного числа, а уж читатели так и вовсе уснут, как я на лекциях по этой байде.
А так, конечно, все гораздо менее прозрачно)) Аппаратное умножение за один такт, уже есть даже в примитивных 8битных микроконтроллерах, про процессоры типа Intel даже говорить нет смысла, там вообще все предусмотрено.
Друже, имеет ли смысл брать сейчас вот эту карточку в ожидании следующего поколения консолей? Моя старушка gtx250 от MSI была выше всяких похвал, тягая монстров вроде BF3 на средне-низких настройках, но, думаю, таки не доживет.
Ну вот так как-то. Это бета-версия, если вдруг что, вечером поправлю орфографию и пунктуацию до конца.
Расслабься, не так уж много людей видели шину ISA или вскрывали кожух от радиатора своей ненаглядной 560Ti. Хотя можно будет четвертым пунктом рассказать про аппаратный разгон, только у меня ни фоточек, ни бенчей не осталось.
i3, на мой скромный взгляд, эту видеокарту полностью не раскроет. Будет работать процентов на 30 всего. 7870 — пойдет, раскроется процентов на 80))
Пост как и прошлый выпуск хорош и информативен. Помнится тоже в силу своего нубства купил крутую видюху, а по приезду домой обнаружил, что этой сцуке 450 Вт подавай притом еще провод дополнительного отдельного питания надо, да просторы видюхи перекрыли мне один PCI и SATA — разъемы в материнке. Благо с угловые шлейфы нашлись.

Подумайте сами:
вычитание — это алгебраическое сложение.
умножение — это многократное сложение.
blockquote>
А я вроде как слышал, что умножение в компах делается логарифмами. В них есть числовые ряды логарифмов и экспоненты. Умножение раскладывается как сумма логарифмов и от суммы берется экспонента.
Если б дома, замкадная общага — штука наполненная разными многоногими ребятами))
660/660Ti от GeForce на этот камень оптимальнее по деньгам будет

Эмм, за ее 10200 минимально, при дерьмовой версии от палита? Хмм, учитывая наличие за 10600 нереференсной HD7950 от XFX — это глупая трата денег)
Очень ок
только архитектура не
CISK
а CISC
Читай также