Как выполнить несколько сеансов в тензорном потоке через один граф в CPU - PullRequest
0 голосов
/ 12 июня 2018

В настоящее время я создаю Tensorflow Graph и затем выполняю graph-> getSession () -> Run (вход, модель, выход) в C ++ в CPU

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

Можно ли запускать сеансы в многопоточном режиме?

При параллельном выполнении нескольких сеансов время обработки будет постоянным?Пример: если один сеанс занимает 100 мс, то одновременный запуск 2 сеансов занимает примерно 100 мс.

Примечание. Я хочу запустить это на ЦП

1 Ответ

0 голосов
/ 12 июня 2018

Первое, что нужно отметить, - это то, что тензорный поток будет использовать все ядра для обработки по умолчанию.У вас есть некоторый ограниченный способ контроля над этим через внутренний и внутренний параллелизм, обсуждаемый в этом авторитетном ответе:

Tensorflow: выполнение операций с определенным ядром ЦП

Второй момент, на который следует обратить внимание, это то, что сеанс является потокобезопасным.Вы можете позвонить позвонить из нескольких потоков.Каждый вызов будет видеть непротиворечивый моментальный моментальный снимок переменных, какими они были в момент начала вызова. Это вопрос, который я задал однажды:

Как переменные распределяются между одновременными `session.run (...) `вызывает в tenorflow?

Мораль:

Если вы выполняете много небольших последовательных операций, вы можете запуститьони одновременно работают с одним сеансом и могут выкашлять некоторую улучшенную производительность, если вы ограничите использование параллелизма в tenorflow.Если вы выполняете большие операции (например, большое матричное умножение), которые больше выигрывают от распределенной многоядерной обработки, вам не нужно заниматься параллелизмом самостоятельно, по умолчанию тензорный поток уже распределяется по всем ядрам ЦП.

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

https://towardsdatascience.com/howto-profile-tensorflow-1a49fb18073d

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