while looking through Robert Crovella’s answer on CUDA’s MPS in stackoverflow: https://stackoverflow.com/questions/34709749/how-do-i-use-nvidia-multi-process-service-mps-to-run-multiple-non-mpi-cuda-app
I came across this line of code:
nvidia-smi -i 2 -c EXCLUSIVE_PROCESS
So I looked it up in the nvidia-smi doc: http://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf
but it doesn’t provide any helpful details on what “EXCLUSIVE_PROCESS” flag does.
here is a relevant snippet from the doc:
The compute mode flag indicates whether individual or multiple compute
applications may run on the GPU.
“Default” means multiple contexts are allowed per device.
“Exclusive Process” means only one context is allowed per device,
usable from multiple threads at a time.
“Prohibited” means no contexts are allowed per device (no compute
“EXCLUSIVE_PROCESS” was added in CUDA 4.0. Prior CUDA releases sup-
ported only one exclusive mode, which is equivalent to “EXCLU-
SIVE_THREAD” in CUDA 4.0 and beyond for all CUDA-capable products.
My questions are:
- So is “EXCLUSIVE_PROCESS” the same as “Exclusive Process”?
- why is it necessary to turn it on before using MPS?