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

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

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

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

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

    Внимание!

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

  2. Войти под суперпользователем root:
    1. Ввести в терминале команду:
      sudo -i
    2. Ввести пароль от суперпользователя root.
  3. Создать папку с произвольным названием для расположения кэша. Например:
    mkdir /opt/ITV/IntellectX/gpucache
  4. Изменить права доступа к папке:
    chmod -R 777 /opt/ITV/IntellectX/gpucache
  5. Создать системную переменную GPU_CACHE:
    1. Открыть папку /opt/ITV/IntellectX:
      cd /opt/ITV/IntellectX
    2. Открыть файл instance.conf для редактирования:
      nano instance.conf
    3. Добавить в файл строку:
      export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
    4. Сохранить файл с помощью сочетания клавиш Ctrl+O.
    5. Выйти из режима редактирования файла с помощью сочетания клавиш Ctrl+X.
    6. В терминале выполнить команду:
      export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache"
  6. Перейти в папку /opt/ITV/DetectorPack:

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

    Внимание!

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

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

  • GeneralNMHuman_v1.0GPU_onnx.ann – человек;
  • smokeScanned_v1_onnx.ann – детекция дыма;
  • fireScanned_v1_onnx.ann – детекция огня;
  • 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 – человек и транспортное средство (Большая).
  • No labels