如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

目录

背景说明

设置方法

管理脚本

进阶限制

恢复默认组

注意事项


背景说明

        比较简单的方式是使用group来管理权限,这种方式能限制哪些用户能用 GPU。微调后能限制哪些用户能用哪些GPU

设置方法

1、确认 GPU 设备属于哪个组

一般 NVIDIA 驱动会把 GPU 设备文件放在 /dev 下,比如:

ls -l /dev/nvidia*

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#控制

可以看到设备默认属于组 root

2、新增自定义组

  • 创建一个新组:
sudo groupadd gpuusers
  • 修改 /dev/nvidia* 的所属组 (比如gpuusers):
for dev in /dev/nvidia*; do [[ "$dev" != /dev/nvidia-caps* ]] && sudo chgrp gpuusers "$dev" && sudo chmod 660 "$dev"; done
  • 检查GPU所属组:
ls -l /dev/nvidia*

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#Linux_02

3、测试使用权限

nvidia-smi

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#权限_03

4、添加授权用户到gpuusers组

sudo usermod -aG gpuusers <用户名>
  • 该用户需要注销登录后再重新登录,才能刷新groups信息。
  • 再次执行nvidia-smi可以看到能正常访问GPU了:

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#GPU_04

5、从gpuusers组里删除用户

sudo gpasswd -d <用户名> gpuusers

管理脚本

https://github.com/songxf1024/manager

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#权限_05

git clone https://github.com/songxf1024/manager.git

cd manager
sudo apt install dialog -y
sudo bash gum.sh

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#GPU_06

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#权限_07

进阶限制

为每一个/dev/nvidia设置一个group,这样的话就可以实现每个用户具体能使用哪些GPU

比如:

sudo chgrp gpu0 /dev/nvidia0 sudo chgrp gpu1 /dev/nvidia1 ...

恢复默认组

sudo /sbin/ub-device-create

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本_#Linux_08

注意事项

重启服务器后,由于会执行/sbin/ub-device-create,所以可能需要重新设置gpu的groups