简单而管用的清理gpu显存的方法及分析

bash 复制代码
sudo fuser -v /dev/nvidia2 | awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sudo sh

首先直接提高管用的一段命令,注意应当将nvidia2替换为想要清除的gpu id。

在工程实践中,经常会遇到这样的困境即gpu的全部或者部分显存在上次运行城西未能正常exit后被占用导致后续运行程序无法使用相应的gpu。

解决办法为这行代码,下面是分析:

按照bash命令的规则,这行命令可以分为三个部分,用pipeline的形式把上一步返回的内容交给下一步。

首先是命令:

bash 复制代码
sudo fuser -v /dev/nvidia2

fuser是用于执行进程查找的工具,/dev/nvidia2指向了gpu设备cuda:2这段命令执行后返回了所有正在使用 /dev/nvidia2这个GPU的进程的PID。

其次是命令:

bash 复制代码
awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}'

awk是一个强大的文本处理和数据提取工具。它非常擅长处理按行和列(字段)结构化的文本。后面就是将上一步返回的PID值遍历打印为kill -9 PID(即杀死进程)。

后面的

bash 复制代码
sudo sh

则是执行所有的返回的打印杀死进程的命令,执行​ ​上一步生成的所有 kill -9命令。sh会读取它接收到的每一行文本(即 kill -9 1234kill -9 5678),并将其作为命令来执行。

相关推荐
学传打活9 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活15 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16822 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心25 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055271 个月前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055271 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节