Использование нескольких видеокарт

Если на физическом сервере установлено несколько видеокарт, вы можете создать дополнительные экземпляры findface-extract-api-gpu или findface-video-worker-gpu и распределить их по одному экземпляру на карту.

В этом разделе:

Распределение экземпляров findface-extraction-api-gpu по видеокартам

Для распределения экземпляров findface-extraction-api-gpu по нескольким видеокартам выполните следующие действия:

  1. Остановите исходный сервис findface-extraction-api-gpu.

    sudo service findface-extraction-api stop
    
  2. Создайте несколько копий файла конфигурации findface-extract-api-gpu, в зависимости от того, какое количество видеокарт будет использоваться для извлечения биометрических образцов. Добавьте соответствующие номера устройств GPU к именам новых файлов конфигурации, как показано в примере ниже (устройства GPU №0 и №6).

    /etc/findface-extraction-api@0.ini
    /etc/findface-extraction-api@6.ini
    
  3. Откройте новые файлы конфигурации. Укажите номера устройств GPU, а также номера слушающих портов.

    sudo vi /etc/findface-extraction-api@0.ini
    
    listen: 127.0.0.1:18666
    ...
    extractors:
      gpu_device: 0
    
    sudo vi /etc/findface-extraction-api@6.ini
    
    listen: 127.0.0.1:18667
    ...
    extractors:
      gpu_device: 6
    
  4. Запустите новые сервисы.

    sudo service findface-extraction-api@0 start
    sudo service findface-extraction-api@6 start
    

Привязка findface-video-worker-gpu к дополнительной видеокарте

Для создания дополнительного экземпляра findface-video-worker-gpu и его привязки к свободной видеокарте выполните следующие действия:

  1. Отобразите статус исходного сервиса findface-video-worker-gpu, выполнив команду:

    sudo systemctl status findface-video-worker-gpu.service
    
  2. Найдите полный путь к сервису в строке Loaded: loaded (/lib/systemd/system/findface-video-worker-gpu.service; enabled; vendor preset: enabled. В приведенном примере это findface-video-worker-gpu.service (имя может быть другим). Создайте копию сервиса под новым именем.

    sudo cp /lib/systemd/system/findface-video-worker-gpu.service /lib/systemd/system/findface-video-worker-gpu2.service`
    
  3. Таким же образом создайте под новым именем копию исходного файла конфигурации.

    sudo cp /etc/findface-video-worker-gpu.ini /etc/findface-video-worker-gpu2.ini
    
  4. Откройте только что созданный файл конфигурации и актуализируйте номер используемого GPU-устройства.

    sudo vim /etc/findface-video-worker-gpu2.ini
    
    ## cuda device number
    device_number = 1
    
  5. Откройте новый сервис и укажите только что созданный файл конфигурации.

    sudo vim /lib/systemd/system/findface-video-worker-gpu2.service
    
    ExecStart=/usr/bin/findface-video-worker-gpu --config /etc/findface-video-worker-gpu2.ini
    
  6. Для применения изменений перезагрузите демон systemd.

    sudo systemctl daemon-reload
    
  7. Добавьте новый сервис в автозагрузку.

    sudo systemctl enable findface-video-worker-gpu2.service
    
    Created symlink from /etc/systemd/system/multi-user.target.wants/findface-video-worker-gpu2.service to /lib/systemd/system/findface-video-worker-gpu2.service
    
  8. Запустите новый сервис.

    sudo systemctl start findface-video-worker-gpu2.service
    
  9. Проверьте статус обоих сервисов 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 (/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 (/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