Общие сведения
Запуск работы алгоритмов нейроаналитики на Nvidia GPU после перезагрузки Сервера сервера может занимать несколько минут. В это время осуществляется оптимизация нейромоделей под конкретный тип используемого GPU.
Для того чтобы эта операция выполнялась только единожды, можно использовать функцию кэширования. Она сохраняет результат оптимизации на жестком диске и использует его при последующих запусках аналитики.
Начиная с версии DetectorPack 3.9 в состав пакета нейроаналитики (см. Установка дополнительных пакетов DetectorPack) добавлена утилита, которая позволяет создавать GPU кэши сетей без использования ПК Интеллект X. Наличие кэша влияет на ускорение инициализации и оптимизирует потребление видеопамяти.
Оптимизация работы нейроаналитики на GPU
Для оптимизации работы нейроаналитики на GPU необходимо:
Остановить
Сервер сервер (см.
Запуск и остановка Сервера ПК Интеллект X в ОС Linux).
Note |
---|
|
Если в системе используется ПО, работающее на GPU, необходимо остановить процесс его работы. |
- Войти под пользователем ngp:
- Ввести в терминале команду:
- Ввести пароль от суперпользователя
root- .
- Создать папку с произвольным названием для расположения кэша. Например:
Code Block |
---|
|
mkdir /opt/ITV/IntellectX/gpucache |
- Изменить права доступа к папке:
Code Block |
---|
|
chmod -R 777 /opt/ITV/IntellectX/gpucache |
Создать системную переменную GPU_CACHE_DIR (см. - Перейти в папку /opt/ITV/IntellectX:
Code Block |
---|
|
cd /opt/ITV/IntellectX |
- Открыть файл конфигурации сервера для редактирования:
Code Block |
---|
|
nano instance.conf |
Note |
---|
|
При использовании сервера в отказоустойчивом режиме (FailOver) необходимо: - Открыть папку /etc/ITV:
- Открыть файл конфигурации сервера для редактирования:
Code Block |
---|
| nano intellect-x.conf |
- Добавить системную переменную GPU_CACHE_DIR в файл конфигурации, где в значении будет указан путь к папке для расположения кэша. Например:
Code Block |
---|
| export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache" |
- Сохранить изменения в файле.
- Добавить системную переменную GPU_CACHE_DIR в файл /etc/profile.
Code Block |
---|
| export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache" |
- Выполнить команду.
Code Block |
---|
| source /etc/profile |
|
- Добавить системную переменную GPU_CACHE_DIR, где в значении будет указан путь к папке для расположения кэша. Например:
Code Block |
---|
|
export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache" |
- Сохранить изменения в файле конфигурации с помощью сочетания клавиш Ctrl+O.
- Выйти из режима редактирования файла с помощью сочетания клавиш Ctrl+X.
отказоустойчивом режиме в В терминале выполнить команду- Выполнить команду в терминале, которая использовалась для добавления системной переменной с указанием пути к папке с кэшем. Например:
Code Block |
---|
|
export GPU_CACHE_DIR="/opt/ITV/IntellectX/gpucache" |
Перейти в папку /opt/ITV/DetectorPack:
Code Block |
---|
|
cd /opt/ITV/DetectorPack |
- Выполнить команду:
Code Block |
---|
|
./NeuroPackGpuCacheGenerator |
Note |
---|
|
Если доступно более одной 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 кэшей нейросетей с использованием ключей
-p – ключ для создания кэша для определенной нейросети.
Пример команды:
Code Block |
---|
|
./NeuroPackGpuCacheGenerator -p /opt/ITV/DetectorPack/NeuroSDK/GeneralNMHumanAndVehicle_Nano_v1.0_GPU_onnx.ann |
-v – ключ для вывода лога процедуры в консоль в процессе формирования кэша.
Пример команды для автоматического создания кэшей 4-х нейросетей, входящих в состав пакета нейроаналитики с выводом логов:
Code Block |
---|
|
./NeuroPackGpuCacheGenerator -v |
--int8=1 – ключ для создания кэша для тех нейросетей, для которых доступна квантование. По умолчанию: --int8=0 – выключен.
Пример команды:
Code Block |
---|
|
./NeuroPackGpuCacheGenerator -p /opt/ITV/DetectorPack/NeuroSDK/GeneralNMHumanAndVehicle_Nano_v1.0_GPU_onnx.ann --int8=1 |
Note |
---|
|
Нейросети, для которых доступен режим квантования, входят в состав пакета нейроаналитики вместе с одноименным файлом *.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 – Человек (вид сверху Большая).