GPU的程序kill后未释放内存

本文介绍了一种简单有效的GPU进程管理方法,包括关闭SSH会话、检查GPU使用情况及清理僵尸进程等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 具体方法描述如下:

1.先关闭ssh(或者shell)窗口,退出重新登录

2.查看运行在gpu上的所有程序:

fuser -v /dev/nvidia*

3.kill掉所有(连号的)僵尸进程

### 如何检查和释放GPU内存 #### 使用命令行工具查看 GPU 显存占用情况 为了查看当前系统中各个 GPU 的显存使用状况,可以利用 `nvidia-smi` 工具。此工具提供了关于 NVIDIA GPU 设备的状态信息,包括但限于温度、功耗以及最重要的——显存利用率。 ```bash nvidia-smi ``` 上述命令会显示所有已安装的 GPU 列表及其对应的 PID 和程序名称,这有助于识别哪些应用程序正在消耗 GPU 资源[^1]。 #### 手动清除再使用的 GPU 进程 有时即使停止了 Python 或其他编程环境中的工作负载,某些残留进程仍可能会继续持有 GPU 上下文而主动退出。对于这种情况,可以通过查询并终止这些必要的后台作业来回收资源: 查找占用特定 GPU 的进程 ID (PID),可借助于如下组合命令实现: ```bash fuser -v /dev/nvidia* ``` 如果遇到提示找到 `fuser` 命令的情况,则需先通过包管理器安装相应软件包,例如在 CentOS 中执行 `yum install psmisc` 安装必要的依赖项[^3]。 获取到具体的 PIDs 后,即可安全地中止它们: ```bash kill -9 <pid> ``` 注意替换 `<pid>` 为实际获得的过程编号。 #### 自动化方式清理 PyTorch 占用的 GPU 缓存 除了手动干预外,还可以采用编程手段预防性地处理潜在的内存泄漏问题。特别是对于基于 PyTorch 构建的应用来说,在每次迭代结束之后调用一次清空缓存的操作往往能够有效减少无谓的空间浪费: ```python import torch torch.cuda.empty_cache() ``` 这段简单的代码片段可以在脚本适当位置加入,比如循环体内部或是函数返回前一刻,以此确保及时释放再需要的数据结构所占据的位置[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值