Начиная со сборки 5.2.2022, WCS поддерживает аппаратное ускорение при декодировании и кодировании видео с использование NVIDIA GPU.
Настройка
Для работы аппаратного ускорения на сервере должны быть установлены NVIDIA CUDA драйверы по инструкции с официального сайта. При этом CUDA toolkit устанавливать не нужно:
sudo apt-get install -y cuda-drivers
Если драйверы установлены успешно, утилита nvidia-smi
покажет текущее состояние GPU
Поддержка аппаратного ускорения включается настройкой
enable_hardware_acceleration=true
При включенном аппаратном ускорении приоритет будет у CUDA кодировщика/декодировщика, если сценарий использования не попадает под исключения!
Настройка для работы под нагрузкой
Настроек по умолчанию достаточно для небольшого количества сессий транскодинга и тестирования. Однако для эксплуатации в условиях повышенных нагрузок необходимо настроить такие параметры, как максимально допустимое количество кодировщиков на графическое ядро и на сервер в целом. Для этого используется файл настроек /usr/local/FlashphonerWebCallServer/conf/gpu_config.json
[ { "gpuName" : "Tesla P100-PCIE-16GB", "disabled" : false, "config" : { "maxEncodeSessions" : 95, "maxHostEncodeSessions" : 95, "maxDecodeSessions" : 19, "maxEncoderUtilization" : 90, "maxDecoderUtilization" : 90, "minMemoryAvailable" : "4 GB" } } ]
[ { "pciBusId" : "0000:02:00.0", "disabled" : false, "config" : { "maxEncodeSessions" : 95, "maxHostEncodeSessions" : 95, "maxDecodeSessions" : 19, "maxEncoderUtilization" : 90, "maxDecoderUtilization" : 90, "minMemoryAvailable" : "4 GB" } } ]
Здесь:
- gpuName - имя GPU
- pciBusId - идентификатор GPU на PCI шине
- disabled - не использовать GPU
- maxEncodeSessions - максимальное количество кодировщиков на GPU
- maxHostEncodeSessions - максимальное количество кодировщиков на сервере
- maxDecodeSessions - максимальное количество декодеров на GPU
- maxEncoderUtilization - максимальная нагрузка на GPU при кодировании
- maxDecoderUtilization - максимальная нагрузка на GPU при декодировании
- minMemoryAvailable - минимальное количество свободной памяти