11

I am trying to make a CUDA tool and I have to make it scalable. I need to give number of GPU a system have as an argument to my tool. Please tell me if there is any command for getting number of GPUs directly??

agangwal
  • 123

4 Answers4

15

This command gets the number of GPUs directly, assuming you have nvidia-smi.

nvidia-smi --query-gpu=name --format=csv,noheader | wc -l

It prints the names of the GPUs, one per line, and then counts the number of lines.

10
nvidia-smi --list-gpus | wc -l

This will first list the GPUS one per line and then counts the lines of output which is the number of GPUS

muru
  • 207,228
vinithavn
  • 101
4

You can use sudo lshw -C display to list your video card(s), then google each one to see how many cores it has.

0

If you want to use it in a script, I'd suggest to using it like this:

nvidia-smi --query-gpu=name --format=csv,noheader | head -1

And also validate the number:

GPU_num="$(nvidia-smi --query-gpu=name --format=csv,noheader | head -1)"
! [[ "$GPU_num" =~ ^[0-9]+$ ]] && echo "Not a number)"

It's better to count the number of lines, because the line can also be an error.

Feriman
  • 208
  • 1
  • 4