Некоторые факторы влияющие на производительность монтажного компьютера. Обновление CUDA API: CUDA в новых драйверах не работает. Возвращаем поддержку CUDA в два шага CUDA и ускорение работы After Effects

Я люблю Nvidia за то, что их видеокарты поддерживают множество всяких полезных штук типа PhysX и, конечно же, CUDA. Вдруг встал вопрос о конвертировании видео, и, конечно же, я решил не напрягать свой Core i7 этими делами, пусть рулит системой, а у меня в запасе аж два бестыжих чипа gf110 из видеокарт GTX780. Но конвертеры вдруг стали выпендриваться, что не нашли у меня устройств с поддержкой CUDA! Я порыскал в интернете и узнал, что nvidia выключила поддержку CUDA официально обновили АПИ для CUDA и теперь dll-ки куды в состоянии Deprecated, начиная с драйвера 340.52 и следующих.

Update 1

Оказывается, nvidia обновили АПИ для CUDA и поэтому ни одна программа в данное время не работает. Остается только ждать, пока все обновят программы в поддержку нового АПИ, пока что можно воспользоваться хаками ниже. Читать тему про это можно .

Варианты решения

  • Поставить старый драйвер 337.88
  • Разархивировать этот архив в C:\Windows (только для x64)
  • Скачать модифицированный драйвер 344.11 от Cyris

P.S.

P.S.S (09.01.2017): Пост старый. Возможно, все вышесказанное уже не поможет, поэтому, просто обновите программу-конвертер. Большинство из них уже умеет работать с новым интерфейсом CUDA, поэтому все эти махинации более не требуются.

Всем привет! Сегодня мы будет активировать графичиеский процессор CUDA (если он имеется в вашей видеокарте). В новой версии программ пакета Adobe , как заявляет производитель, прописано большое количество поддерживаемых видеочипсетов, но на практике это оказалось не так, но это мелочь, тк все можно сделать самому.

ЧТО ТАКОЕ CUDA?

CUDA – это архитектура параллельных вычислений от NVIDIA, позволяющая существенно увеличить вычислительную производительность благодаря использованию GPU (графических процессоров).На сегодняшний день продажи CUDA процессоров достигли миллионов, а разработчики программного обеспечения, ученые и исследователи широко используют CUDA в различных областях, включая обработку видео и изображений, вычислительную биологию и химию, моделирование динамики жидкостей, восстановление изображений, полученных путем компьютерной томографии, сейсмический анализ, трассировку лучей и многое другое.

Итак, что нам потребуется?

1. Идем на оф сайт Нвидиа и загружаем последнюю версию драйвера для вашего мака CUDA drivers: http://www.nvidia.com/object/mac-driver-archive.html

2. Открываем терминал и вбиваем такую команду

3. /Applications/Adobe\ Premiere\ Pro\ CC/Adobe\ Premiere\ Pro\ CC.app/Contents/GPUSniffer.app/Contents/MacOS/GPUSniffer

4. Находим нашу модель видеокарты (например: GeForce GTX 580)

5. sudo nano /Applications/Adobe\ Premiere\ Pro\ CC/Adobe\ Premiere\ Pro\ CC.app/Contents/cuda_supported_cards.txt

6. Добавляем название вашей карты в список

7. Сохраняем:

8. Для After Effects* sudo nano /Applications/Adobe\ After\ Effects\ CC/Adobe\ After\ Effects\ CC.app/Contents/raytracer_supported_cards.txt

9. Пролистываем в самый низ и вставляем название вашей видеокарты

10. Сохраняем: Control+X, then Y применяем изменения

11. Выбираем в программах CUDA и радуемся полученному ускорению при монтаже

Наглядную активацию вы можете посмотреть на видео ниже

Движок Adobe Mercury Playback, лежащий в основе Premiere CS5, поддерживает ускорение CUDA лишь для нескольких видеокарт Quadro и GeForce GTX 285 . Однако, определение поддержки видеокарты осуществляется простым сравнением названия со списком, и список может быть изменён для добавления поддержки других видеокарт на базе NVIDIA.

Для добавления поддержки ускорения CUDA для видеокарты убедитесь, что выполнены следующие условия:

  • Используется полная версия Adobe Premiere CS5. Пробная (trial) версия не поддерживается.
  • Графический процессор видеокарты имеет уровень CUDA compatibility 1.1 и выше. Видеокарты на базе G80 имеют уровень лишь 1.0 и не подходят для Mercury Engine.
  • Видеокарта имеет не менее 896 Мб видеопамяти. Хотя для включения ускорения требуется лишь 765 Мб, эта память должна быть полностью доступна приложению, а часть видеопамяти всегда занята под обслуживание графического интерфейса Windows и обмен с драйвером, так что с картой с 768 Мб видеопамяти приложению будет доступно меньше 765 Мб и ускорение работать не будет.
  • Установлен драйвер NVIDIA версии не ниже 197.45.

Выполните следующую последовательность действий:

  1. Запустите командную строку Windows (cmd.exe ) от имени администратора. Командой cd перейдите в папку, куда установлен Premiere (обычно C:\Program Files\Adobe\Adobe Premiere Pro CS5) .
  2. Выполните команду GPUSniffer.exe
  3. Внимательно изучите вывод программы. В конце его должна быть строка « CUDA Device # 0 not chosen because it did not match the named list of cards ». Если указана другая причина («because 765MB are required, and XXXMB are present », «because CUDA version 1.0 is not supported »), значит видеокарта не поддерживается, или драйвер NVIDIA установлен некорректно, удалите и установите новую версию драйвера. Запомните также строчку вида «Name: GeForce ХХХХХХ Compute capability: 1.3 », GeForce ХХХХХХ и есть имя карты, под которым её надо будет добавить в список.
  4. Выполните команду notepad.exe cuda_supported_cards.txt
  5. В Блокноте допишите последней строкой имя карты, которое узнали в пункте 3 и сохраните файл.
  6. Снова выполните команду GPUSniffer.exe . Просмотрите вывод и убедитесь, что в конце присутствует строка « CUDA Device # 0 supported ».
  7. Запустите Adobe Premiere. Создайте новый проект и зайдите в его свойства. На закладке «Video Rendering and Playback» смените «Mercury Playback Engine Software Only» на «Mercury Playback Engine GPU Acceleration».

Следует учитывать следующие ограничения аппаратного ускорения CUDA в Premiere:

  • Mercury Playback не ускоряет кодирование/декодирование видео — это работа кодека. Одновременная работа с проектом и экспорт проекта с кодеком, также использующим ускорение CUDA , может привести к непредсказуемым результатам.
  • Не все эффекты ускоряются.
  • Ускорение корректно работает лишь для первых трех слоев, последующие слои могут обрабатываться аппаратно лишь частично и возможны артефакты изображения.
  • Предельные разрешение обрабатываемого видео и число слоев зависят от объема видеопамяти. Рекомендуется включать функцию ускорения CUDA лишь для видеокарт с большим, чем 1 Гб, объемом памяти.

Как не странно больше всего вопросов именно по самым дешевым видеокартам. Конечно целесообразнее купить сертифицированную Adobe видеокарту, как в своем блоге писал их инженер, выбор видеокарт ограничен, так как они не хотели чтобы службу поддержки завалили вопросами по видеокартам как это происходит с After Effects. Конечно логичнее поддержать профессиональные карты и с референсным дизайном. Но как видим список расширяется и помимо чипсетов G200 и Fermi, официально для ноутбуков поддержан чипсет: G92 (Quadro FX 3700M и Quadro FX 3800M). Так как начиная с обновления Adobe Premiere Pro CS5 5.0.2 update движок Mercury Playback Engine (MPE) оптимизируется под видеокарты с архитектурой Fermi, то было принято решение купить в ближайшем магазине самую дешевую видеокарту всего с двумя требованиями: Fermi 2.0 и объем бортовой памяти больше 768Мбайт. Выбор пал на видеокарту: стоимостью чуть больше 4 тысячи рублей.

Характеристики видеокарты Gainward GeForce GTX 550 Ti 1024MB (NE5X55T0HD09-1061F) :
40нм чипсет GF116 (GeForce GTX 550 Ti), 1.17 млрд. транзисторов. DirectX 11 GPU с поддержкой Shader Model 5.0 создан для ультра-высокой производительности при использовании новой графической возможности API – создания мозаики с GPU-ускорением.
Ядро и шейдерный блок работают на частотах: 900/1800МГц.
192 потоковых процессоров и 8 полиморфных движков.
32 текстурных блока. Блоков блендинга: 24.
384КБ унифицированной кэш-памяти второго уровня L2.
Скорость заполнения текстур (миллиард текселей/сек): 28.8.
Производительность: 691 GFLOPS.


1024Мб памяти GDDR5, работает на частоте 4100МГц. 6х чипов Hynix H5GQ1H24AFR T2C с временем доступа 0,8 нс, и частотой 5ГГц. Доступно памяти: 953Мбайта.
192-битная шина памяти (используются три 64-битных контроллера памяти).
Полоса пропускания памяти: 98.4Гб/с.
Интерфейс: PCI Express 2.0 x16.
Тепловыделение чипсета: 116Вт.
Максимальная температура GPU: 100 градусов.
Поддержка работы в конфигурации 2-way SLI.
Выходы: DVI-I, VGA, HDMI.
Поддержка HDMI 1.4a, включая поддержку Blu-ray 3D с GPU-ускорением, x.v.Color, HDMI Deep Color и 7.1 канальный цифровой объемный звук.
Поддержка: OpenGL 4.1, DirectX 11 и Shader Model 5.0, NVIDIA PureVideo HD.
Предназначена для работы с мониторами с разрешением: 1680х1050 и менее.
Двухслотовая активная система охлаждения с примитивным алюминиевым радиатором с ребрами (фото кликабельно).


И 92мм 11х лопастным вентилятором :

Поддержка ОС: Windows 7 32/64bit, Windows Vista 32/64bit, Windows XP 32/64bit.
Размеры видеокарты очень компактные: 188 х 112 мм.
Питание GPU обеспечивает четырехфазный преобразователь под управлением контроллера NCP 5395T.
Требуемая мощность блока питания – 400Вт или более, ток по шине +12В должен быть не менее 24А. Блок питания должен быть укомплектован одним 6-контактным разъемом питания. На видеокарте дополнительный разъем питания PCIe находится сверху видеокарты, а не сбоку, что намного удобнее при монтаже в корпус:


Карта была добавлена в старый системный блок с двухядерным процессором Intel Core 2 Duo E6400 + Asus P5B Deluxe (Intel P965 Express с шиной PCI Express x16 первой ревизии с пропускной способностью 8Gb/s) и штатным блоком питания GPS-500AB-A (500Вт, три линии 12В выдают: 16+18+18А, 2x 6pin разъема PCIe) который шел в нагрузку с корпусом Chieftec UNI BA-02B-B-SL. Т.е. покупка более прожорливой карты, могла привести к покупке более мощного блока питания. Наша же цель, выяснить что нам даст, простая замена видеокарты на более современную которая будет поддерживать GPU ускорение в программе Adobe Premiere Pro CS5 и CS5.5. Безвинтовое крепление слотов расширения корпуса Chieftec UNI BA-02B-B-SL не может работать с данной видеокартой, так как ее двухслотовая система охлаждения, а именно декоративный пластиковый кожух мешает креплению. Пришлось по старинке закреплять видеокарту винтами.


Устанавливаем следующие драйвера (*работайте только с WHQL драйверами, после их установки, перезагрузите ПК):

Запускаем программу Adobe Premiere Pro CS5 и выбираем в Project Settings: Mercury Playback Engine Software Only.

Выбираем пресет для последовательности: DSLR 1080p25. Делаем клип по длине звуковой композиции:

Клип состоит из источников: Canon 550D, 5D, PNG последовательность, M-JPEG футажи и JPEG фото. Применены следующие эффекты: Track Matte Key, Ultra Key, Time Remapping, Gaussian Blur, Fast Color Corrector и Black & White. Также были использованы следующие функции: Scale to Frame Size, Frame Blend, менялся PAR у PNG последовательности и режим смешивания Color Dodge.
Далее, три варианта экспорта: H.264 Blu-Ray, Match Source Attributes (High Quality), т.е. при таком варианте не изменяется разрешение и частота кадров. Второй вариант: Mpeg2-DVD, PAL Widescreen High Quality, тут также задействуется штатный скалер , который понижает разрешение до 720х576. И третий вариант, тоже что и второй, но с включенной галкой: Use Maximum Render Quality.

Все остальные тесты пройдут с использованием GPU. Но сначала надо включить поддержку видеокарты. Идем в директорию: C:\Program Files\Adobe\Adobe Premiere Pro CS5 запускаем приложение GPUSniffer.exe и запоминаем название карты.


Далее, в той же директории, открываем текстовый документ: cuda_supported_cards.txt и вписываем туда название видеокарты (если карточка не видна программе, то про ошибки подключения читаем ). Далее, тесты проводились на версии программы Premiere Pro CS5.0.3 (чтобы посмотреть как работает оптимизация под Fermi). Стоит учесть, что после обновления, при загрузке проекта появится надпись:


Так что для каждой версии программы участвующей в тесте:

Необходимо заново переписывать текстовый документ: cuda_supported_cards.txt.

И соответственно проверять в Project > Project Settings > General какой движок выбран:

Как только мы выбираем: Mercury Playback Engine GPU Acceleration полоса над таймлайном сменит цвет с красного на желтый.

Для просчета клипа, не использовалась программа Adobe Media Encoder. Вот итоговая таблица с результатами:

Даже бюджетная видеокарта может значительно ускорить ряд операций, на медленном ПК. Также стоит отметить, что с каждым обновлением все более эффективно используется GPU видеокарты. Так как один из плюсов программы, это хорошая масштабируемость, то результаты на мощных ПК будут уже совсем другие.
*Кроме стандартного объема бортовой памяти 1Гбайт, видеокарты на чипсете GeForce GTX 550 Ti могут поставляться со следующим объемом памяти: 1.5Гбайта , 2Гбайта , 3Гбайта и 4Гбайта .
*Любителям еще сэкономить: по сути видекарта является разогнанным вариантом еще более бюджетной видеокарты GeForce GTS 450 (GF106), в GeForce GTX 550 Ti увеличились тактовые частоты, 128-битная шина памяти была увеличена до 192-битной (за счет включения третьего контроллера) и количество блоков ROP было увеличено с 16 до 24. Все. Плюсы GeForce GTS 450: намного более низкая цена и потребление, всего 106Вт (т.е. требование к блоку питания еще меньше).
Видеокарта GeForce GTX 460 (GF104) 768 Мбайт нам не подходит, так как часть памяти занято "служебкой" и в итоге доступный объем памяти не удовлетворяет требованиям Mercury Playback Engine GPU Acceleration. Хотя она и быстрее GeForce GTX 550 Ti.
*У кого есть возможность немного доплатить лучше обратить внимание на видеокарту GeForce GTX 560 Ti (GF114), она немного опережает по производительности "прожорливую" GTX 470 и намного быстрее и GeForce GTX 460 768MB, GeForce GTX 460 SE и уж тем более GeForce GTX 550 Ti, и может служить той золотой серединой. GTX 560 Ti отличается от GTX 560 - включенным восьмым полиморфным движком (мультипроцессором) с дополнительными 48 потоковыми процессорами (в 560 их 7х), 8-ю дополнительными текстурными блоками и блоками растеризации и увеличенной мощностью на 20Вт, почти при аналогичной цене.
За скобками остались совсем бюджетные решения, например ресурс studio1productions.com активно пропагандирует использование бюджетного решения GT 240 (ядро GT215) для не очень мощных систем (данная видеокарта позиционируется производителем, как: бюджетный CUDA ускоритель для дома). Но и тут есть нюансы, так как у бюджетных решений под одним кодовым именем скрывается несколько вариантов видеокарт. Так вот при использовании видеокарты GT 240 1GB GDDR5 мы получим увеличение скорости в Premiere Pro CS5.5 на 45% относительно использования GT 240 1GB DDR3. Тут все дело в пропускной способности памяти, при 128-битной шине памяти и GDDR5 работающей на частоте 3.4ГГц, получаем ПСП = 54.4Гб/с. При использовании 128-битной шины доступа и DDR3 памяти работающей на частоте 1.58ГГц, получаем ПСП = 25.28Гб/с (расчитывается по формуле: 128 х 1580/8).
Видеокарта GeForce GTX 550 Ti также рекомендованна для карт захвата UltraScope, DeckLink, Multibridge и Intensity компании Blackmagic Design. В список входят видеокарты: nVidia GeForce GTX 285, nVidia GeForce GTX 550Ti, nVidia GeForce GTX 570 и nVidia GeForce GTX 580. Минимальные требования: поддержка OpenGL 2.1 и Texture Fill Rate более 22,000 MT/s.
Про сравнительное тестирование видеокарты GeForce GTX 550 Ti с GeForce GTX 650 читаем , а про сравнение с GeForce GTX 650 Ti .
*На более мощной системе, можно увидеть большую разницу между видеокартами разного класса. Поэтому нет смысла к примеру использовать связку: двухядерный процессор и видеокарту класса GeForce GTX 580.
!!! Будьте внимательнее, в рознице встречаются видеокарты MSI GeForce GTX 550 Ti 1024MB GDDR5 () с заявленными частотами 900/3800 МГц (против 900/4100 у референса, что уже должно быть звоночком). В реальности же все намного печальнее: под видом GeForce GTX 550 Ti (построенной на GF116 / Fermi 2.0) продается перемаркированная MSI N450GTS-M2D1GD5 (построенная на GF106 / Fermi 1.0) с частотами ядра 783МГц и 1Гбайт GDDR5 памяти работающей на частотах: 3608 или 3200МГц. 128-битная шина памяти, вместо 192-бит. И 144 потоковых процессоров, вместо 192.

Видеокарта разгоняется до частот 900/4000МГц, но 128-битная шина против 192-битной, это значительный минус.