在C ++应用程序中使用Tensorflow:如何释放GPU内存

问题描述 投票:1回答:1

我试图在我的C ++应用程序中使用Tensorflow进行推理。应用程序的其他部分需要访问大量GPU内存(与Tensorflow完全不同)。但是,一旦Tensorflow被用于执行推理,它就会占用GPU内存并且在应用程序结束之前不会释放它。理想情况下,在推断之后,我将能够释放Tensorflow使用的GPU内存,以允许其他算法使用GPU。

有没有其他人遇到过这个问题,你找到了解决方案吗?

c++ tensorflow memory gpu
1个回答
2
投票

Tensorflow为进程的生命周期分配内存。遗憾的是,没有办法解决这个问题,只有在进程完成后才能获得内存。

解决此问题的一种方法是将您的应用程序“模块化”为多个不同的进程。有一个用于执行推理的过程,以及一个调用它的父进程(您的应用程序)。您可以运行子进程阻塞,因此整个应用程序的行为就像它本身正在执行代码一样(当然除了处理资源共享之外)。

© www.soinside.com 2019 - 2024. All rights reserved.