已开启
[Question|问题咨询]: 如何对某个用户能使用的NPU芯片作出限制 #146
yuantao创建于  16 天前
yuantao
yuantao
16 天前 创建

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的手段。

likedislike
linyongtianlinyongtian成员
16 天前 issue类型由 任务 改变为 咨询
Aad_cx成员
16 天前 将 lishengvictor 设为负责人
lishengvictor
lishengvictor成员
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 ~]#
likedislike
lishengvictor
lishengvictor成员
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 ~]#

likedislike
lishengvictorlishengvictor成员
16 天前 添加了label:wait-feedback
yuantao
yuantao
16 天前 评论:

感谢解答,我将进行尝试

likedislike
CANN-robotCANN-robot成员
16 天前 删除了label:wait-feedback
yuantao
yuantao
15 天前 评论:

我使用Ascend950PR 8卡的机器进行测试,发现如果允许使用的NPU<=2, npu-smi就会报-8005失效

likedislike
lishengvictor
lishengvictor成员
13 天前 评论:

@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 ~]
likedislike
PPAN成员
8 天前 添加了label:wait-feedback
CANN-robot
CANN-robot成员
6 天前 评论:

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

likedislike