Использование нескольких видеокарт
Если на физическом сервере установлено несколько видеокарт, вы можете создать дополнительные экземпляры findface-extract-api-gpu
или findface-video-worker-gpu
и распределить их по одному экземпляру на карту.
В этом разделе:
Распределение экземпляров findface-extraction-api-gpu
по видеокартам
Для распределения экземпляров findface-extraction-api-gpu
по нескольким видеокартам выполните следующие действия:
Остановите исходный сервис
findface-extraction-api-gpu
.sudo service findface-extraction-api stop
Создайте несколько копий файла конфигурации
/etc/findface-extraction-api.ini
, в зависимости от того, какое количество видеокарт будет использоваться для извлечения биометрических образцов. Добавьте соответствующие номера устройств GPU к именам новых файлов конфигурации, как показано в примере ниже (устройства GPU №0 и №6)./etc/findface-extraction-api@0.ini /etc/findface-extraction-api@6.ini
Откройте новые файлы конфигурации. Укажите номера устройств GPU, а также номера слушающих портов.
sudo vi /etc/findface-extraction-api@0.ini listen: 127.0.0.1:18666 ... gpu_device: 0 ...
sudo vi /etc/findface-extraction-api@6.ini listen: 127.0.0.1:18667 ... gpu_device: 6 ...
Запустите новые сервисы.
sudo service findface-extraction-api@0 start sudo service findface-extraction-api@6 start
Привязка findface-video-worker-gpu
к дополнительной видеокарте
Для создания дополнительного экземпляра findface-video-worker-gpu
и его привязки к свободной видеокарте выполните следующие действия:
Отобразите статус исходного сервиса
findface-video-worker-gpu
, выполнив команду:sudo systemctl status findface-video-worker-gpu.service
Найдите полный путь к сервису в следующей строке:
Loaded: loaded (/usr/lib/systemd/system/findface-video-worker-gpu.service); enabled; vendor preset: enabled
В приведенном примере это
findface-video-worker-gpu.service
(имя может быть другим). Создайте копию сервиса под новым именем.sudo cp /usr/lib/systemd/system/findface-video-worker-gpu.service /usr/lib/systemd/system/findface-video-worker-gpu2.service`
Таким же образом создайте под новым именем копию исходного файла конфигурации.
sudo cp /etc/findface-video-worker-gpu.ini /etc/findface-video-worker-gpu2.ini
Откройте только что созданный файл конфигурации и актуализируйте номер используемого GPU-устройства. Измените номер порта в секции
streamer
по следующей формуле:18999 (номер порта для GPU 0) - номер GPU-устройства
, т. е. для GPU 1,port = 18998
, для GPU 2,port = 18997
и т. д.sudo vi /etc/findface-video-worker-gpu2.ini ## cuda device number device_number = 1 ... #------------------------------ [streamer] #------------------------------ ## streamer/shots webserver port, 0=disabled ## type:number env:CFG_STREAMER_PORT longopt:--streamer-port port = 18999 ...
Откройте новый сервис и укажите только что созданный файл конфигурации.
sudo vi /usr/lib/systemd/system/findface-video-worker-gpu2.service ExecStart=/usr/bin/findface-video-worker-gpu --config /etc/findface-video-worker-gpu2.ini
Для применения изменений перезагрузите демон
systemd
.sudo systemctl daemon-reload
Добавьте новый сервис в автозагрузку.
sudo systemctl enable findface-video-worker-gpu2.service Created symlink from /etc/systemd/system/multi-user.target.wants/findface-video-worker-gpu2.service to /usr/lib/systemd/system/findface-video-worker-gpu2.service
Запустите новый сервис.
sudo systemctl start findface-video-worker-gpu2.service
Проверьте статус обоих сервисов
findface-video-worker-gpu
.sudo systemctl status findface-video-worker-* | grep -i 'Active:' -B 3 ● findface-video-worker-gpu2.service - findface-video-worker-gpu daemon Loaded: loaded (/usr/lib/systemd/system/findface-video-worker-gpu2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-07-18 10:32:02 MSK; 1min 11s ago ... ● findface-video-worker-gpu.service - findface-video-worker-gpu daemon Loaded: loaded (/usr/lib/systemd/system/findface-video-worker-gpu.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-07-15 15:18:33 MSK; 2 days ago