c++ - 关闭会话后 Tensorflow C++ 不释放 GPU 资源
问题描述
我在 Windows 10 上从源代码(分支 r1.7)编译了带有 GPU 支持的 tensorflow C++。在创建新会话时,在 GPU 上分配了 3GB 内存。正如 nvidia-smi 命令所确认的那样,关闭会话似乎不会导致从 GPU 释放内存。仅当 C++ 程序退出时才会释放 GPU 内存。如何释放代码中的内存?
int main()
{
SessionOptions options;
Session* session;
tensorflow::Status status = NewSession(SessionOptions(), &session); // returns ok
status = session->Close(); // returns ok
delete session;
// GPU memory is still occupied at this point
std::string s;
std::cin >> s;
return 0;
}
// GPU memory is released when process exits
解决方案
推荐阅读
- javascript - Java 脚本抛出解析错误“标识符”
- python - 让 PyLint 和 VSCode 自动补全理解相对导入
- python - 使用 if 语句将对象实例附加到列表并在另一个分支中打印
- python - 如何同时使用 Python 多处理和异步?
- powershell - 使用不同帐户登录返回错误页面
- linux - 使用 Qemu 用户模式运行 ARM64 二进制文件的问题
- ios - 信号量永远等待
- ios - 由于文件“不存在”,Swift MoveItem 失败
- javascript - 如何创建一个删除按钮,我可以在其中删除数据库一侧的列表?
- c# - 外键问题(将实体种子添加到“注释”并指定外键值 {“DocumentId”}。)EF