Нужна ли видеокарта для работы
Для каких приложений полезно ускорение при помощи GPU
Какие нетрадиционные применения GPU существуют
Исторический экскурс (см. врезку) показывает, что игровые приложения становятся фактически единственным применением трехмерных ускорителей. Но ведь существует и множество других предназначений для персонального компьютера, в которых работа ведется исключительно с 2D-объектами – начиная от офисных приложений и заканчивая программами для создания собственного видео. Именно по этой причине авторы последних версий ОС Windows сделали столь явный акцент на многочисленные, но совершенно бесполезные красивости в интерфейсе пользователя (вспомним хотя бы Aero): имея в своем распоряжении мощнейший спецпроцессор, можно без проблем задействовать его ресурсы. Конечно, логичнее было бы предположить появление 3D-интерфейса, но, увы, он не прижился. Хотя попытки создать его предпринимаются и по сей день, и пользовательские фан-группы есть, впрочем, их количеством можно пренебречь: основная масса предпочитает старый добрый двумерный подход. Это касается не только интерфейсов: системы обработки изображений (графические редакторы, растровые и векторные), системы проектирования, среды программирования, верстка, дизайн, работа со звуком – все направлено исключительно на двумерную среду. И здесь помочь не могут даже самые навороченные и сложные видеоадаптеры: по сути, пользователь не заметит разницы между простейшим встроенным видео и четырехпроцессорным дискретным 3D-ускорителем. Та же история и с кодированием видео: в лучшем случае востребованным останется только интерфейс HDMI – но им уже оснащены даже материнские платы с интегрированным GPU. Единственное исключение из правила – системы создания и моделирования трехмерных объектов. В таких графредакторах, безусловно, необходимы дискретные 3D-ускорители. А кроме них остаются только игры. Всем другим приложениям современная видеокарта практически не нужна. Словом, если вы не фанат суперсовременных трехмерных игр и не работаете в системах такого же моделирования, то и видеокарта подойдет любая, в том числе встроенная. Но чтобы не быть голословным, я попробую рассмотреть ситуацию подробнее.
Для каких приложений полезно ускорение при помощи GPU
Прежде всего отметим некоторые, можно сказать, исключительные моменты. Конечно, нельзя однозначно говорить, будто для таких случаев видеокарта очень полезна, но и упускать из виду возможность немного улучшить жизнь и ускорить выполнение определенных операций не стоит.
Итак, прежде всего – графический редактор. Широко распространенный Photoshop, как и прежде, опирается на производительность CPU и HDD, но в версии CS4 появилась поддержка OpenGL, что позволило немного разгрузить центральный процессор и увеличить скорость отрисовки изображения. Для доступа к графическому процессору Photoshop необходимо, чтобы видеоакселератор располагал данной технологией, а также имел достаточно оперативной памяти (от 128 Мбайт) и драйверы, предусматривающие наличие OpenGL 2.0 и Shader Model 3.0. Проверить, как это работает на вашем компьютере, можно, проследовав по меню Edit – Preferences – Performance: если видеокарта поддерживается, опция будет доступна. Если же нет или вы только планируете приобрести видеокарту – лучше всего посетить сайт Adobe и просмотреть список совместимых устройств. А заодно и прочитать приведенный там же FAQ: для некоторых видеокарт (причем недешевых) выложен список проблем совместимости. Тем не менее в перечне проверенных видеокарт встречаются варианты любого уровня, от встроенных Intel Graphics Media Accelerator HD до NVIDIA Quadro FX 3700, что позволяет увеличить производительность Photoshop CS4 решениями любой ценовой категории. Таким образом можно получить сглаженное отображение при любом уровне масштабирования, а также анимированное масштабирование, анимированные переходы при масштабировании одним кликом, «толкание рукой» изображения, вид с высоты птичьего полета, поворот холста, гладкое отображение изображений с неквадратными пикселями, сетку для пикселей и предпросмотр кисти. Кроме того, соответствие цветов будет обрабатываться при помощи графического процессора и станут доступными различные функции для обработки 3D-изображений. К сожалению, пользователям 64-разрядной Windows XP эти возможности не доступны из-за отсутствия драйверов, а пользователям Vista потребуется активировать ее самостоятельно (по умолчанию она отключена у данной ОС).
Переложить часть нагрузки с CPU на видеопроцессор – заманчивая идея не только для графических редакторов. Современные браузеры также вынуждены отображать большое количество информации, что отнимает много ресурсов системы. А потому в 9-й версии Internet Explorer заявлена поддержка технологий Direct2D и DirectWrite, соответственно, практически все операции по обработке графики и видео выполняются видеокартой. Правда, воспользоваться этим смогут только владельцы ОС Windows Vista и 7. Ожидается, что в ближайшее время у остальных браузеров также появится аппаратное ускорение, хотя основное его применение – все те же игры и анимированные приложения.
И наконец, аппаратная поддержка кодирования видео, предоставляемая некоторыми современными моделями видеокарт (H.264/AVC), тоже призвана ускорить операции по сжатию видео. Но энтузиасты отмечают, что на практике ощутимой выгоды не наблюдается, если речь идет о создании собственных видеороликов. Если же перекодировать большое количество HD-медиаконтента для личных мобильных устройств, напротив, выигрыш присутствует, и немалый. Так, благодаря технологии Intel Quick Sync Video и встроенному графическому ядру время «перегона» видео сокращается значительно: по некотором оценкам, скорость может возрастать в 17 раз.
Следует упомянуть еще об одном важном моменте – это актуально для тех пользователей, кто хочет иметь в своем распоряжении ноутбук с мощной дискретной графикой, но не намерен терять в мобильности (то есть во времени автономной работы), – технологии nVidia Optimus. Главное ее назначение – задействовать видеокарты в зависимости от используемого приложения. Другими словами, работаем с офисным пакетом – включается интегрированная графика, снижается энергопотребеление; запускаем игру или другое ресурсоемкое приложение – система автоматически активирует более мощную дискретную, растет производительность. По примерным подсчетам благодаря такому подходу удается продлить время работы от батарей от 1,5 до 2,5 раза, но точнее сказать трудно: слишком причудливо система выбирает, когда и какую видеокарту использовать.
Какие нетрадиционные применения GPU существуют
Факт остается фактом: на борту современной видеокарты установлен очень мощный компьютер. Самостоятельный, со своим ПО, процессорами, памятью, и прочими атрибутами. Что и послужило предпосылкой к решению применить эту (кстати, весьма недорогую – если сравнивать с компьютерами) производительность для нетипичных задач. Так появилась на свет технология CUDA. Идея, кстати, чрезвычайно интересная: аппаратная архитектура параллельных вычислений, для которой есть готовый набор средств разработки. Главное – среда программирования CUDA, предоставляющая набор абстракций, позволяющих выражать как параллелизм данных, так и параллелизм задач. Программист сам выбирает средства разработки: доступны языки высокого уровня, такие как C, C++, Fortran или же API – OpenCL и DirectX-11 Compute. Первым языком, для которого nVidia обеспечила поддержку, стал C. Набор программных инструментов создания С для CUDA позволяет программировать GPU с помощью этого языка с минимальным набором ключевых слов и расширений. В дальнейшем планируется обеспечить поддержку Fortran, OpenCL и других. Свое применение CUDA нашла исключительно в научной сфере, для сложных расчетов: наиболее яркими из них считают решение задачи умножения плотных матриц, расчет цены опционов по формуле Блэка – Шоулза, обработку изображений алгоритмами фильтрации, а также преобразования Фурье. К примеру, некоторые источники приводят такие данные: «при нынешних объемах памяти на графическом процессоре можно умножать матрицы размером в миллионы элементов, и все данные будут размещены в видеоОЗУ. Реально достигнутая производительность при этом будет достаточно высока: на GPU AMD HD 2900 это 100 ГФлоп/c, на GPU nVidia GeForce 8800GTX – 125 ГФлоп/c».
На бумаге все красиво, но вот в реальной жизни... Попытка использовать такую технологию сразу же продемонстрировала ее слабые места. Прежде всего, переносимость – об этом речь вообще не идет, что резко ограничивает возможности распространения готового решения. Закрытая архитектура также накладывает негативный отпечаток, но это все можно было бы списать на несовершенство и «юный возраст» технологии, если бы не другие моменты. Так, некоторые исследователи жалуются на отсутствие обработчика критических ошибок – при их возникновении компьютер просто зависает. Есть трудности и с функционированием ОС в связке с драйвером: не получая от него отклика, операционная система попросту посылает команду сброса каждые 5–10 секунд, делая невозможной работу программы свыше указанного времени. Конечно, с проблемами пытаются бороться, но после прочтения очередного отзыва от экспериментаторов становится понятно, что сейчас это не более чем игрушка для энтузиастов, практическое применение которой будет найдено не скоро. Если, разумеется, будет найдено вообще.
Выводы
Выводы напрашиваются сами собой: для большинства пользовательских приложений возможностей самой простой современной встроенной графики хватит с лихвой. Просмотр видео, обработка и редактирование фотографий, оцифровка и монтаж видео, работа с мультимедиаконтентом, а также практически все без исключения современные приложения требуют для своей работы только 2D-ускорителя. Что бы ни рассказывали маркетологи, какими бы супертехнологиями ни оперировали – в большинстве случаев все это останется невостребованным в реальной жизни. Исключения, как уже говорилось, делаются только для игр и редакторов трехмерной графики – именно для них нужны хорошие, качественные и недешевые ускорители.
Что же касается игровых приложений, здесь варианты выбора упростились до минимума – достаточно прочесть рекомендации разработчика игры или приобрести самый дорогой адаптер (из доступных по бюджету). Впрочем, если вы заядлый геймер, то и без подсказок знаете, что делать!
Что представляет собой современная видеокарта?
С этого вопроса придется начать, потому что многие пользователи совершенно не представляют истинного положения вещей и предполагают, будто это устройство для подключения монитора. А ведь еще относительно недавно это было не одно, а несколько устройств, и предназначались они для разных задач.
Итак, небольшой экскурс в историю. Давным-давно, когда компьютеры были восьмибитными, такого понятия, как «видеокарта» не существовало вовсе. И тем не менее, многие из нас прекрасно помнят и «Денди», и SEGA, и ATARI, и ZX-SPECTRUM, имевших графику, в том числе игры, весьма приличного качества. Достигалось это специфической схемотехникой, уникальной для каждого случая, но в подробности вдаваться не стану, упомяну лишь, что схема, отвечающая за формирование видеосигнала, являлась неотъемлемой частью компьютера и была задействована в других узлах. Например, тот же ZX-SPECTRUM при чтении файла с магнитофонной ленты создавал специфическое изображение на части экрана – бордюре. По сути, главная роль видеомодуля сводилась к преобразованию цифрового изображения в растровое, пригодное для отображения на дисплее или телевизоре, который пришел на смену печатающему устройству – АЦПУ.
Отдельным узлом видеоадаптер стал, пожалуй, только в IBM-совместимых ПК. Один из первых, CGA, позволял формировать растровое изображение (320×200 пикселей, 16 цветов; 640×200 пикселей, 2 цвета), не делая при этом никаких самостоятельных вычислений: подготовка и формирование картинки выполнялась только центральным процессором. По этому же принципу изготовлялись и другие модели, благодаря чему выводимое изображение было исключительно двумерным.
Ситуация кардинально изменилась только с изобретением 2D-акселлераторов и появлением у видеокарт собственного процессора (GPU) – он существенно разгрузил CPU и уменьшил количество данных, передаваемых между центральным процессором и видеомодулем. Теперь такие операции, как построение линии по двум точкам, рисование геометрических фигур и примитивов, которые были занесены в GDI (графический интерфейс Windows), стали делом графического процессора. Ускорение достигалось еще и тем, что GPU был неизмеримо лучше приспособлен для подобных операций и выполнял их быстрее, чем CPU. 2D-акселератор взял на себя прорисовку отдельных элементов – например, рабочего столал, окон приложений, курсора и т. д.
Такая концепция дала мощный толчок к созданию не только графических интерфейсов, но и ряда программ для проектирования (CAD/CAM). Решение оказалось настолько удачным, что длительное время специалисты считали трехмерную графику совершенно бесперспективным направлением, а многие компании еще долго выпускали
высокопроизводительные 2D-ускорители для профессиональных инженерных применений.
Перелом наступил в середине 1990-х, с появлением 3D-акселераторов, ориентированных на ускорение вывода трехмерной графики. Точнее говоря, это произошло летом 1996 год, когда начался выпуск трехмерных игр (конкретно Quake), в которых был реализован полностью полигональный трехмерный мир – с его отрисовкой классические видеокарты уже не справлялись. Примечательно, что отдельные компании, сконцентрировавшие усилия на разработке видеокарт, проигнорировали данное направление, предпочитая совершенствовать двухмерные акселераторы: по их мнению, «игрушками» заниматься несолидно, а персональные компьютеры достойны гораздо лучшего применения, чем в качестве игровой приставки. Увы, история показала, что таким подходом они подписали себе смертный приговор – пользователи рассудили иначе и теперь уже пятое поколение графических карт представляет собой высокопроизводительные 3D-ускорители.
Опубликовано 24.08.2011