Производительность обслуживания Tensorflow очень низкая по сравнению с прямым выводом - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю по следующему сценарию:

  • Одноузловой кластер 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.

Заранее большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...