我使用tmux new-session
创建一个tmux进程,然后使用CUDA_VISIBLE_DEVICES=0 CUBLAS_WORKSPACE_CONFIG=:16:8 python main.py
在GPU上运行PyTorch代码。在使用nvidia-smi
检查GPU的状态后,我注意到一些GPU内存仍然分配给tmux进程,尽管它们已经完成运行。如果我使用ctrl+c
终止tmux进程,内存被释放。如果我杀死tmux进程,内存也会释放。我不明白问题是什么。有没有办法保证当tmux进程完成时,GPU内存再次完全释放?
1条答案
按热度按时间idfiyjo81#
这个问题可能不是因为tmux,因为我注意到了同样的效果,当我运行模型的jupyter没有使用tmux之前,包括行清除内存缓存。尝试把一些代码清除内存缓存在你的代码结束,像这样:
字符串
对于tensorflow用户,您可以包含
tf.keras.backend.clear_session()
而不是torch.cuda.empty_cache()
。