You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:tmux内进程结束后GPU内存未释放如何解决

解决tmux会话中PyTorch进程结束后GPU内存未释放的问题

可能的原因

  • PyTorch默认会保留GPU内存缓存用于后续加速,即便进程执行完毕,缓存可能不会立即释放
  • 代码中存在未正常退出的子线程/子进程,导致GPU上下文未销毁
  • tmux会话未正常关闭时,其进程组可能仍持有CUDA资源引用

可行解决方案

  • 在代码中主动释放缓存:在PyTorch代码的末尾添加torch.cuda.empty_cache(),强制释放未被使用的GPU内存缓存。如果是多进程训练,确保每个子进程都执行释放操作。
  • 检查并清理残留进程:进程结束后,在终端执行ps aux | grep python,查看是否有未终止的Python子进程,找到对应PID后用kill -9 <PID>直接杀死。
  • 正常关闭tmux会话:当代码运行完毕后,在tmux会话中输入exit命令关闭整个会话,而不是让会话处于挂起状态。这样会销毁tmux的进程组,连带释放关联的CUDA资源。
  • 调整CUDA环境变量:尝试修改CUBLAS_WORKSPACE_CONFIG的值为:4096:8或:0:0,后者会禁用CUBLAS的 workspace 缓存,可能避免残留内存占用。
  • 直接清理GPU占用进程:通过nvidia-smi找到占用GPU内存的PID(注意区分tmux主进程和实际的Python进程),执行kill -9 <PID>精准释放内存,无需关闭整个tmux会话。

内容的提问来源于stack exchange,提问作者samsambakster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:00:31