DCGM 模块化

DCGM 支持模块化,其中 DCGM 的不同功能/特性区域被分离到不同的共享库中。这些共享库在首次被相应的 API 或 DCGMI 调用使用时由 DCGM 延迟加载。如果您不希望加载某个模块,您可以使用 dcgmi、API 调用或 nv-hostengine 命令行参数禁用该模块。此外,您可以删除您想要永久禁用的模块的 so.1 文件,DCGM 的行为将如同该库已被禁用。

../_images/dcgm-modularity.png

模块列表

以下模块已添加到 DCGM。

模块 ID

编号

描述

DcgmModuleIdNvSwitch

1

管理 NVSwitch,是 DGX-2 / HGX-2 系统正常运行所必需的。可以通过在 nv-hostengine 命令行中添加 -l -g 显式加载此模块。

需要 nv-hostengine 以 root 身份运行。

DcgmModuleIdVGPU

2

提供关于半虚拟化 GPU 的遥测数据。

DcgmModuleIdIntrospect

3

提供关于 nv-hostengine 运行状态的时序数据。

DcgmModuleIdHealth

4

提供 GPU 和 NVSwitch 的被动健康检查

DcgmModuleIdPolicy

5

允许用户基于 GPU 事件(如 XID 和过温)注册回调。

DcgmModuleIdConfig

6

允许用户设置 GPU 配置。需要 nv-hostengine 以 root 身份运行。

DcgmModuleIdDiag

7

使用户能够调用 DCGM GPU 诊断

DcgmModuleIdProfiling

8

使用户能够监控性能分析指标。

DcgmModuleIdSysmon

9

使用户能够监控受支持的 Nvidia CPU。

禁用模块

用户可以通过在运行 nv-hostengine 时向其提供命令行选项来阻止 DCGM 加载模块。此命令行的参数是上表中的“编号”列。

例如,要启动 nv-hostengine 并禁用自检 (3) 和健康 (4) 模块,您需要更改 nv-hostengine 的服务文件以传递以下参数

$ nv-hostengine --blacklist-modules 3,4

请注意,NVSwitch 必须使用 -l-g 选项显式加载。要仅加载 NVSwitch 模块并禁用所有其他模块,请使用以下命令行

$ nv-hostengine -l -g --blacklist-modules 2,3,4,5,6,7

您可以使用以下命令查询所有 dcgm 模块的状态

$ dcgmi modules -l
+-----------+--------------------+------------------------------------------+
| List Modules                                                              |
| Status: Success                                                           |
+===========+====================+==========================================+
| Module ID | Name               | State                                    |
+-----------+--------------------+------------------------------------------+
| 0         | Core               | Loaded                                   |
| 1         | NvSwitch           | Not loaded                               |
| 2         | VGPU               | Not loaded                               |
| 3         | Introspection      | Not loaded                               |
| 4         | Health             | Not loaded                               |
| 5         | Policy             | Not loaded                               |
| 6         | Config             | Not loaded                               |
| 7         | Diag               | Not loaded                               |
| 8         | Profiling          | Not loaded                               |
| 9         | Sysmon             | Not loaded                               |
+-----------+--------------------+------------------------------------------+

只有“未加载”的模块可以被禁用。

要禁用模块,请从上表中记下其模块名称。在此示例中,我们将禁用模块 Policy

$ dcgmi modules --blacklist Policy
+-----------------------------+---------------------------------------------+
| Blacklist Module                                                          |
| Status: Success                                                           |
| Successfully blacklisted module Policy                                    |
+=============================+=============================================+
+-----------------------------+---------------------------------------------+

禁用模块后,您可以通过再次列出模块来验证这一点

$ dcgmi modules -l
+-----------+--------------------+------------------------------------------+
| List Modules                                                              |
| Status: Success                                                           |
+===========+====================+==========================================+
| Module ID | Name               | State                                    |
+-----------+--------------------+------------------------------------------+
| 0         | Core               | Loaded                                   |
| 1         | NvSwitch           | Not loaded                               |
| 2         | VGPU               | Not loaded                               |
| 3         | Introspection      | Not loaded                               |
| 4         | Health             | Not loaded                               |
| 5         | Policy             | Blacklisted                              |
| 6         | Config             | Not loaded                               |
| 7         | Diag               | Not loaded                               |
| 8         | Profiling          | Not loaded                               |
| 9         | Sysmon             | Not loaded                               |
+-----------+--------------------+------------------------------------------+