Memory & Multiprocessing

Рассмотрим настройки закладки Memory & Multiprocessing в программе Adobe After Effects CS6 и что это дает для ускорения работы предварительного и финального расчетов. Выполняем команду: Edit > Preferences > Memory & Multiprocessing (Windows) или After Effects > Preferences > Memory & Multiprocessing (Mac OS).


Adobe After Effects

RAM Reserved for other applications - память зарезервированная для других приложений и операционной системы (отнимаем это значение от общего объема памяти, обычно выставляется от 2 до 3Гбайт, но например при общем объеме 24Гб - значение 8Гбайт дает самый хороший результат).
RAM Available for AE - память доступная для программы After Effects.
Render Multiple Frames Simultaneously - включение поддержки многопроцессорности. Запускается несколько процессов AfterFX.exe (Windows) или aeselflink (Mac OS) которые помогают основному процессу просчитывать кадры как при превью так и при финальном рендере. Каждый процесс работает со своим кадром и физическим ядром процессора (версии от CS5 и выше могут задействовать и виртуальные ядра получаемые за счет технологии Hyper-Threading).
Включение опции Render Multiple Frames Simultaneously не означает что теперь включена поддержка для использования всех ядер процессора или процессоров. Adobe After Effects CS6 в любом случае будет стараться использовать все ядра и все возможности системы в целом, включение опции Render Multiple Frames Simultaneously, дает возможность и во время предварительного просмотра с помощью оперативной памяти (RAM Preview), и во время финального рендеринга просчитывать несколько кадров одновременно, распределяя эти кадры на ядра процессора и используя отведенную память для каждого ядра. Если данная опция не активно, то Adobe After Effects CS6 также будет использовать все ядра процессора для просчета каждого кадра но поочередно. Именно поэтому композиции с большим разрешением 4К и выше, лучше рендерить не активируя опцию Render Multiple Frames Simultaneously, так как каждый кадр будет съедать большое количество памяти, и чем больше ядер у процессора, тем больше выделенной памяти ему нужно. При отключенной опции в просчете каждого кадра будут участвовать сразу все ядра и вся доступная оперативная память, что повысит скорость рендеринга как финального, так и предварительного просчета.
Многопотоковый просчет оптимально подходит для использования именно процессорного просчета, например эффектов glow/свечение и blur/размытие, и менее эффективно, когда требуется большая пропускнаяспособность, например прокачка через память больших потоков, поднимать большое количество источников/потоков с жесткого/твердотельного диска и т.д.
*Режим Render Multiple Frames Simultaneously может автоматически отключаться программой со следующими сообщениями: “Insufficient RAM. Multiprocessing is off.”, “Incompatible effect or expression. Multiprocessing is off.”, “Incompatible preview mode. Multiprocessing is off.”, “Incompatible composition. Multiprocessing is off.”. Это происходит в результате ряда причин:
- Просчет одного кадра требует больше памяти, чем имеется в распоряжении отдельных фоновых процессов.
- Проект использует OpenGL для отрисовки превью или просчета финального результата.
- В композиции используется эффект, который использует GPU обработку.
- Композиция содержит живой Photoshop 3D слой.
- Если использованы эффекты с временной опцией сглаживания (Temporal Smoothing) и где процесс рендеринга имеет доступ к кэшу предыдущих кадров.
- В композиции использованы эффекты который требует кадры, просчитанные в строго последовательном порядке.
- Если использованы следующие эффекты, штатные: Auto Color, Auto Contrast, Auto Levels, Cartoon, Lens Blur, Particle Playground, Shadow/Highlight и сторонние: CC Time Blend и RE:Vision Effects Video Gogh.
Installed CPUs (processor cores) - количество физических ядер.
CPUs reserved for other applications - количество ядер зарезервированных под другие приложения, например если у нас 8х ядер, то можно использовать схему: 2+6. Нет необходимости все ядра отдавать программе After Effects CS6, иногда меньшее количество ядер приносит лучший результат, даже если на каждое ядро хватает памяти.
RAM allocation per background CPU - памяти доступной для каждого ядра при фоновых задачах. Например, значение 0.75Гб не подходит для HD и 2К видео, необходимо устанавливать более высокое значение. Оптимальный объем выделенной оперативной памяти для каждого из фоновых процессов изменяется в зависимости от параметров проекта (например: глубина цвета, color bit depth), настроек композиции (таких как размер композиции кадра), и какие эффекты были применеы. Для обычного телевидения стандартной четкости (SD) рекомендуется выставить по крайней мере 1 Гб для фонового режима. Для типичного проекта HDTV с размером композиции 1920х1080, в фоновом режиме рекомендуется для оптимальной производительности выбрать по крайней мере 2 Гб. Начните работать с этими настройками, и запустите несколько тестов на вашей рабочей конфигурации и с использование типичных проектов, чтобы определить наилучшие настройки для ваших конкретных потребностей. Цифровое кино и проекты с большими размерами кадра требует большего объема оперативной памяти в фоновом режиме для оптимальной производительности.
After Effects CS6 делит выделенную ему часть оперативной памяти на две части. Первая – foreground RAM используется интерфейсом программы, она же должна обеспечить основную работу After Effects. Вторая часть памяти – background RAM используется ядрами процессора для рендеринга – как финального, так и превью (предварительный просчет). Когда мы выставляем RAM Allocation Per background CPU – это именно вот эта вторая часть, которая будет задействована при рендеринге. И это очевидно – если Render Multiple Frames Simultaneously не задействован, все ядра будут использовать всю оперативную память, отведенную для работы After Effects. Если задействован – каждое ядро должно иметь свою часть оперативной памяти, поскольку каждое из них просчитывает свой кадр.
Можно изменить значение максимального объема памяти выделяемого для каждого процесса, идем в следующую директорию и открываем текстовый документ: C:\Users\Имя пользователя\AppData\Roaming\Adobe\After Effects\11.0\Adobe After Effects 11.0-x64 Prefs.txt. Увеличиваем значение “MP – Allocation Per Background Process Preset V”. Сохраняем документ.


Adobe After Effects

Смотрим на результат:

Adobe After Effects

*Неправильное распределение памяти между RAM Reserved for other applications (не надо тут ставить слишком низкие значения) и RAM allocation per background CPU (при ограниченном объеме памяти, не надо выставлять максимаьные значения), может привести к использованию файла подкачки на жестком диске и значительно снизить скорость просчета. Вся память делится на три куска: RAM Reserved for other applications, RAM Available for AE (foreground application’s RAM caсhe) и RAM allocation per background CPU (background rendering processes). Настройки по-умолчанию заточены для обеспечения как можно более долгого RAM превью, и содержания большого количества информации в буфере памяти, отданного для основных нужд After Effects. Сделано это было для того, чтобы предотвратить ненужный повторный рендеринг кадров.
Actual CPUs that will be used - актуальное количество используемых физических ядер процессора (лучший результат 3х5 (3Гб RAM allocation per background CPU и 5х Actual CPUs that will be used). Основная задача – это обеспечить наилучшее быстродействие, и необязательно при этом задействовать все доступные ядра как физические так и логические. After Effects является многопоточным (multithreaded) приложением, а это значит, что даже когда исполняется только один процесс рендеринга, этот процесс может создать потоки на дополнительных ядер, для ускорения рендеринга. Другими словами, вы будете все еще использовать часть дополнительных ядер процессора, даже если они не будут иметь своего собственного процесса рендеринга. Фактически, если вы заставите силой After Effects использовать все ядра для процесса рендеринга (background processes), это приведет к снижению производительности из-за неоптимального распределения ресурсов: память + ядра и «борьбы» потоков между собой за ресурсы.
Варианты настроек зависящиеся от общего объема памяти установленного на компьютере:


Adobe After Effects CS6

*Чтобы не уменьшалась скорость рендеринга, рекомендуется отключать антивирусники, особенно это касается рендеринга с выбранной галкой Render Multiple Frames Simultaneously.
*Увеличить требования к памяти слоя, могут следующие факторы:
- Увеличение глубины цвета (color bit depth) для проекта.
- Увеличение разрешения слоя.
- Использование большого источника изображения.
- Включение color management.
- Добавление маски.
- Добавление per-character 3D properties.
- Прекомпоз без разрушения преобразований (collapsing transformations).
- Использование определенных режимов: blending modes, layer styles, или effects, особенно с участием нескольких слоев.
- Применение определенных параметров вывода, таких как 3:2 pulldown, cropping, и resizing.
- Добавление теней или depth-of-field эффектов когда используются 3D слои.
*Максимальный объем памяти для одного кадра составляет: 2Гбайта. Некоторые примеры разрешений и требования к памяти в мегабайтах (Mб) в кадре:
- DV NTSC (720x480) кадр в 8-битном проекте: 1.3 Мбайта.
- D1/DV PAL (720x576) кадр в 8-битном проекте: 1.6 Мбайта.
- HDTV (1920x1080) кадр в 16-битном проекте: 16 Мбайт.
- 4K (4096x2304) кадр в 32-битном проекте: 144 Мб.
*В обновлении Adobe After Effects CS6 11.0.2 Update в закладке Memory & Multiprocessing добавлена новая категория: Reduce cache size when system is low on memory (this will shorten RAM preview) - уменьшить размер кэша когда системе не хватает памяти.


Adobe After Effects CS6

Программа After Effects CS6 стала более аккуратно работать с памятью, чтобы избегать своппинга контента с оперативной памяти на жесткий диск, во время RAM preview. Так как своппинг занимает очень много времени и снижает производительность работы композера. Теперь After Effects CS6 проверяет сколько памяти свободно, прежде чем начать RAM превью. Но из-за особенности управления памятью на платформе Mac OS, эта проверка памяти, могла приводить к ошибке: “After Effects error: RAM Preview needs 2 or more frames to playback”. Обновление Adobe After Effects CS6 11.0.2 Update позволяет выбрать проводить такую проверку или нет. При выключенной по-умолчанию опции Reduce cache size when system is low on memory строгая проверка памяти выполняется, а при включенной нет. Если с включенной опцией получаем ошибку “After Effects error: RAM Preview needs 2 or more frames to playback”, значит Mac OS большой объем оперативной памяти пометила как неактивный, а не свободной. Чтобы это исправить необходимо запустить purge command из Terminal command line (или перезагрузить компьютер, а не операционную систему).
*В версиях плагинов: DFT Composite Suite Pro v1.5.3 и DFT zMatte v3.5.1.3, исправлена проблема с превью и финальным рендерингом, при выбранной опции: Render Multiple Frames Simultaneously.
*Данная опция недоступна в версиях начиная с Adobe After Effects CC 2015 и выше...

 
Рейтинг@Mail.ru