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

模块列表
以下模块已添加到 DCGM。
模块 ID |
编号 |
描述 |
---|---|---|
DcgmModuleIdNvSwitch |
1 |
管理 NVSwitch,是 DGX-2 / HGX-2 系统正常运行所必需的。可以通过在 nv-hostengine 命令行中添加 需要 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 |
+-----------+--------------------+------------------------------------------+