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



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

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

Tensorflow 在进程的生命周期内分配内存。不幸的是,没有办法解决这个问题,只有在该过程完成后才能恢复内存。

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

最新更新