Мало кто знает, что видеоадаптеры способны на большее, чем просто выводить изображение на экран монитора. Благодаря CUDA, Stream и другим аналогичным технологиям видеокарта может значительно повысить производительность ПК, взяв на себя часть неграфических вычислений. О том, как это работает, мы расскажем в этой статье.
Для вывода на экран монитора непрерывной череды кадров в одной из современных трехмерных игр требуется недюжинная производительность. Вполне логично, что нынешние графические адаптеры по производительности не уступают последним моделям процессоров. Но в то время, когда видеоплате не приходится трудиться над обработкой видеоданных, ее потенциал остается невостребованным. Для того чтобы она не простаивала и могла по мере надобности взять на себя определенные задачи, тем самым облегчая участь центрального процессора, были разработаны специальные функции ускорения работы ПК. Мы поясним, как работают эти технологии и как с их помощью можно повысить производительность компьютера.
Каким образом видеоплата повышает скорость работы ПК?
Вычислительными возможностями видеоплат способны воспользоваться лишь специально адаптированные программы. Они должны уметь напрямую взаимодействовать с графическим чипом и поддерживать как минимум одну из четырехтехнологий аппаратного ускорения.
CUDA. Компания NVIDIA разработала технологию Compute Unified Device Architecture, которая часто используется для выполнения сложных научных и технических вычислений, а также для обработки видео и изображений.
Stream. Производитель видеоплат ATI (теперь AMD) разработал похожую технологию аппаратного ускорения Stream.
Обе они работают со всеми операционными системами, кроме Mac OS, и только с графическим чипом соответствующего производителя. Разработчикам программного обеспечения приходится, таким образом, выполнять двойную работу, чтобы графические адаптеры обоих производителей могли ускорять работу их программ. Следующие две технологии подходят для чипов обоих производителей (NVIDIA и AMD).
OpenCL. Технология, представленная компанией Apple в 2008 году, работает в сочетании с любой операционной системой и любым аппаратным обеспечением. Но до настоящего момента практически не существует программ для ускорения работы ПК с помощью OpenCL. К тому же, что касается прироста производительности, OpenCL значительно отстает от CUDA и Stream.
DirectCompute. Поддержка данной технологии была интегрирована Microsoft в DirectX 11. Однако она работает только в сочетании с Windows Vista и Windows 7 и небольшим количеством программ.
Какой прирост производительности обеспечивает графический чип?
Это, конечно, зависит от видеоплаты, а также от производительности остальных компонентов. Выигрыш в производительности определяется также программным обеспечением и выполняемыми задачами. Прирост быстродействия мы измеряли на современном компьютере среднего класса. В большинстве случаев конвертирование HD-видео при поддержке графического процессора может выполняться до двадцати раз быстрее. Скорость работы с фильтрами и эффектами при обработке фотографий может возрасти до трехсот раз.
Результаты измерений, проведенных с использованием трех видеоредакторов, показали, что конвертирование видео в формат HD при поддержке графическое процессора осуществляется до четырех раз быстрее.
Чем объясняется высокая производительность CUDA и аналогичных технологий?
Центральный процессор на системной плате, приступая к выполнению сложных вычислительных операций, вначале разбивает их на несколько отдельных задач, а затем производит их поочередную обработку. Промежуточный результат сохраняется в сверхбыстрой, но небольшой по объему памяти центрального процессора — в его регистрах. При переполнении регистров данные попадают в кэш-память -промежуточную память, также размещенную непосредственно на чипе. Однако на обмен данными между нею и оперативной памятью уходит сравнительно много времени, поэтому общая скорость работы оказывается невысокой.
• Графические процессоры в некоторых случаях способны выполнять подобные операции быстрее. Это возможно благодаря следующим двум обстоятельствам.
• Параллельные вычисления. Если требуется выполнить множество схожих вычислительных операций, некоторые из них могут быть обработаны графическим процессором одновременно. Например, при обработке видео и изображений программе приходится изменять миллионы пикселов, применяя при этом повторяющиеся методы. Для этого видеоплата имеет сотни крохотных процессоров, называемых потоковыми (Stream Processor).
• Более высокая скорость доступа к памяти. Как и центральные процессоры,видеоплаты также используют собственные промежуточную и оперативную память. Однако они имеют значительно большее количество регистров быстрой памяти, что заметно ускоряет выполнение вычислений.
Какие видеоплаты поддерживают CUDA и прочие аналогичные технологии
CUDA поддерживают видеоплаты NVIDIA серии 8000 и выше, технология Stream требует наличия видеоплаты как минимум серии HD 4000. Какие видеоплаты способны работать в связке с центральным процессором, вы узнаете из таблицы.
Кое количество потоковых процессоров имеют видеоплаты?
Все зависит от модели. GeForce GTX 590 обладает двумя чипами Fermi, в каждом из которых имеется по 512 потоковых процессоров. Самая мощная в настоящее время видеокарта от AMD — Radeon HD 6990 — тоже имеет два чипа (Cayman) по 1536 процессоров. Однако несмотря на количественное преимущество, видеоадаптер HD 6990 значительно уступает GTX 590 в скорости работы.
Как активировать CUDA или Stream?
В этом нет необходимости, поскольку технологии являются неотъемлемой составляющей аппаратной части видеоплат. Как только драйвер видеоплаты определит программу, которая поддерживает CUDA, Stream или OpenCL, он автоматически обеспечит существенное повышение скорости работы ПК. Для оптимальной производительности установите последнюю версию драйвера для соответствующей видеоплаты.
Важно: владельцам видеоплат AMD необходимо дополнительно загрузить и установить пакет AMD Media Codec Package (раньше он назывался драйвером ATI Avivo).
Какие программы поддерживают эти технологии?
Прежде всего — это видео- и графические редакторы. В таблице вы найдете обзор основных программ, поддерживающих технологии аппаратного ускорения с помощью видеоплат.
Почему не все программы поддерживают данные технологии?
Пока OpenCL не получит широкого распространения, разработчикам ПО придется адаптировать каждую программу для поддержки графических чипов NVIDIA и AMD. Однако далеко не все разработчики готовы идти на дополнительные издержки. К тому же лишь немногие программы способны обеспечить непрерывный поток простых вычислительных операций,которые можно выполнять параллельно. Это хорошо работает в сочетании с видео- и графическими редакторами. Для почтовых клиентов, например Outlook, или текстовых редакторов, таких как Word, поддержка этих технологий заметным преимуществом не является.
Суперкомпьютер
Китайский компьютер Tianhe-1Аимеет7168 графических чипов NVIDIA, обеспечивающих производительность в 2,5 Пфлопса (2,5 трлн вычислительных операций в секунду). Он потребляет 4 МВт электроэнергии, это сравнимо с потребностями небольшого города с населением около 5 тысяч жителей.
Может ли графический процессор заменить центральный?
Нет. Они устроены абсолютно по-разному. Центральный процессор является универсальным вычислительным блоком, способным обрабатывать и передавать данные другим компонентам компьютера. Напротив, графические процессоры являются узко-направленными «специалистами»: хотя они выполняют сравнительно небольшое количество задач, зато делают это с очень высокой скоростью.
Что нас ждет в будущем: универсальные чипы
Для повышения производительности центральных процессоров компании Intel и AMD постоянно увеличивают количество ядер. К тому же они внедряют технические новшества для повышения эффективности вычислений и возможности параллельной обработки данных. В отличие от CPU современные графические процессоры уже могут похвастать наличием множества простых ядер, которые в перспективе гораздо быстрее справятся с комплексными вычислительными операциями.
Таким образом, первоначальные различия в принципах работы графического и центрального процессоров постепенно стираются. Поэтому появление своего рода чипа-универсала, способного выполнять все задачи, более чем логично. Уже сегодня многие владельцы ПК могут, по крайней мере теоретически, воспользоваться потенциалом графических чипов без дорогих видеоплат: современные разработки, среди них Fusion от AMD и процессоры i3, i5 и \1 на базе архитектуры Sandy Bridge от Intel, наглядно демонстрируют способность графического и центрального процессоров объединять усилия и работать в качестве одного универсального вычислительного блока.
Во всех этих чипах ядра центрального и графического процессоров располагаются на одном кристалле, что дает возможность быстрее распределять вычисления между подходящими ядрами. Используемые при этом технологии называются Intel Quick Sync и AMD Арр. В настоящее время уже существуют отдельные программы, которые используют данную технологию.