已开启
[Question|问题咨询]: 如何对某个用户能使用的NPU芯片作出限制 #146
yuantao创建于 16 天前
16 天前 issue类型由 任务 改变为 咨询
lishengvictor
16 天前 评论:
16 天前 评论:
@yuantao 你好,可以考虑用cgroup做出限制。每个用户分配一个cgroup, 每个cgroup把自己不使用的NPU通过 devices.deny排除掉。
例如:
mkdir -p /sys/fs/cgroup/devices/test_davinci
echo 'a' | tee /sys/fs/cgroup/devices/test_davinci/devices.allow
echo 'c 238:15 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:14 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:13 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:12 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:11 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:10 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:9 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 238:8 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo $$ | sudo tee /sys/fs/cgroup/devices/test_davinci/tasks
[root@localhost ~]# npu-smi info
+-------------------------------------------------------------------------------------------------+
| npu-smi 26.1.0.b061 Version: 26.1.0.b061 |
+---------------------------+---------------+-----------------------------------------------------+
| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) |
| Chip Phy-ID | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) |
+===========================+===============+=====================================================+
| 0 Ascend910 | OK | 162.5 34 0 / 0 |
| 0 0 | 0000:9D:00.0 | 0 0 / 0 2909 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 0 Ascend910 | OK | - 37 0 / 0 |
| 1 1 | 0000:9F:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 1 Ascend910 | OK | 153.8 37 0 / 0 |
| 0 2 | 0000:99:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 1 Ascend910 | OK | - 34 0 / 0 |
| 1 3 | 0000:9B:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 2 Ascend910 | OK | 160.4 32 0 / 0 |
| 0 4 | 0000:95:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 2 Ascend910 | OK | - 73 0 / 0 |
| 1 5 | 0000:97:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 3 Ascend910 | OK | 156.6 35 0 / 0 |
| 0 6 | 0000:91:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 3 Ascend910 | OK | - 33 0 / 0 |
| 1 7 | 0000:93:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
+---------------------------+---------------+-----------------------------------------------------+
| NPU Chip | Process id | Process name | Process memory(MB) |
+===========================+===============+=====================================================+
| No running processes found in NPU 0 |
+===========================+===============+======================================================================+
| No running processes found in NPU 1 |
+===========================+===============+======================================================================+
| No running processes found in NPU 2 |
+===========================+===============+======================================================================+
| No running processes found in NPU 3 |
+===========================+===============+======================================================================+
[root@localhost ~]#


lishengvictor
16 天前 评论:
16 天前 评论:
未作出限制时显示如下:
[root@localhost ~]# npu-smi info
+-------------------------------------------------------------------------------------------------+
| npu-smi 26.1.0.b061 Version: 26.1.0.b061 |
+---------------------------+---------------+-----------------------------------------------------+
| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) |
| Chip Phy-ID | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) |
+===========================+===============+=====================================================+
| 0 Ascend910 | OK | 162.3 34 0 / 0 |
| 0 0 | 0000:9D:00.0 | 0 0 / 0 2909 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 0 Ascend910 | OK | - 37 0 / 0 |
| 1 1 | 0000:9F:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 1 Ascend910 | OK | 154.3 37 0 / 0 |
| 0 2 | 0000:99:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 1 Ascend910 | OK | - 34 0 / 0 |
| 1 3 | 0000:9B:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 2 Ascend910 | OK | 160.4 33 0 / 0 |
| 0 4 | 0000:95:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 2 Ascend910 | OK | - 73 0 / 0 |
| 1 5 | 0000:97:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 3 Ascend910 | OK | 156.6 35 0 / 0 |
| 0 6 | 0000:91:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 3 Ascend910 | OK | - 33 0 / 0 |
| 1 7 | 0000:93:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 4 Ascend910 | OK | 159.9 59 0 / 0 |
| 0 8 | 0000:8D:00.0 | 0 0 / 0 2896 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 4 Ascend910 | OK | - 34 0 / 0 |
| 1 9 | 0000:8F:00.0 | 0 0 / 0 2882 / 65536 |
+===========================+===============+=====================================================+
| 5 Ascend910 | OK | 162.2 35 0 / 0 |
| 0 10 | 0000:89:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 5 Ascend910 | OK | - 33 0 / 0 |
| 1 11 | 0000:8B:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 6 Ascend910 | OK | 164.7 33 0 / 0 |
| 0 12 | 0000:85:00.0 | 0 0 / 0 2908 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 6 Ascend910 | OK | - 34 0 / 0 |
| 1 13 | 0000:87:00.0 | 0 0 / 0 2870 / 65536 |
+===========================+===============+=====================================================+
| 7 Ascend910 | OK | 161.0 40 0 / 0 |
| 0 14 | 0000:81:00.0 | 0 0 / 0 2896 / 65536 |
+------------------------------------------------------------------------------------------------------------------+
| 7 Ascend910 | OK | - 33 0 / 0 |
| 1 15 | 0000:83:00.0 | 0 0 / 0 2882 / 65536 |
+===========================+===============+=====================================================+
+---------------------------+---------------+-----------------------------------------------------+
| NPU Chip | Process id | Process name | Process memory(MB) |
+===========================+===============+=====================================================+
| No running processes found in NPU 0 |
+===========================+===============+======================================================================+
| No running processes found in NPU 1 |
+===========================+===============+======================================================================+
| No running processes found in NPU 2 |
+===========================+===============+======================================================================+
| No running processes found in NPU 3 |
+===========================+===============+======================================================================+
| No running processes found in NPU 4 |
+===========================+===============+======================================================================+
| No running processes found in NPU 5 |
+===========================+===============+======================================================================+
| No running processes found in NPU 6 |
+===========================+===============+======================================================================+
| No running processes found in NPU 7 |
+===========================+===============+======================================================================+
[root@localhost ~]#


16 天前 添加了label:wait-feedback
yuantao
16 天前 评论:
16 天前 评论:
感谢解答,我将进行尝试


16 天前 删除了label:wait-feedback
yuantao
15 天前 评论:
15 天前 评论:
我使用Ascend950PR 8卡的机器进行测试,发现如果允许使用的NPU<=2, npu-smi就会报-8005失效


lishengvictor
14 天前 评论:
14 天前 评论:
@yuantao 我找了一个设备验证了一下并没有问题。 你可以重试一下吗? 如果有问题,把/var/log/nputools_LOG_ERR.log, msnpureport -f 收集的日志, dmesg内核日志发一下。
[root@localhost ~]# npu-smi info
+------------------------------------------------------------------------------------------------------------------+
| npu-smi 25.6.rc1.b999 Version: 25.6.rc1.b999 |
+--------+------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Name | Health | Power(W) Temp(C) Hugepages-Usage(page) |
| | | Bus-Id | NPU Util(%) Memory-Usage(MB) HBM-Usage(MB) |
+========+==================+===============+======================================================================+
| 0 | Ascend950PR | OK | 284.1 51 0 / 0 |
| | | NA | 0 0 / 0 4472 / 114688 |
+===========================+===============+======================================================================+
| 1 | Ascend950PR | OK | 286.4 52 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
| 2 | Ascend950PR | OK | 295.5 53 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
| 3 | Ascend950PR | OK | 296.3 52 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
| 4 | Ascend950PR | OK | 285.1 51 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
| 5 | Ascend950PR | OK | 292.0 52 0 / 0 |
| | | NA | 0 0 / 0 4472 / 114688 |
+===========================+===============+======================================================================+
| 6 | Ascend950PR | OK | 296.8 49 0 / 0 |
| | | NA | 0 0 / 0 4472 / 114688 |
+===========================+===============+======================================================================+
| 7 | Ascend950PR | OK | 287.8 51 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
+---------------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Process id | Process name | Process memory(MB) | Process id in container |
+===========================+===============+======================================================================+
| No running processes found in NPU 0 |
+===========================+===============+======================================================================+
| No running processes found in NPU 1 |
+===========================+===============+======================================================================+
| No running processes found in NPU 2 |
+===========================+===============+======================================================================+
| No running processes found in NPU 3 |
+===========================+===============+======================================================================+
| No running processes found in NPU 4 |
+===========================+===============+======================================================================+
| No running processes found in NPU 5 |
+===========================+===============+======================================================================+
| No running processes found in NPU 6 |
+===========================+===============+======================================================================+
| No running processes found in NPU 7 |
+===========================+===============+======================================================================+
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# mkdir -p /sys/fs/cgroup/devices/test_davinci
[root@localhost ~]# echo 'a' | tee /sys/fs/cgroup/devices/test_davinci/devices.allow
a
[root@localhost ~]# ls -l /dev/davinci*
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 0 Sep 4 17:00 /dev/davinci0
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 1 Sep 4 17:00 /dev/davinci1
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 2 Sep 4 17:00 /dev/davinci2
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 3 Sep 4 17:00 /dev/davinci3
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 4 Sep 4 17:00 /dev/davinci4
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 5 Sep 4 17:00 /dev/davinci5
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 6 Sep 4 17:00 /dev/davinci6
crw-rw----. 1 HwHiAiUser HwHiAiUser 505, 7 Sep 4 17:00 /dev/davinci7
crw-rw----. 1 HwHiAiUser HwHiAiUser 506, 0 Sep 4 16:59 /dev/davinci_manager
[root@localhost ~]# echo 'c 505:2 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 505:3 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 505:4 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 505:5 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 505:6 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
echo 'c 505:7 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
c 505:2 rwm
c 505:3 rwm
c 505:4 rwm
c 505:5 rwm
c 505:6 rwm
c 505:7 rwm
[root@localhost ~]# echo $$ | sudo tee /sys/fs/cgroup/devices/test_davinci/tasks
47701
[root@localhost ~]# npu-smi info
+------------------------------------------------------------------------------------------------------------------+
| npu-smi 25.6.rc1.b999 Version: 25.6.rc1.b999 |
+--------+------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Name | Health | Power(W) Temp(C) Hugepages-Usage(page) |
| | | Bus-Id | NPU Util(%) Memory-Usage(MB) HBM-Usage(MB) |
+========+==================+===============+======================================================================+
| 0 | Ascend950PR | OK | 283.6 50 0 / 0 |
| | | NA | 0 0 / 0 4472 / 114688 |
+===========================+===============+======================================================================+
| 1 | Ascend950PR | OK | 285.9 52 0 / 0 |
| | | NA | 0 0 / 0 5047 / 131072 |
+===========================+===============+======================================================================+
+---------------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Process id | Process name | Process memory(MB) | Process id in container |
+===========================+===============+======================================================================+
| No running processes found in NPU 0 |
+===========================+===============+======================================================================+
| No running processes found in NPU 1 |
+===========================+===============+======================================================================+
[root@localhost ~]# echo 'c 505:1 rwm' | tee /sys/fs/cgroup/devices/test_davinci/devices.deny
c 505:1 rwm
[root@localhost ~]# npu-smi info
+------------------------------------------------------------------------------------------------------------------+
| npu-smi 25.6.rc1.b999 Version: 25.6.rc1.b999 |
+--------+------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Name | Health | Power(W) Temp(C) Hugepages-Usage(page) |
| | | Bus-Id | NPU Util(%) Memory-Usage(MB) HBM-Usage(MB) |
+========+==================+===============+======================================================================+
| 0 | Ascend950PR | OK | 283.3 50 0 / 0 |
| | | NA | 0 0 / 0 4472 / 114688 |
+===========================+===============+======================================================================+
+---------------------------+---------------+----------------------------------------------------------------------+
| NPU ID | Process id | Process name | Process memory(MB) | Process id in container |
+===========================+===============+======================================================================+
| No running processes found in NPU 0 |
+===========================+===============+======================================================================+
[root@localhost ~]


CANN-robot
6 天前 评论:
6 天前 评论:
您好,为了更准确地定位和解决问题,我们需要您提供上述提到的相关信息。如果 14 天内没有进一步更新,我们将暂时关闭此 Issue。感谢您的理解与配合。


Welcome to ask questions and discuss with other members.
问题描述
多用户共享一台NPU开发机时,希望能对每个用户能使用的NPU作出限制。
如果给用户设置HwHiAiUser组,默认能看到所有NPU。
我尝试使用udevrule限制用户对npu设备的读取,发现十分不稳定,有时在非npu0的用户下提示npu-smi失败,必须添加npu0的权限才能使用npu-smi;有时则完全不能访问,只能使用HwHiAiUser才能访问NPU。
并且,cann ge包也提示必须在HwHiAIUser组才能安装,不在这个组就会安装失败。
请教驱动开发人员,是否有测试通过可用的指定某用户使用某几个NPU的手段。