Usually when I try running a CUDA process with MPS, I get the tag of M+C
before the name of the process in nvidia-smi
Sun Aug 13 18:10:01 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 2080 On | 00000000:27:00.0 On | N/A |
| 24% 63C P2 148W / 215W | 1315MiB / 8192MiB | 100% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1153 G /usr/lib/xorg/Xorg 30MiB |
| 0 N/A N/A 2311292 C nvidia-cuda-mps-server 26MiB |
| 0 N/A N/A 2317220 M+C python3 1254MiB |
+---------------------------------------------------------------------------------------+
But when I use nvprof
I do not get that M+C
tag before the process. But nvtop
shows that the computation is being done by nvidia-cuda-mps-server
But for smaller jobs, nvtop is unable to capture the fact that nvidia-cuda-mps-server
is doing the compute.
So, in general how to be sure that when using nvprof
with MPS
enabled, the process is actually using MPS?