Комментарии - Мамулат Анатолий (1)

Мамулат Анатолий прокомментировалВидеопроцессоры и технологии аппаратного ускорения 13 декабря 2012 в 10:24

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.
Для вывода на экран монитора непрерывной череды кадров в одной из современных трехмерных игр требуется недюжинная производительность. Вполне логично, что нынешние графические адаптеры по производительности не уступают последним моделям процессоров. Но в то время, когда видеоплате не приходится трудиться над обработкой видеоданных, ее потенциал остается невостребованным. Для того чтобы она не простаивала и могла по мере надобности взять на себя определенные задачи, тем самым облегчая участь центрального процессора, были разработаны специальные функции ускорения работы ПК. Сейчас мы расмотрим, как работают эти технологии и как с их помощью можно повысить производительность компьютера.

Каким образом видеоплата повышает скорость работы ПК?

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

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-видео при поддержке графического процессора может выполняться до двадцати раз быстрее.

Скорость работы с фильтрами и эффектами при обработке фотографий может возрасти до трехсот раз.

Чем объясняется высокая производительность 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, поддержка этих технологий заметным преимуществом не является.

Может ли графический процессор заменить центральный?

Нет. Они устроены абсолютно по-разному. Центральный процессор является универсальным вычислительным блоком, способным обрабатывать и передавать данные другим компонентам компьютера. Напротив, графические процессоры являются узконаправленными «специалистами»: хотя они выполняют сравнительно небольшое количество задач, зато делают это с очень высокой скоростью.
0