c++ - 在 C++ 应用程序中使用 Tensorflow : How to release GPU memory

标签 c++ tensorflow memory gpu

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

其他人也遇到过这个问题吗?您找到解决方案了吗?

最佳答案

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

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

关于c++ - 在 C++ 应用程序中使用 Tensorflow : How to release GPU memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52188697/

相关文章:

javascript - tensorflow JS : TypeError: Cannot read property 'fetch' of undefined

c - 如何就地修改项目(无需复制/传递缓冲区)

c++ - MSVC 用 double 支撑初始化似乎违反了标准?

c++ - ijg 的 JPEG 支持 - 获取访问冲突

c++ - 多个文件包含到单个类冲突

python - tensorflow.python.framework.errors_impl.NotFoundError : Failed to create a NewWriteableFile: 错误

c++ - 为什么数组大小变得如此之大?

python - 使用 tensorflow 将图形和权重保存在文件中

node.js - 如何追踪 Node.js 和 Express 内存泄漏?

c - 如何用 C 中的内存地址初始化 char 数组?