Обслуживание Tensorflow с XLA

Можно ли включить компиляцию XLA при выводе с помощью Tensorflow Serving?

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


person njs    schedule 13.02.2019    source источник
comment
В источниках обслуживания tensorflow есть упоминания о XLA. Он по-прежнему зависит от тензорного потока, поэтому, если вы компилируете его из исходников, он извлекает исходники тензорного потока, сначала компилирует его, а затем компилирует обслуживание. Я бы попробовал просто построить из исходников и попробовать модель, оптимизированную для XLA. В случае неудачи вам, возможно, придется поиграть с Bazel, чтобы вы сами отвечали за варианты построения.   -  person clstl    schedule 14.02.2019
comment
Я видел упоминание XLA в протобуфе прогрева, что имеет смысл, поскольку вы хотите, чтобы JIT был выполнен перед обслуживанием производственного трафика. Насколько я понимаю, предварительная компиляция XLA предназначена только для мобильных целей. Для нормального ускорения GPU XLA вам необходимо включить его с помощью сеанса TF ConfigProto (graph_options.optimizer_options.global_jit_level), но в случае Tensorflow Serving я передаю только замороженный график def. У меня нет доступа к сеансу внутри коробки.   -  person njs    schedule 14.02.2019
comment
ты понял это?   -  person Andy Cheung    schedule 25.02.2019
comment
Неа. Вместо этого я переключился на сервер Nvidia TensorRT Inference Server.   -  person njs    schedule 25.02.2019


Ответы (1)


@njs,

На самом деле не рекомендуется делать компиляции во время логического вывода. Компиляции во время вывода приведут к нехватке памяти HBM, в результате чего чипы не смогут обслуживать запросы.

Рекомендуемое решение:

  1. Используйте пакетную функцию с допустимыми размерами пакетов, чтобы ограничить количество компиляций во время выполнения.

  2. Выполняйте все компиляции для этих разрешенных размеров пакетов во время загрузки модели, а не во время вывода. Таким образом, ваша модель будет готова к выводу сразу после загрузки, а не будет выполнять компиляцию с высокой задержкой во время вывода.

person RakTheGeek    schedule 17.04.2019
comment
Почему нехватка памяти для HBM не возникает во время тренировки? - person Xiaolin Wu; 21.12.2019