Екатеринбург
(343) 213 56 67

t2135667@yandex.ru






Как выбрать и оптимально использовать видеокарту для ускорения работы в Adobe Premiere и After Effects


Главная | Информация | Как ускорить работу Adobe Premiere и After Effects

НЕКОТОРЫЕ ФАКТОРЫ ВЛИЯЮЩИЕ НА ПРОИЗВОДИТЕЛЬНОСТЬ МОНТАЖНОГО КОМПЬЮТЕРА

актуально на 08.2018

 

CUDA/OpenCL и Premiere:



Начиная с версии CS5, Adobe Premiere и After Effects используют вычислительные ресурсы видеокарт. Наличие такой поддержки зависит от сочетания версии видеокарты, версии драйверов, версии программы и их настроек.
Техническая возможность использовать GPU ускорение не значит, что программа вместо CPU начнет работать на GPU. На GPU может решаться ряд вычислительных задач. Если в процессе монтажа или экспорта таких задач не появляется, то GPU в работе программы не участвует.
В этой статье описывается: а) как включить все имеющиеся аппаратные ресурсы, б) как организовать рабочий процесс так, чтобы максимальное число вычислительных задач выполнялось на GPU.


Adobe Premiere прямо поддерживает возможности GPU ускорения практически всех видеокарт NVidia, имеющих CUDA и минимум 1 Гб памяти. Чипсеты ATI поддерживаются Премьером через OpenCL начиная с версии CS6 для Mac (6750M, 6770M), фактически с CC. Из чипсетов Intel поддержка началась с ноутбучных Intel Iris 5100 и Iris Pro 5200 через OpenCL в Premiere СС 2014 (версия 8.0), сейчас добавлены Iris 6100, 6200, 6300, P6300, 540/550, 580, P580; HD Graphics 5000, 6000.

Плагины, например Magic Bullet Looks, Elements3D - это отдельные программы и они могут использовать или не использовать GPU, независимо от настроек программ Adobe.


Что даёт GPU ускорение

Работу Adobe Premiere упрощенно можно рассматривать как следующий конвейер: чтение файлов с диска > декодирование сжатого видео во внутренний формат представления видео в памяти > обработка на таймлайне > сжатие видео кодеком > запись файла на диск. Операции чтения/записи не зависят от GPU и CPU, они зависят от скорости дисков. Графический процессор видеокарт (GPU) при монтаже видео может использоваться на оставшихся трёх операциях. Эти операции выполняются последовательно и независимо. Последовательно означает что кадр видео проходит все этапы конвейера от начала и до конца, независимо означает что скорость работы на каждом этапе не зависит от других. Всё вместе это означает что если на каком-то этапе скорость низкая, то на других будет простой от слова простаивать. Задача оптимизации не ликвидация простоев, а минимизация задержек.

Для выполнения этих операций у GPU есть независимые аппаратные блоки занимающиеся: декодирование распространённых форматов (nvdec/vce/qsv); обработкой изображения на универсальных вычислительных ядрах gpu (шейдеры, CUDA); кодирование в распространённые форматы (nvenc/vce/qsv). Если на видеокарте этих блоков нет или в Премьере нет их поддержки, то операции выполняются на процессоре.

Наибольшее влияние на производительность оказывают:
1) геометрические трансформации над видео (изменения размеров, вращения, преобразование полей, преобразование кадровой частоты), преобразование цветового пространства, цветокоррекции, прочих манипуляций над изображениями, что поддерживается многими фильтрами, эффектами и плагинами
2) аппаратное кодирование видео, что злободневно для форматов h.264, h.265

Это разные способы использования, с разным эффектом. Например, при простом монтаже DV видео встык, без эффектов и последующем кодировании в h264, аппаратное ускорение по первому способу не даст никакого ускорения т.к. видео остаётся без изменений. Но если задействовать второй способ (установлен плагин voukoder, или свежая версия Premiere с включенным аппаратным кодированием Intel Quick Sync, и т.д., при этом GPU вашей видеокарты или процессора поддерживается аппаратным кодировщиком), то скорость финального рендера вырастет в разы. Подробнее про аппаратное кодирование здесь.
Другой пример, монтаж 1080p AVCHD видео с цветокоррекцией, Warp Stabilizer, шумодавом Neat Video с последующим экспортом в dvd. В ускорении по первому способу Warp Stabilizer разница будет малозаметна, работа Neat Video ускорится, а вклад GPU на операциях изменения размеров и цветокоррекции ускорит общий результат в разы; второй способ эффекта не даст по причине отсутствия аппаратного ускорения в mpeg кодировщике.

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


Декодирование материала

Остаётся третий способ использования GPU видеокарты - это декодирование исходного материала. Эффект будет при работе на таймлайне, когда центральный процессор не справляется с декодированием. Это никак не ускорит работу с тяжёлыми эффектами, но будет полезно для случаев когда процессор, не успевает распаковывать тяжёлое видео - 4K, 1080p50 AVCHD/XAVC/HEVC видео с высоким битрейтом (100mbps), лучше всего ускорение заметят владельцы слабых ноутбуков. Такой функционал добавлен для процессоров Intel с QSV начиная с 2015.3.


Mercury Playback Engine GPU Acceleration

Для профессиональной работы принципиальна скорость с которой обрабатывается видео. За все манипуляции c изображением отвечают шейдеры. Скорость счета на CUDA на таких операциях как перекодирование из 1080p25 в 576i возрастёт примерно в 5-6 раз. Цветокоррекция также сильно зависит от GPU. Качество изображения при этом оказывается значительно лучше, чем при работе на центральном процессоре. Таким образом, нужно чтобы видео рендер обязательно был Mercury Playback Engine GPU Acceleration CUDA или OpenCL (включается в File|Project settins|General).

На текущий момент программа автоматически определяют наличие подходящей видеокарты. Однако есть нюансы: Adobe постепенно отказывается от поддержки старых моделей видеокарт (c одной стороны это означает что новые версии программ просто не тестируются на старых картах, с другой стороны производители видеокарт прекращают поддержку старых моделей в новых драйверах); стоит версия Премьера которая вышла раньше чем видеокарта, и он такую не знает; по той или иной причине старые версии Premiere могли не определяет наличие ускорения и не включает его. Можно попробовать подсказать Премьеру вручную.
Если ваша NVidia видеокарта не определена как имеющая GPU ускорение, и в панели Project Settings вместо GPU Acceleration доступен только Mercury Playback Engine Software Only:

PR-video | как включить CUDA в Premiere (Адоб Премьере)

то нужно прописать её в файле C:\Program Files\Adobe\Adobe Premiere Pro CS6\cuda_supported_cards.txt. Список официально поддерживаемых видеокарт ATI (Radeon) находится в файле opencl_supported_cards.txt и может быть таким же образом дополнен вручную. В Premiere СС Adobe разрешила поддержку всех CUDA и OpenCL чипсетов, достаточно было при первом запуске зайти в эту панель настроек и включить GPU вручную. Прописывать руками теоретически не требуется, практически же, если Premiere СС не увидит вашей видеокарты, вам нужно будет самостоятельно создать этот файл и вписать в него свою видеокарту (пример файла NVidia CUDA, Radeon OpenCL).

Легко проверить причину можно вызвав консоль (Ctrl+F12) и выполнить в ней команду GPUsniffer. В текстовой выдаче будет причина: * Not chosen because of insufficient video memory - мало памяти на видеокарте, * Not chosen because of old driver - старый драйвер видеокарты и т.д.
PR-video | как включить CUDA в Premiere (Адоб Премьере)

Новые версии Премьера нуждаются в новых версиях драйверов, если новые драйвера не поддерживают новые функции для вашей старой видеокарту или вообще не поддерживают старую видеокарту, то соответственно придётся работать на более старой версии Премьера. Также СС2015 и новее могут не увидеть видеокарты Kepler после первого запуска программы после загрузки, нужно выйти из премьера и запустить его ещё раз. С драйверами AMD Radeon Crimson не будет GPU ускорения у старых карт AMD Radeon HD 7xxx и более ранних.

Adobe Premiere CS3, CS4 аппаратное ускорение CUDA/OpenCL не поддерживают и прописывать в них видеокарту бессмысленно.

В работе эффектов есть своя особенность: если среди наложенных на клип эффектов есть один, который не поддерживает GPU ускорение, то все остальные эффекты так же переключаются в режим CPU. Adjustment layer это касается в полной мере.

эффекты в премьере с GPU ускорением
на этой картинке показано, как в Premiere отмечены эффекты с GPU ускорением


Ниже идут не рекомендации по покупке видеокарты, а общая информация о связи между производительностью центрального процессора и его способностью загрузить работой все ядра на видеокарте:

AMD двух или четырех ядерный - 96 gpu ядер или более
AMD FX 6 или 8 ядерный - 384 или больше
Intel dual core - 96 или больше
Intel старые quad - 192 или больше
Intel I7 старые - 384
Intel I7 Ivy Bridge - 1344
Intel I7 Ivy Bridge/6 ядер - 1664

Ядер у GPU может быть меньше, но редактирование тогда замедлится.
Если у вас старый компьютер, например quad core на 2.0 ГГц с 4-мя гигабайтами памяти, покупать GTX-780 бессмысленно. Для такой системы лучше добавить памяти и использовать видеокарту с примерно 300 cuda ядрами. Если у вас совсем слабый CoreDuo, то на рынке есть возможность за дёшево приобрести б/у xeon перепиленный под ваш сокет.


Экспорт

Для аппаратного кодирования h.264 есть следующие варианты:
1. Установить плагин voukoder (NVidia/AMD) - плагин выполняет кодирование видеокартой в формат h264/h265, скорость не ниже реалтайма.
2. При наличии процессора Intel c Quick Sync и Premiere 2017.1+ использовать аппаратное кодирование в штатном экспорте Премьера.
эффекты в премьере с GPU ускорением

3. Воспользоваться внешними аппаратными кодировщиками через плагин Advanced Frame Server.
4. Для Premiere CS 5.x, 6.x установить пакет Rovi TotalCode 6.03 включающий в себя кодек h.264 с поддержкой CUDA (не работает с видеокартами архитектуры Kepler и новее, т.е. 6хх и более свежие серии видеокарт не поддерживаются).
Для экспорта в формате mpeg, prores и другие аппаратного кодирования нет.


Версии Premiere и производительность

Более новые версии показывают более высокую производительность. Тестируем CC 7.2 vs СС 2015 9.1 на эффекте Lumetri, загрузив один 1 LUT .cube. Lumetri в Premiere CC в отличие от CC 2015 ускорение GPU еще не использует, но интересно, что и в чисто софтварном режиме CC 2015 оказывается быстрее:
cc7.2 GPU ON, 3.4 fps CPU 35%
cc7.2 GPU OFF 2.9 fps CPU 45%
cc9.1 GPU ON, 25 fps CPU 22% GPU 8%
cc9.1 GPU OFF 3.2 fps CPU 43%.

Обратной стороной новых версий могут оказаться более высокие требования к ресурсам. Это может проявляться как различные сбои в работе над проектом и при экспорте.
Изменения в программе не всегда идут на пользу производительности. До версии СС 2014 Multicam работал нормально,а с этой версии возникли серьезные проблемы с производительностью при монтаже материала с межкадровым сжатием при длине проекта больше 5-10 мин. Проблема в том, что если Premiere не успевает прочитать кадр, то задержка начинает накапливаться в геометрической прогрессии, делая нормальную работу невозможной.

Premiere и память:

Казалось бы, Premiere не так критичен к размеру памяти, однако в некоторых ситуациях нехватка памяти может парализовать работу. Когда памяти мало, допустим 4 Гб, адобовские программы могут использовать для своей работы максимум 2.5 Гб. То есть, если запущен только Premiere, без After Effects и Photoshop, то в его распоряжении в лучшем случае 2.5 Гб памяти. Этого достаточно для простого монтажа DSLR видео, но если проект усложняется, например AVCHD 1080p50 со стабилизацией Warp Stabilizer, шумоподавлением Neat Video, цветокоррекцией Lumetri, кодированием в h.264, то компьютер начинает серьезно подзависать, да так, что мышь притормаживает. Если посмотреть в такие моменты в диспетчер задач, становится видно что система уходит в глубокий своп, хотя может быть свободно и 1 Гб памяти.

Выход в такой ситуации может быть следующий: Edit/Preferences/Memory - Optimize rendering for: Memory. В крайнем случае можно попробовать выключить опцию Maximum bit depth (при работе на GPU эта опция включена всегда, не зависимо от выбора пользователя. При работе на CPU её отключение отрицательно влияет на качество любой цветокоррекции).
PR-video | сколько памяти надо для Premiere

Экспортировать при нехватке памяти можно через Adobe Media Encoder (кнопка Queue), после чего можно закрыть Premiere.

Также можно отключить системную службу Superfetch, которая занимается опережающим кешированием, что при нехватке памяти бессмысленно и вредно.

У новых версий Premiere малый объём физической памяти может быть проблемой, часто поступают жалобы что "Premiere 2017 вылетает посреди экспорта". В такой ситуации может помочь существенное увеличение файла подкачки. Поскольку активное использование файла подкачки не может способствовать повышению производительности, мы это избегаем. Сначала можно попробовать оптимизировать эффекты, попробовать кодировать в более простой кодек.

Количество ядер процессора и hyperthreading на требования к памяти не влияют, в чём легко убедиться, отключая ядра в Task Manager. Если у вас много системной памяти, не отдавайте её всю программам adobe - при работе активно кэшируются дисковые операции, и наличие свободной системной памяти может ускорить работу.


Adobe Media Encoder

В программе MediaEncoder, CUDA ускорение появилось начиная с апдейта 7.1 для Media Encoder CC от 10/31/2013. Чтобы оно работало, должен быть выбран соответствующий рендер.

CUDA в Adobe Media Encoder

Если ваша NVidia видеокарта имеет CUDA, но невозможно выбрать рендером Mercury Playback Engine GPU Acceleration, то нужно вручную создать файл C:\Program Files\Adobe\Adobe Media Encoder CC 2014\cuda_supported_cards.txt и прописать вашу видеокарту там. Ситуация с Радеонами аналогичная.

Нужно понимать что перекодирование видеофайлов в MediaEncoder и экспорт проекта из Premiere/AfterEffects это разные операции. При пересчете видеофайлов из одного формата в другой render engine AME включает GPU ускорение при изменении размеров/кадровой частоты видео, а если только делается пересчет в другой кодек, то ничего не ускоряется. Проект Premiere/AfterFX просчитывается другим образом: для этого AME загружает в память ядро premiere/afterfx и GPU ускорение при просчете всех эффектов и преобразований внутри проекта зависит не от Media Encoder а от настроек Premiere в проекте. Чтобы при просчёте в MediaEncoder работало GPU ускорение на всех эффектах Premiere, нужно чтобы опция Import sequences natively была выключена.

CUDA в Adobe Media Encoder

При правильной настройке скорость экспорта из Premiere и AME версий 7.1 и новее будет одинакова.


Как контролировать работу GPU

Проверить как фактически используется чипсет видеокарты (GPU) можно программой GPU-Z. GPU-Z показывает галочками имеет ли ваша NVidia видеокарта CUDA, или ваш Radeon OpenCL, а во время рендера хорошо видно как загружается работой GPU вашей видеокарты (GPU Load). Пожалуйста, учитывайте, что другие программы запущенные в системе, а также плагины (например Magic Bullet Looks) могут самостоятельно и независимо от настроек программ Adobe нагружать GPU и это тоже будет отображаться.
В строке Video Engine Load при экспорте (кодировании) отображается нагрузка блока nvenc, при работе на таймлайне (декодировании) нагрузка блока отвечающего за декодирование.

загрузка GPU в GPU-Z






CUDA и ускорение работы After Effects:



При работе в After Effects, программа может использовать ресурсы видеокарты следующими способами:
— ускорение 2D интерфейса программы - работает на всех видеокартах;
— OpenGL - есть практически на всех видеокартах, ускоряется превью (Fast Draft), OpenGL плагины (например Element 3D);
— альтернативное ядро просчета 3D слоёв (с камерой, источниками света) именуемое Ray-traced 3D - только для видеокарт NVidia.
В AE 14.0 появился новый рендер для 3D слоёв - встроенное ядро Cinema 4D.
Постепенно появляется GPU ускорение у встроенных эффектов: у версии 14 это Lumetri, Fast Blur, Brightness and Contrast, Find Edges, Hue/Saturation, Mosaic, Glow, Tint и Invert.

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

В любом случае, для After Effects нужен быстрый центральный процессор и много памяти (16 Гб а лучше 32 и более), без этого наличие мощной видеокарты не даст никакого эффекта, кроме того, многие тяжелые плагины просто не используют CUDA и работают только на центральном процессоре или на универсальном ускорении OpenGL. В отличие от Премьера, наличие GPU ускорения на видеокарте ускорит работу в меньшем количестве проектов.

Разница между OpenGL и CUDA
Аппаратное ускорение видеокарт обеспечивается специальными блоками на кристалле GPU: Render output units (ROP), Texture mapping units (TMU), Unified shaders (CUDA ядра). Существуют две технологии использования GPU видеокарт: OpenGL и CUDA (для видеокарт от ATI и Intel аналог CUDA называется OpenCL).
OpenGL
описывает трехмерную сцену целиком, и это описание никак не зависит от видеокарты, но его средствами невозможно выполнить все функции After Effects. Производительность OpenGL прежде всего зависит от количества и мощности ROP и TMU блоков занимающихся трехмерной визуализацией. Также OpenGL отвечает за 2D графику в системе - за ускорение пользовательского интерфейса (Hardware BlitPipe), управление видеорежимами, операции с видеопамятью. Работающий через OpenGL режим Fast Draft окна Composition оптимизирован для очень быстрого предварительного просмотра в черновом качестве.
С точки зрения работы в AE, функций OpenGL совершенно недостаточно для его использования при финальном рендере, но, для плагинов которые его используют, его производительность имеет очень большое значение.
CUDA означает прямое программирование ядер GPU, это прямой полный доступ к вычислительной мощи видеокарты. Упрощено говоря, много CUDA ядер быстро обрабатывают очень много цифр, но с изображением как с 2D или 3D сценой они не работают. Какое-то подобие функциональности OpenGL для CUDA сделано компанией NVidia через библиотеку OptiX, где основная программа работающая на CPU, выполняет математические расчеты на шейдерах CUDA. Рендер через эту библиотеку в After Effects и называется Ray-traced 3D. Ray-traced 3D поддерживает не все функции After Effects, но на подходящих композициях он может многократно превзойти по скорости CPU рендер. Будет выигрыш или нет, лучше определить путем тестового рендера вашего рабочего проекта.
С точки зрения работы в AE, на композициях с 3D слоями это может дать хорошую прибавку к скорости, также CUDA и OpenCL могут напрямую использоваться плагинами.

Поддерживает ли видеокарта OpenGL и CUDA
OpenGL поддерживается всеми графическими ускорителями NVidia, AMD, Intel. Для Fast Draft требуется OpenGL версии 2.0 или выше, и Shader Model 4.0 или выше. Как правило, с этим проблем не возникает. CUDA версия драйвера должна быть 4.0 или выше (для СС нужна версия 5.0+). Версии можно проверить в EDIT/Preferences/Preview/GPU Information.

как увидеть что  CUDA в After Effects используется

Если версии ниже, то надо обновить драйвера с сайта NVidia. Если не помогло, то пора покупать новую видеокарту. Если у вашей видеокарты есть CUDA, но GPU ускорение не доступно, а возможен только software режим, то можно вручную добавить свою видеокарту в файл C:\Program Files\Adobe\Adobe After Effects CS6\Support Files\raytracer_supported_cards.txt. Для After Effects СС и новее достаточным может оказаться включить галку Enable untested GPU... в панели EDIT/Preferences/Preview/GPU Information
CUDA  в After Effects СС



Ray-traced 3D
3D рейтрейсный рендер Ray-traced 3D появился начиная с CS 6 (версия 11.0.2 и новее), он обсчитывает на видеокарте 3D слои, камеру, источники света в композиции, в которой он выбран рендером. Поддержаны только CUDA GPU видеокарт NVidia. Есть особенности работы: финальный рендер может стать в разы быстрее, или может оказаться медленнее классического CPU рендера, в зависимости от композиции и видеокарты. Также при включении графического ядра Ray-traced 3D параллельно ускоряется отображение в окне Composition при редактировании проекта.
Есть ограничения: GPU рендер не поддерживает ряд функций программы связанных с режимами наложения, track matte, и ряд эффектов, например Pin Tool, т.е. подходит не для всех композиций.
В версиях до CC 2015.1 не поддерживаются чипсеты Maxwell - GeForce GTX 750Ti, вся серия 9x0. В 2017.2 не поддерживаются чипсеты Pascal. Видимо Adobe не успевает обновлять лицензию на чужую библиотеку, но нам ничто не мешает сделать это вручную, подменив optix.1.dll (скачать OptiX 3.9) в папке Adobe After Effects CC 20xx/Support Files.
Как альтернативу Ray-traced 3D, в проектах можно использовать плагины Video Copilot Element 3d, Zaxwerks 3d Invigorator, Mettle ShapeShifter, которые быстрее и мощнее чем Ray-traced 3D. В версии 14 появился встроенный рендер Cinema 4D.


Для включения Ray-traced 3D нужно:
1. Включить его в AE, зайдя в меню EDIT/Preferences/Preview/GPU Information (картинка приведена выше)
2. Указать его для каждой композиции в которой вы решите его использовать:

PR-video | как включить CUDA  в After Effects

ВАЖНО ПОНИМАТЬ !!! - CUDA (Ray-traced 3D) в AfterEffects обрабатывает только 3D слои в композиции для которой рендером указан Ray-traced 3D. 2D слои в любом случае обрабатываются рендером Classic 3D. Если в панели EDIT/Preferences/Preview/GPU Information выбран CPU, то независимо от указанного в композиции рендера, включится Classic 3D.
Применение CUDA не гарантирует тотального ускорения: если из 2D слоя сделать 3D и включить Ray-traced 3D, то CUDA включится, но скорость упадёт, потому что на трансформации простых элементов в пространстве Classic 3D оказывается быстрее. Но если усложнить сцену: добавить источники света, тени и глубину резкости, то производительность Classic 3D резко падает и Ray-traced 3D станет уверенно быстрее. Таким образом, Ray-traced 3D нужно устанавливать только для тех композиций проекта, где он даёт ускорение, при неправильном выборе рендер замедлится. Если в композицию вложен слой с другой композицией Ray-traced 3D, выбор рендера для них независим.
Разобраться как это работает лучше делая тестовые рендеры Ray-traced 3D/Classic 3D. Перед тестом не забывайте очистить кэши - Edit/Purge/All Memory & Disk Cache. Засекайте время и следите за нагрузкой CUDA. Контролировать нагрузку GPU можно в программе GPU-Z (значение GPU Load).
Всё это удобно и правильно - в проекте нужно комбинировать 3D элементы оптимизированные под ускорители видеокарт с 2D и 3D элементами использующими весь функционал After Effects.


Ускорение редактирования. Включение OpenGL

Чтобы при редактировании проекта задействовать рейтрейсное 3D ядро работающее через Cuda, нужно чтобы в панели EDIT/Preferences/Preview/GPU Information был выбран GPU.

Также есть возможность использовать ресурсы GPU через OpenGL, то есть задействовать возможности видеокарт AMD (ATI), Intel HD Graphics и тех же NVidia через программный интерфейс 3d ускорителей OpenGL. Это ускоряет работу при редактировании проекта: используется при просчете превью, для отрисовки интерфейса AE при редактировании проекта и некоторыми эффектами (эффекты Cartoon, Magic Bullet Looks и Colorista используют OpenGL как при редактировании, так и при экспорте).

OpenGL для отображения в окне Composition при редактировании и для превью включается кнопкой Fast Preview / Fast Draft в окне Composition. В силу ограничений стандарта OpenGL, не все функции After Effects работают, поэтому Fast Draft применим не для всех проектов.
PR-video | как включить GPU в After FX


Другая опция ускоряющая работу в редактировании: включить Hardware Accelerate Composition (если у вас СС 2015, то нужна версия 13.6+): В меню Edit / Preferences надо выбрать Display, и включить Hardware Accelerate Composition. Эта опция отвечает за аппаратное комбинирование слоев и отрисовку элементов интерфейса в окне Composition (Hardware BlitPipe).

Многопроцессорность: ускорение финального просчета

У After Effects долгая история развития, ещё с тех времен когда программа называлась CoSa AfterFX и у компьютера был одни процессор с одним ядром. Соответственно не все функции программы, и не все внешние плагины умеют распараллеливать свою работу на несколько ядер. Эта проблема с каждой новой версией снимается, но для старых версий или использования старых плагинов может оказаться актуальной.

Больший объём памяти дает возможность использовать опцию Multiprocessing. Для её включения нужно в меню Edit / Preferences выбрать Memory & Multiprocessing. В середине появившегося окна включить Render Multiple Frames Simultaneously (рендерить несколько кадров одновременно). После этого появится возможность задать количество памяти доступное для каждого процессорного ядро для рендера. При желании выберите значение исходя из установленного количества памяти и числа ядер CPU. В случае если памяти не хватит After FX автоматически уменьшит количество задействованных ядер. Обратите внимание, что начиная с Media Encoder и AE СС 2015.0 эта опция отключена.

В некоторых случаях эта опция позволяет ускорить рендер, но за счет большего расхода памяти. При финальном рендере вдобавок к имеющейся в памяти копии After Effects будут запущены дополнительные копии по числу задействованных ядер CPU, только без пользовательского интерфейса. То есть, на 4 ядерном процессоре с Hyper-threading в памяти окажется 9 копий After Effects. Надо понимать, что работать в 8 раз быстрее от этого AE не станет: если какой-то эффект умеет распараллеливать свою работу на несколько ядер просчитывая один кадр, то ускорения от Multiprocessing не будет, потому что чтобы обрабатывать одновременно 8 кадров, нужно подготовить в 8 раз больше информации, в 8 раз больше пересылать информации по памяти и согласованно управлять 8-ю потоками обработки, например для обработки фотографии в 17 мегапикселей резервируется порядка 1 Гб памяти, следовательно, для восьми потоков нужно 8 Гб. Это лишняя непроизводительная нагрузка. Если же при просчёте эффекта задействуется только одно ядро, а остальные простаивают, то дать для просчета каждому ядру по кадру будет безусловно эффективным. Реальная эффективность этого способа зависит от многих условий и лучше проверять опытным путём, отслеживая загрузку процессора в Task Manager (Диспетчере задач). Adobe рекомендует при 8 ядрах запускать 4-6 потоков.

PR-video | медленный рендеринг в adobe after effects


Сетевой рендер
After Effects позволяет настроить рендер по сети, на нескольких компьютерах. Прежде чем браться за это, надо помнить что использованные в проекте шрифты/кодеки должны быть установлены на всех машинах задействованных в рендере.

Экспорт в h264 и After Effects CC
Начиная с версии СС экспорт в h264, WMV и MPEG по умолчанию отключен. Причем с версии СС 2014 он отключен совсем. Это сделано по причине принципиальной невозможности использовать в After Effects двухпроходные кодеки. Для этих форматов разработчиками рекомендован экспорт через Adobe Media Encoder. В реальной работе практичнее всего напрямую экспортировать в какой-либо формат без межкадрового сжатия, например avi кодек UT video, qt кодек Cineform, PNG; а потом перекодировать в h.264.

Для версии After Effects CC остается возможность однопроходного h.264 кодирования, для чего нужно в настройках включить прямой экспорт в h264, и самостоятельно настроить Output Module в очереди рендера:

PR-video | как включить экспорт h264 в Adobe After Affects CC

Остается возможность прямого экспорт в h264 через Quicktime, к сожалению h264 кодек в QT низкого качества. Также можно установить внешние кодеки AfterCodecs основанные на ffmpeg.


Adobe Media Encoder
Adobe Media Encoder не поддерживает Render Multiple Frames Simultaneously - опцию в AE для ускорения просчёта, зато поддерживает много форматов экспорта, также в нём можно подключить кодеки с аппаратным ускорением кодирования.
В реальности, наибольшим недостатком AME, является то, что он не поддерживает Ray-traced 3D, и, что хуже всего, что при кодировании кадра кодеками с межкадровым сжатием, Media Encoder заставляет АЕ постоянно пересчитывать все предыдущие кадры в группе.
Резюмируя: прежде чем экспортировать через AME, попробуйте экспортировать несколько кадров напрямую и засеките время. Если при экспорте через AME скорость упадет, то практичнее экспортировать напрямую (например TIFF sequense, avi/UT video, mov/Cineform) и потом переконвертировать ваше видео в нужный формат.

Одновременная работа AE с другими программами Adobe
After Effects стремится кешировать все результаты просчета превью, и занимает всю доступную память независимо от её объема. Такое кеширование существенно ускоряет редактирование в AE, но недостаток памяти приводит к различным сбоям и аварийному завершению работы программ в самый неподходящий момент. Чтобы минимизировать это, при переключении между AE и Photoshop или Premiere, просто освободите память: Edit/Purge/All Memory.

PR-video | как включить экспорт h264 в Adobe After Affects CC






ОБЩИЕ ВОПРОСЫ

Память видеокарты
Нужен минимум 1 Гб памяти на видеокарте, и лучше если она будет DDR5. Память DDR3 пригодна для работы, но если покупать новую видеокарту, то разумнее взять DDR5. Для работы full HD формально с большим запасом достаточно 2 Гб, однако, когда один кадр компонуется из нескольких исходных кадров (картинка в картинке) или используются эффекты одновременно обрабатывающие несколько кадров (шумодавы и т.д.) расход памяти кратно возрастает. Если используется GPU ускорение, то вся эта память должна быть на видеокарте. Поэтому 2 Гб это разумный выбор, а 4 Гб это лучше и просто необходимо для UHD/4K видео.

OpenGL в Premiere
OpenGL Премьер не использует, OpenGL используют некоторые плагины. Поддержка OpenGL осуществляется на уровне системы. Если вы устанавливаете видеокарту, то вместе с её драйверами добавляется OpenGL ускорение. Настройки производительности осуществляются из утилит устанавливаемых вместе с драйверами видеокарты. Всё это хорошо знакомо геймерам.


Quadro
Единственный смысл использовать видеокарты серий Quadro в монтаже видео, это в случае 10-битного материала и 10-битного монитора, например HP Dreamcolor. В остальных случаях Quadro недостаточно быстры или слишком дороги.


Питание
Карты NVIDIA GeForce при полной нагрузке потребляют от 200 до 700 Вт (в паре или SLI).
Следует помнить что остальные компоненты системы тоже потребляют энергию. Вторым по потребляемой мощности идет центральный процессор, для quad core Q9650 это 65 Вт, в этом случае достаточно блока питания от 300 Вт. Или I7-930 потребляет до 130 Вт, и блока питания на 500 Вт, может не хватить.

  простой, Вт экстремальная нагрузка, Вт CUDA ядер
GTX 460 80 160 336
GTX 660 80 275 1152
GTX 660Ti 80 320 1344
GTX 670 80 340 1344
GTX 680 85 390 1536
GTX 690 100 510 2х1536
GTX 730 10 38 96
GTX 760 95 300 1152
GTX Titan 109 335 2688
GTX 960 105 270 1024
GTX 980 110 390 2048

 

Охлаждение
Необходимо контролировать рабочую температуру видеокарты. Существует несколько программ позволяющих это делать. Например все тот же GPU-Z или HWMonitor (скачать можно с www.cpuid.com). При необходимости, организуется дополнительное охлаждение. Так же контролируйте температуру CPU.

Независимо от принимаемых мер, не реже чем раз в пол года надо чистить радиаторы и вентилятор от пыли.

Работа с несколькими GPU
Такие видеокарты как GTX 690, Titan по существу уже являются сдвоенными видеокартами. Premiere CC работает с ними, и, более того, работает если в системе несколько видеокарт, причем режим SLI не требуется, а значит можно использовать видеокарты разных серий. Этот режим работы также известен как MultipleGPU. Выигрыш в производительности здесь не однозначен и зависит от сбалансированности конфигурации компьютера.
Дополнительные возможности для манёвра даёт использование GPU сторонними плагинами. В таком случае можно CUDA ускорение одной видеокарты назначить Премьеру, а OpenGL ускорение другой видеокарты (например Radeon) назначить плагину (например серия Magic Bullet работает через OpenGL). Кроме того появляется всё больше плагинов напрямую использующих MultipleGPU - Neat Video 4, Beauty Box 4, Twixtor, DE:Noise, ReelSmart Motion Blur.

Оптимизация работы с дисками
Нужно не допускать фрагментации рабочих дисков, контролируйте её и при необходимости выполняйте дефрагментацию. Для Premiere разместите Media Cache на выделенном быстром HDD, а лучше SSD. Для Adobe After Effects включите Disc Cache в Preferences/Media & Disc Cache и разместите его на выделенном быстром диске, в идеале SSD; так же разрешите Disc Cache = Current Settings в Render Settings очереди рендера Render Queue.

Фотографии
Если вы загружаете в проект фотографии в ~20 мегапикселей, а дальше работаете с ними уменьшив например до 25%, то лучше предварительно уменьшить их в фотошопе. Таким образом каждая такая операция с этим фото в Премьере, каждый эффект будет выполняться в 4 раза быстрее.
Кроме того, имеется ограничение GPU ускорения в Премьере: для обработки кадра резервируется ((ширина*высота)/16,384) мегабайт памяти на видеокарте. Если полученное значение превышает размер доступной памяти, рендер Premiere переключается на центральный процессор. Это означает, что на этом кадре GPU ускорение не будет работать ни на одном эффекте. Для примера, размер изображения с Canon 550D равен 5184×3456 пикселей. В результате расчета получаем 1,094MB, что физически больше 1GB памяти на Quadro FX 3800.

CEPHtmlEngine
Этот процесс - часть нового подхода Adoba к интерфейсам: отвечает за работу панели Library (доступ к облачным медиа-ресурсам) и за новое окно запуска Premiere; каждые 5 секунд лезет в облако и на процессорах без HT может забирать 30% быстродействия. Adobe предлагает лечить кривой код AngularJS заплатами. Мы же считаем, что код который тупо поллит ввод-вывод в многозадачной системе не приемлем в принципе, и сносим папку CEPHtmlEngine, расположенную в c:\Program Files\Adobe\Adobe Premiere Pro CC 2015\

AdobeIPCBroker
Примерно каждые 30 секунд процесс с именем AdobeIPCBroker.exe посылает зашифрованные данные длиной от 1 до 1,5 кб адобовским серверам. Поскольку нам надо работать, а не быть на постоянной связи с облаком, файл c:\Program Files (x86)\Common Files\Adobe\OOBE\PDApp\IPC\AdobeIPCBroker.exe можно заменить этим.

Lumetri Scopes
Если при проигрывании таймлайна быстродействия не хватает, то учитывайте, что отображаемая панель Lumetri Scopes требует немалых ресурсов.

Aero
Aero работает за счет GPU ускорения и потребляет ресурсы. Поэтому его можно отключить

 

https://helpx.adobe.com/premiere-pro/system-requirements.html - системные требования
http://blogs.adobe.com/aftereffects/category/technical-focus
https://www.cpubenchmark.net/common_cpus.html

видеокарта cuda, cuda ускорение в premiere pro cc, как включить cuda в premiere, медленный рендеринг в adobe after effects, как включить cuda в adobe after effects, использование видеокарты при просчете в after effects, настройка opengl в after effects cs6 cc 2015 2017, видеокарты для работы в after effects, after effects cc экспорт в h264 и wmv, как прописать свою видеокарту в программе after effects, лучшая видеокарта для after effects, список видеокарт в after effects, как наилучшим образом ускорить работу after effects, как ускорить рендер в after effects,настройка видеокарты в adobe after effects, оптимизация after effects cc, поддержка GPU в Премьере, поддержка cuda adobe premiere pro cc 2017, как включить gpu в premiere, включение графического процессора для афтер эффект, аппаратное ускорение кодирования видео через видеокарты, аппаратное ускорение в adobe premiere, какой нужен комп для работы в premiere, при рендере не нагружается gpu в adobe, cuda как включить, premiere cc поддерживаемые видеокарты, adobe premiere pro cc 2017 как добавить видеокарту, premiere pro настройки видеокарты, при рендере не нагружается gpu в adobe, ускорить работу премьера, premiere используется не все ядра процессора, cuda_supported_cards.txt, настройка быстродействия adobe after effects cc 2017, mercury playback engine как включить, установить кодек h.264 в premiere, загрузка cpu больше чем gpu, поддержка режима cudo для премьера, премьер тормозит, как включить opengl в adobe premiere cc 2018, настройка adobe premiere pro 2018 на видеокарту