如何使用关键字在nvidia-smi中使用PID杀死GPU上的进程?

sal*_*jad 9 python gpu pid nvidia keyword

如何终止终端中特定程序(例如python)在GPU上正在运行的进程?例如,两个进程在顶部图片中使用python运行,并杀死它们以在nvidia-smi中看到底部图片

例如,两个进程在顶部图片中使用python运行,并杀死它们以在nvidia-smi中看到底部图片

小智 16

使用nvidia-smi或 top 命令查看正在运行的进程并终止命令:

sudo kill -9 PID
Run Code Online (Sandbox Code Playgroud)


Som*_*tha 11

我想当 nvidia-smi 显示占用 GPU 内存的进程时,问题已经得到解答。对我来说,尽管 nvidia-smi 没有显示任何进程,但 GPU 内存正在被使用,我想杀死它们。

在这种情况下,要使用的方法是使用 fusion 命令来查找使用特定 GPU 设备的进程。就我而言,我想终止使用 GPU 设备 3 的所有进程。这可以使用以下命令来完成:

sudo fuser -k /dev/nvidia3
Run Code Online (Sandbox Code Playgroud)

您可以使用 -ki 以交互方式终止进程。


Ain*_*tor 9

接受的答案对我不起作用,可能是因为nvidia-smi不同版本/硬件的格式不同。

我正在使用更简洁的命令:

nvidia-smi | grep 'python' | awk '{ print $3 }' | xargs -n1 kill -9
Run Code Online (Sandbox Code Playgroud)

您可以替换$3awk表达式以适合您的nvidia-smi输出。它是发生PID的第n列。

  • 对我来说,`nvidia-smi | grep '蟒蛇' | awk '{ 打印 $5 }' | xargs -n1 Kill -9`有效。 (9认同)
  • 必须更改为 awk '{ print $5}' 但这有效 (6认同)
  • 同样在这里,接受的答案不起作用。这个做到了。荣誉! (2认同)
  • 我需要 sudo Kill `nvidia-smi | grep '蟒蛇' | awk '{ 打印 $3 }' | sudo xargs -n1 杀 -9` (2认同)

Sad*_*daf 7

正如其他答案之一建议您可以使用:(将 5 替换为进程 ID 存在的列号)

nvidia-smi | grep 'python' | awk '{ print $5 }' | xargs -n1 kill -9
Run Code Online (Sandbox Code Playgroud)

如果您可能需要经常使用它,您可以为该命令创建一个别名:为此,您应该编辑~/.bash_aliases文件:

nano ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)

并向其中添加以下行并保存文件:

alias killgpuprocess="nvidia-smi | grep 'python' | awk '{ print $5 }' | xargs -n1 kill -9"
Run Code Online (Sandbox Code Playgroud)

然后(这次只需要):

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

然后如果你跑

killgpuprocess
Run Code Online (Sandbox Code Playgroud)

它将杀死 GPU 上的现有进程。


sal*_*jad 5

您可以在nvidia-smi中抓取python,然后将PID传递给kill -9命令,例如:

sudo kill -9 $(nvidia-smi | grep'python'| sed -n's / | \ s * [0-9] \ s([0-9] )\ s。* / \ 1 / p'| sed'/ ^ $ / d')

  • @ oya163在这种情况下,您可以尝试:sudo kill -9 PID (4认同)