Я работаю по следующему сценарию:
- Одноузловой кластер Kubernetes (1x i7-8700K, 1x RTX 2070, 32 ГБ ОЗУ)
- 1 Модуль обслуживания Tensorflow
- 4 модуля клиента вывода
Что делают клиенты вывода, они получают изображения с 4 отдельных камер (по 1 на каждую) и передают их в TF-Serving для вывода, чтобы получить представление о том, что можно увидеть в видеопотоках.
Ранее я делал индивидуальные выводы в клиентских модулях вывода, вызывая напрямую TensorFlow, но это было плохо для оперативной памяти видеокарты. Tensorflow Serving был введен в микс совсем недавно, чтобы оптимизировать оперативную память, поскольку мы не загружаем дублированные модели на видеокарту.
И производительность выглядит не очень хорошо, для изображений 1080p это выглядит так :
Прямой TF: 20 мс для создания входного тензора, 70 мс для вывода. Обслуживание TF: 80 мс для сериализации GRP C, 700-800 мс для вывода.
Модуль обслуживания TF - единственный, который имеет доступ к графическому процессору и связан исключительно. Все остальное работает на процессоре.
Могу ли я сделать какие-либо изменения производительности?
Моя модель - Faster R-CNN Inception V2 из TF Model Zoo.
Заранее большое спасибо!