Создание системных переменных для сервера ПК Интеллект Х в ОС Linux

Создание системных переменных для сервера ПК Интеллект Х в отказоустойчивом режиме в ОС Linux

Общие сведения

Запуск работы алгоритмов нейроаналитики на Nvidia GPU после перезагрузки Сервера может занимать несколько минут. В это время осуществляется оптимизация нейромоделей под конкретный тип используемого GPU.

Для того чтобы эта операция выполнялась только единожды, можно использовать функцию кэширования. Она сохраняет результат оптимизации на жестком диске и использует его при последующих запусках аналитики.

Начиная с версии DetectorPack 3.9 в состав пакета нейроаналитики (см. Установка дополнительных пакетов DetectorPack) добавлена утилита, которая позволяет создавать GPU кэши сетей без использования ПК Интеллект X. Наличие кэша влияет на ускорение инициализации и оптимизирует потребление видеопамяти.

Оптимизация работы нейроаналитики на GPU

Для оптимизации работы нейроаналитики на GPU необходимо:

  1. Остановить Сервер (см. Запуск и остановка Сервера ПК Интеллект X в ОС Linux).

    Если в системе используется ПО, работающее на GPU, необходимо остановить процесс его работы.

  2. Войти под пользователем ngp:
    1. Ввести в терминале команду:
      sudo su ngp
    2. Ввести пароль от суперпользователя root.
  3. Создать папку с произвольным названием для расположения кэша. Например:
    mkdir /opt/ITV/IntellectX/gpucache
  4. Изменить права доступа к папке:
    chmod -R 777 /opt/ITV/IntellectX/gpucache
  5. Выйти из-под пользователя ngp:
    exit
  6. Войти под пользователем root с помощью команды:
    sudo -i
  7. Перейти в папку /opt/ITV/IntellectX/:
    cd /opt/ITV/IntellectX/

    При использовании сервера в отказоустойчивом режиме (FailOver) необходимо:

    1. Открыть папку /etc/ITV/:
      cd /etc/ITV/
    2. Открыть файл конфигурации сервера для редактирования:
      sudo nano intellect-x.conf

      Перед внесением изменений в файл intellect-x.conf рекомендуется ознакомиться с инструкцией на странице Создание системных переменных для сервера ПК Интеллект Х в отказоустойчивом режиме в ОС Linux.

    3. Добавить переменную GPU_CACHE_DIR в файл конфигурации, где в значении будет указан путь к папке для расположения кэша. Например:
      export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
    4. Сохранить изменения в файле.
    5. Добавить переменную GPU_CACHE_DIR в файл /etc/profile.
      export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
    6. Выполнить команду.
      source /etc/profile
  8. Открыть файл конфигурации сервера для редактирования:
    sudo nano instance.conf
  9. Добавить системную переменную GPU_CACHE_DIR, где в значении будет указан путь к папке для расположения кэша. Например:
    export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
  10. Сохранить изменения в файле конфигурации с помощью сочетания клавиш Ctrl+O.
  11. Выйти из режима редактирования файла с помощью сочетания клавиш Ctrl+X.
  12. Выполнить команду в терминале, которая использовалась для добавления системной переменной с указанием пути к папке с кэшем. Например:
    export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
  13. Перейти в папку /opt/ITV/DetectorPack:

    cd /opt/ITV/DetectorPack
  14. Выполнить команду:
    ./NeuroPackGpuCacheGenerator

    Если доступно более одной Nvidia GPU, будет предложен выбор GPU, который требуется указать в виде числа от 0 до 3 в соответствии с отображаемым списком устройств.

Оптимизация работы нейроаналитики на GPU завершена. Утилита создаст кэши 4 нейросетей, входящих в состав пакета нейроаналитики:

Создание GPU кэшей нейросетей с использованием ключей

  1. -p – ключ для создания кэша для определенной нейросети.
    Пример команды:

    ./NeuroPackGpuCacheGenerator -p /opt/ITV/DetectorPack/NeuroSDK/GeneralNMHumanAndVehicle_Nano_v1.0_GPU_onnx.ann
  2. -v – ключ для вывода лога процедуры в консоль в процессе формирования кэша.
    Пример команды для автоматического создания кэшей 4-х нейросетей, входящих в состав пакета нейроаналитики с выводом логов:

    ./NeuroPackGpuCacheGenerator -v
  3. --int8=1 – ключ для создания кэша для тех нейросетей, для которых доступна квантование. По умолчанию: --int8=0 – выключен.
    Пример команды:

    ./NeuroPackGpuCacheGenerator -p /opt/ITV/DetectorPack/NeuroSDK/GeneralNMHumanAndVehicle_Nano_v1.0_GPU_onnx.ann --int8=1
    Нейросети, для которых доступен режим квантования, входят в состав пакета нейроаналитики вместе с одноименным файлом *.info

Нейросети, для которых доступен режим квантования (см. НейротрекерДетектор остановившегося объектаНейросчетчик):

Начиная с версии DetectorPack 3.11 добавлены нейросети:

Начиная с версии DetectorPack 3.12 добавлены нейросети: