Какое влияние оказывает использование графического процессора на производительность обслуживания модели TensorFlow?

Я обучал нейронную сеть на графическом процессоре (1080 ти). Скорость обучения на GPU намного лучше, чем на CPU.

В настоящее время я хочу обслуживать эту модель с помощью TensorFlow Serving. Мне просто интересно узнать, влияет ли использование графического процессора в процессе обслуживания на производительность?

Поскольку обучение применяется к пакетам, но при выводе (обслуживании) используются асинхронные запросы, можете ли вы использовать графический процессор для обслуживания модели с использованием обслуживания TensorFlow?


person AmirHJ    schedule 23.05.2017    source источник


Ответы (2)


Чтобы что-то предсказать, вам все равно нужно проделать много тензорных операций с графиком. Таким образом, графический процессор по-прежнему обеспечивает повышение производительности для вывода. Взгляните на этот документ nvidia, у них есть не тестировал свои вещи на TF, но все равно актуально:

Наши результаты показывают, что графические процессоры обеспечивают высочайшую производительность логического вывода и энергоэффективность, что делает их платформой выбора для всех, кто хочет развернуть обученную нейронную сеть в полевых условиях. В частности, Titan X обеспечивает в 5,3–6,7 раз более высокую производительность, чем 16-ядерный процессор Xeon E5, при этом достигая в 3,6–4,4 раза более высокой энергоэффективности.

person Salvador Dali    schedule 23.05.2017

Короткий ответ - да, вы получите примерно такое же ускорение при работе на графическом процессоре после тренировки. С некоторыми незначительными квалификациями.

Вы выполняете 2 прохода по данным во время обучения, и все это происходит на графическом процессоре, во время вывода с прямой связью вы выполняете меньше работы, поэтому на передачу данных в память графического процессора будет потрачено больше времени по сравнению с вычислениями, чем на обучение. Хотя это, вероятно, небольшая разница. И теперь вы можете асинхронно загрузить графический процессор, если это проблема (https://github.com/tensorflow/tensorflow/issues/7679).

Будет ли вам действительно нужен графический процессор для вывода, зависит от вашей рабочей нагрузки. Если ваша рабочая нагрузка не слишком требовательна, вам все равно сойдет с рук использование ЦП, в конце концов, вычислительная рабочая нагрузка составляет менее половины на образец, поэтому подумайте о количестве запросов в секунду, которые вам нужно будет обслуживать, и проверьте, действительно ли для этого вы перегружаете свой процессор. Если да, пора достать GPU!

person David Parks    schedule 23.05.2017