Триумвираты древнего Рима сформулировали тезис, который пережил свою страну и свою эпоху. Хлеба и зрелищ. Хлеба и зрелищ! Без любого из этих компонентов жизнь становится невыносимой. И, если вопрос поступления в организм килокаллорий нас не заботит совершенно, то рассказать о компьютерных зрелищах сам Бог велел. Компьютер – это мощная вычислительная машина. Его пришествие как орудия труда было неминуемо. На работе – незаменимая вещь. Но едва ли кому-нибудь вздумалось бы притащить вычислительную машину к себе домой. Компьютеру в жизнь бы ни пробраться к домашнему очагу простых граждан, не начни он показывать завораживающие картинки и издавать чарующие звуки. И он научился. Он способный. Но произошло это не сразу. История эта полна героических подвигов и трагических событий. Этот экскурс не поможет вам выбрать видеокарту, но я постарался сделать его таким, чтоб он понравился даже самым маленьким читателям.
Магия эльфийского меча
Едва столкнувшись с обработкой графики, выяснилось, что обрабатывать ее необходимо с помощью иных алгоритмов, нежели математические данные. Для наглядности проведем аналогию. Процессор обрабатывает информацию подобно конвейеру. В течение одного такта информация попадает к одному блоку, тот передает его следующему, тот следующему, и так до последнего звена. В следующий такт все повторяется. В современных процессорах до 8-16 ядер, так что мы получаем всего 8-16 конвейерных линий. В видеокарте есть армия маленьких процессоров. Они одновременно берутся за сотни заданий. Потом передают второму блоку, потом третьему, а вскоре и заканчивают морочиться. В итоге, за единицу времени обрабатывают гораздо больше информации, нежели процессор. Кажется, что вот он идеал – зачем клепать одно большое ядро? Давайте сделаем сотню мелких, зато пусть они работают параллельно! Но не все так просто. Фокус параллельной обработки состоит в том, что все потоки должны обрабатывать только информацию, нужную в данный момент. Нельзя, чтобы один поток решал текущую задачу, а другой – будущую. Потому что неизвестно, что будет в будущем. Также не имеет смысла обрабатывать информацию из прошлого. Даже, если ее перед этим не успели обработать – теперь она уже устарела. Логические задачи, обрабатываемые процессором, плохо делятся на потоки. Их сложно предсказывать, их нет смысла разделять. Чего не скажешь про графическую информацию. Ее можно легко распараллелить. Огромная площадь монитора, замощенная однотипными элементарными примитивами, из которых формируется картинка, – что может быть проще? Поэтому на плате видеокарты поселились целые процессорные блоки, занимающиеся обработкой определенных данных. Кстати, минутка занимательной информации. Как вы видите по мощности современных процессоров, помощь им особо и не нужна. Но несложные объемные задачи требуют не парочку мощных ядер, а сотню любых. Типический пример – подбор паролей. Существуют специальные программы подбора паролей. Такая программа запрашивает доступ с любым паролем. Если пароль не подходит – она пробует другой. Если у вас цифровой пароль, или он является реально существующим словом – рано или поздно, программа подберет его. А теперь представьте, если за одно и то же время программа будет спрашивать не два пароля, а двести. Скорость увеличится в 100 раз. При этом для такой задачи отнюдь не нужно очень мощное вычислительное ядро. Вот в таких задачах обработка на видеокарте значительно аппетитнее, чем на процессоре. В таких условиях зачастую количество вычислительных блоков становится важнее качества этих самых блоков. По этой причине старая видеокарта дорогого сегмента, как правило, оказывается лучше, чем новая бюджетная. На том же принципе – чем больше, тем лучше – основаны технологии SLI/CrossFire. Водородную бомбу под кодовым названием SLI изобрели сумрачные гении из 3dfx. Но сбросить ее на мирные города времени история им уже не оставила. Все чертежи и планы передали в штаб-квартиру nVidia. Когда они увидели сокрушающую мощь новейших, невиданных доселе технологий, их глаза загорелись. Уже совместными силами они усовершенствовали эту технологию. Менее, чем через год после покупки 3dfx, nVidia анонсирует SLI. И ATI ничем не смогла ответить. Только через год они создали похожую технологию CrossFire. Суть тандема видеокарт в том, что весь объем труда ведущая видеокарта делит пополам и половину задания отдает помощнику. А если видеокарт больше – то делит на всех участников этой кооперации. Затем каждая видеокарта обрабатывает свой кадр, а ведущая видеокарта синхронизирует их и выводит готовую картинку. Все это легко звучит, но очень сложно работает. Сложнее всего синхронизировать полученные потоки информации, ведь разговор идет о тысячных долях секунды. Да и поделить информацию так, чтобы все получили задание по способностям, тоже непросто. Из таких особенностей вытекают ограничения конструкции. В первую очередь то, что можно соединять только одинаковые видеокарты. Иначе леший разбери, как между ними делить нагрузку. Ну и второе: Каждый начинающий полководец должен понимать простую истину – армию нужно кормить. И, чем многочисленнее легион, тем больше питательных веществ потребуется. И мощные видеокарты имеют несколько ртов, через которые их нужно кормить. Ну, и расходы на канализационное обслуживание выделенного тепла также возрастут. Сами вычислительные блоки бывают разные. До 2006-2007 годов в видеокартах было разделение на «вершинные» процессоры и «шейдерные». Т.е. первые строили трехмерные фигуры, а вторые накладывали на них текстуры, освещение, тени и пр. Это было связано с тем, что для выполнения этих двух операций требовались разные математические алгоритмы. Поэтому каждый тип процессора был специализированным и выполнял свой тип работы гораздо быстрее. А недостаток этого подхода заключался в том, что производитель размещал на видеокарте строго фиксированное количество процессоров одного и другого типа на свое усмотрение, и это значение являлось константой. А вот игры бывали разные. В одних было много трехмерных моделей, в других много текстур и световых эффектов. В итоге всегда в видеокарте какая-то часть процессоров просто простаивала. По факту, загруженность даже в очень сбалансированном варианте не превышала 90%, а ведь могла составлять и 60%. Обидно, когда видеокарта еле справляется с игрой, а у нее треть блоков простаивает, не так ли? Поэтому производители перешли на унифицированные суперскалярные процессоры. Говоря человеческим языком – всеядные. Может, они оказались и слабее, чем специализированные, зато они всегда при деле. Все, чем видеокарта занимается в данный момент, хранится на складских помещениях собственной памяти. Эта память называется GDDR. Сейчас встречаются только карты с памятью GDDR3 и GDDR5. GDDR4 существует, но она стоит, как GDDR5, а показатели у нее близки к GDDR3. Объем и частота памяти очень важны. Причем частота даже более важна. Если со склада вещи будут доставаться очень быстро – это полезно для любой армии. Если у вас маленький склад – это станет проблемой только при обильном завозе товара. В этом случае памяти придется мотаться, как хомячку в колесе. А это приведет к повышенному выделению тепла. Есть множество переправ, где породистых процессорных скакунов придется попридержать. Вторым таким местом является “ширина” собственной шины видеокарты. Если у вас плохо развита транспортная система, армию к границам быстро не мобилизуешь. И чем больше пикселей нужно расшевелить на вашем мониторе – тем острее необходимость именно в широкой шине. Существует еще и третье бутылочное горлышко, через которое очень нужно протащить караван с трофеями. Это слот, через который данные приходят к видеокарте с материнской платы. Слот этот сейчас встречается только один – PCI Express. Но наплодилось их уже три генерации. И каждая новая удваивает скорость передачи данных. Если материнская плата или видеокарта поддерживают более старую версию шины, то система сохранит работоспособность, но работать эта конструкция будет по более медленному стандарту.