How to kill process on GPUs with PID in nvidia-smi using keyword?

49,681

Solution 1

You can grep python in the nvidia-smi and then pass the PID to the kill -9 command, e.g.

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

Solution 2

The accepted answer doesn't work for me, probably because nvidia-smi has different formats across different versions/hardware.

I'm using a much cleaner command:

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

You can replace $3 in the awk expression to fit your nvidia-smi output. It is the n-th column in which the PIDs occur.

Solution 3

Use nvidia-smi or top command to see processes running and to kill command:

sudo kill -9 PID

Solution 4

I guess the question is already answered when nvidia-smi shows processes occupying GPU mem. For me, even though nvidia-smi wasnt showing any processes, GPU memory was being used and I wanted to kill them.

The way to go in this case was to use the fuser command to find out the processes using the particular GPU device. In my case I wanted to kill all the processes using the GPU device 3. This can be done using the command :

sudo fuser -k /dev/nvidia3

You can use -ki to kill the processes interactively.

Share:
49,681
salehinejad
Author by

salehinejad

Updated on September 24, 2021

Comments

  • salehinejad
    salehinejad almost 3 years

    How to kill running processes on GPUs for a specific program (e.g. python) in terminal? For example two processes are running with python in the top picture and kill them to see the bottom picture in nvidia-smi

    For example two processes are running with python in the top picture and kill them to see the bottom picture in nvidia-smi