在GPU上使用MPS(Multi-Process Service)
MPS(Multi-Process Service)
允许多个CPU进程共享同一GPU context
,这样可以在很多情况下提高GPU
利用率和占用率,从而加快计算的速度。
MPS 的使用限制
- 只支持
Linux
GPU
计算能力大于等于3.5CUDA
版本大于等于5.5
本文中,CUDA
版本为11.7
启用 MPS
假设在GPU0
上启用
1 | sudo nvidia-smi -i 0 -c EXCLUSIVE_PROCESS |
如果运行nvidia-cuda-mps-control –d
时显示:Cannot find MPS control daemon process
可以考虑先运行nvidia-cuda-mps-control –f
,然后终止,再运行nvidia-cuda-mps-control –d
,具体原因未知。
查看 MPS
1 | ps -ef | grep mps |
上述命令应该可以看到nvidia-cuda-mps-control –d
这个进程
如果运行一个CUDA
程序,使用nvidia-smi
,应该可以看到类型一行中为M+C
关闭 MPS
1 | echo quit | nvidia-cuda-mps-control |
参考和更多信息
https://www.nvidia.cn/content/dam/en-zz/zh_cn/assets/webinars/31oct2019c/20191031_MPS_davidwu.pdf