Использование Tensorflow в приложении C ++: как освободить память GPU - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь использовать Tensorflow для вывода в моем приложении C ++. Другим частям приложения требуется доступ к большим объемам памяти графического процессора (не в то же время, что и в Tensorflow). Однако, как только Tensorflow используется для выполнения логического вывода, он захватывает память графического процессора и не освобождает ее, пока приложение не завершится. В идеале после вывода я смогу освободить память GPU, используемую Tensorflow, чтобы другие алгоритмы могли использовать GPU.

Кто-нибудь еще сталкивался с этой проблемой, и вы нашли решение?

1 Ответ

0 голосов
/ 05 сентября 2018

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

Одним из способов решения этой проблемы было бы «модульное» приложение в несколько отдельных процессов. Есть один процесс для выполнения логического вывода и родительский процесс (ваше приложение), который его вызывает. Вы можете запустить блокировку дочернего процесса, поэтому все ваше приложение будет вести себя так, как будто оно выполняет сам код (кроме обработки ресурсов, конечно).

...