OpenVINO долго запускает модель: когда поможет кеш компиляции
Сравниваем два запуска отдельными процессами и отделяем подготовку модели от инференса. Кеш полезен только при поддержке устройства и сохранении каталога между стартами.
Модель быстро обрабатывает запросы, но приложение долго запускается? В OpenVINO часть ожидания может уходить на компиляцию под устройство. Кеш сохраняет её результат для следующих запусков. Выбирать эту оптимизацию стоит по времени подготовки модели, отдельно от скорости готового сервиса.
Что именно сравнивать
В документации Model Caching кеш описан как повторное использование скомпилированной модели. Первый запуск создаёт файл и может занять немного больше времени. Следующий использует сохранённый результат, если устройство поддерживает импорт и экспорт моделей. Само наличие настройки ещё не доказывает ускорение: без этой поддержки кеш не создаётся, а ошибки может не быть.
Представим локальное приложение, которое запускают несколько раз в день. Для него важен путь от старта процесса до готовности принимать первый запрос. У постоянно работающего сервиса приоритет может быть другим: выигрыш при старте окажется менее заметен, чем задержка обработки очередного задания.
Один файл, два отдельных запуска
Возьмите совместимую модель в формате OpenVINO IR: model.xml и соответствующий файл весов должны быть доступны. В уже настроенном окружении OpenVINO выполните этот пример дважды, каждый раз новым процессом. Каталог ov-cache должен быть доступен для записи и сохраняться между запусками.
from time import perf_counter
from pathlib import Path
import openvino as ov
engine = ov.Core()
engine.set_property({"CACHE_DIR": str(Path("ov-cache"))})
started = perf_counter()
ready = engine.compile_model("model.xml", "CPU")
print("Подготовка модели, с:", perf_counter() - started)Первый проход проводите с новым пустым каталогом кеша, второй — с тем же заполненным каталогом. Затем повторите пару в отдельном тестовом каталоге. Не удаляйте рабочий кеш приложения ради эксперимента. Зафиксируйте устройство, версию OpenVINO, модель и настройки; между сравниваемыми запусками они должны совпадать.
Как принять решение
В методике измерений OpenVINO загрузку модели отделяют от повторяющегося инференса, а обработку до и после модели учитывают отдельно. Здесь мы намеренно измеряем другой участок — подготовку. Полное ожидание пользователя замерьте дополнительно: оно включает и остальную работу приложения.
Оставляйте кеш, если повторные старты стабильно быстрее в вашем сценарии. Если разницы нет, сначала проверьте поддержку EXPORT_IMPORT и сохранение каталога, затем ищите затраты вне компиляции. Не переносите выигрыш при загрузке на скорость каждого ответа: этот опыт её не измеряет. Результат выбора — более быстрый старт конкретного приложения, а не обещанный процент ускорения любой модели.
Комментарии
Войдите, чтобы оставить комментарий
Пока нет комментариев. Начните обсуждение.