На странице:


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

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

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

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

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

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

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

    Внимание!

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

  2. Войти под пользователем ngp:
    1. Ввести в терминале команду:
      sudo su ngp
    2. Ввести пароль от суперпользователя.
  3. Создать папку с произвольным названием для расположения кэша. Например:
    mkdir /opt/ITV/IntellectX/gpucache
  4. Изменить права доступа к папке:
    chmod -R 777 /opt/ITV/IntellectX/gpucache
  5. Перейти в папку /opt/ITV/IntellectX:
    cd /opt/ITV/IntellectX
  6. Открыть файл конфигурации сервера для редактирования:
    nano instance.conf

    Внимание!

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

    1. Открыть папку /etc/ITV:
      cd /etc/ITV
    2. Открыть файл конфигурации сервера для редактирования:
      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
  7. Добавить системную переменную GPU_CACHE_DIR, где в значении будет указан путь к папке для расположения кэша. Например:
    export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
  8. Сохранить изменения в файле конфигурации с помощью сочетания клавиш Ctrl+O.
  9. Выйти из режима редактирования файла с помощью сочетания клавиш Ctrl+X.

    Внимание!

    При изменении конфигурации сервера (см. Изменение конфигурации Сервера Интеллект X в ОС Linux) или при обновлении на новую версию ПК Интеллект Х ранее добавленные в файл конфигурации instance.conf системные переменные будут удалены (см. Создание системных переменных для сервера ПК Интеллект Х в ОС Linux).

  10. Выполнить команду в терминале, которая использовалась для добавления системной переменной с указанием пути к папке с кэшем. Например:
    export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
  11. Перейти в папку /opt/ITV/DetectorPack:

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

    Внимание!

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

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

  • GeneralNMHuman_v1.0GPU_onnx.ann – человек;
  • smokeScanned_v1_onnx.ann (или bestSmoke_v1.ann, начиная с версии Detector Pack 3.14) – детекция дыма;
  • fireScanned_v1_onnx.ann (или bestFire_v1.ann, начиная с версии Detector Pack 3.14) – детекция огня;
  • reid_15_0_256__osnetfpn_segmentation_noise_20_common_29_onnx.ann – поиск похожих в нейротрекере (см. Поиск похожих образов).

Создание 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

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

  • GeneralNMCar_v1.0GPU_onnx.ann – Транспортное средство.
  • GeneralNMHuman_v1.0GPU_onnx.ann – Человек.
  • GeneralNMHumanTopView_v0.8GPU_onnx.ann – Человек (вид сверху).

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

  • GeneralNMHumanAndVehicle_Nano_v1.0_GPU_onnx.ann – Человек и транспортное средство (Нано).
  • GeneralNMHumanAndVehicle_Medium_v1.0_GPU_onnx.ann – Человек и транспортное средство (Средняя).
  • GeneralNMHumanAndVehicle_Large_v1.0_GPU_onnx.ann – Человек и транспортное средство (Большая).

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

  • GeneralNMHumanTopView_Nano_v1.0_GPU_onnx.ann – Человек (вид сверху Нано).
  • GeneralNMHumanTopView_Medium_v1.0_GPU_onnx.ann – Человек (вид сверху Средняя).
  • GeneralNMHumanTopView_Large_v1.0_GPU_onnx.ann – Человек (вид сверху Большая).
  • No labels