【问题标题】:How to kill process on GPUs with PID in nvidia-smi using keyword?如何使用关键字在 nvidia-smi 中使用 PID 杀死 GPU 上的进程?
【发布时间】:2018-10-16 00:57:32
【问题描述】:

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

【问题讨论】:

    标签: python gpu nvidia keyword pid


    【解决方案1】:

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

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

    nvidia-smi | grep 'python' | awk '{ print $3 }' | xargs -n1 kill -9
    

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

    【讨论】:

    • 这里一样,接受的答案不起作用。这个做到了。赞!!
    • 我需要 sudo kill nvidia-smi | grep 'python' | awk '{ print $3 }' | sudo xargs -n1 kill -9
    • 嗯,这个命令给了我kill: argument couldn't be read: '1-nan'
    • kill -9 <pid> 有效。明智地使用sudo
    • 不得不改成 awk '{ print $5}' 但这行得通
    【解决方案2】:

    您可以在 nvidia-smi 中 grep 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')

    【讨论】:

    • 我在哪里提到 PID??
    • @oya163 它应该使用来自 nvidia-smi 的 grep 来抓取它。无需手动添加。
    • 不,我的意思是用户特定的 PID?因为我不想也不能杀死别人的PID。
    • @oya163 在这种情况下你可以尝试:sudo kill -9 PID
    • 不得不更改为 awk '{ print $5}' 但这有效。
    【解决方案3】:

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

    sudo kill -9 PID
    

    【讨论】:

    • 此答案在接受的答案下作为对@oya163 的回复而作为评论处理。
    【解决方案4】:

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

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

    sudo fuser -k /dev/nvidia3
    

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

    【讨论】:

      猜你喜欢
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 2013-10-14
      • 2016-03-06
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多