# ====== 启动 =========
export CUDA_VISIBLE_DEVICES=0 # 这里以GPU0为例,其他卡类似
nvidia-smi -i 0 -c EXCLUSIVE_PROCESS # 让GPU0变为独享模式。
nvidia-cuda-mps-control -d # 开启mps服务
# ====== 查看 =========
ps -ef | grep mps # 启动成功后能看到相应的进程
# ====== 停止 =========
nvidia-smi -i 0 -c DEFAULT # 让GPU恢复为默认模式。
echo quit | nvidia-cuda-mps-control # 关闭mps服务
需要在root用户下运行以上命令。
sudo只是在当前用户下拥有root权限,所以MPS的设置还是在当前用户下的,在docker里面的环境没变。
进入root用户
su
更改root用户密码
sudo passwd root
更改成功后nvidia-cuda-mps-server会把不同GPU进程包装到一个进程中,同时加载多个深度学习模型时,就不会像之前那样频繁保存和恢复GPU的上下文了,所以每个模型的速度就和单独跑每个模型时差不多了