通信库检查
更新时间:2026-03-23
概述
容器引擎 CCE 提供通信库检查功能,可检查 GPU 节点的网络状态,并基于 NCCL 通信库和多种通信模型生成可视化诊断结果。本文档介绍通信库检查功能的使用方法。
前提条件
- 已创建 CCE 集群。具体操作,请参见 创建集群。
- 集群中包含加速芯片(如 GPU)的节点,且节点处于可用状态。
- 若集群列表为空,请先创建至少 1 个包含 GPU 加速节点的 CCE 集群后,再继续执行本文操作。
注意事项
- 检查过程可能需要较长时间,请耐心等待。
- 检查期间,不建议进行其他对集群的操作,以免影响结果。
- 执行通信库检查时,系统将占用一定的计算资源用于检查;检查完成后会释放相关资源。请确保节点具有充足资源,避免因资源不足导致检查失败。
- 单次执行通信库检查时,需要确保节点的加速芯片类型相同。
- 系统默认采用经过验证的最佳实践参数执行通信库检查。如需特定配置,您可通过自定义参数进行灵活设置,支持配置的参数请参考下方的 自定义参数配置说明。
- 诊断报告中的 AI 智能分析由人工智能模型生成。因科技限制和生成式人工智能的特殊性,我们无法完全保证本服务模型的安全、可靠、可用和持续稳定,以及生成内容的完整性和准确性。生成内容不代表百度云立场和观点。我们将持续提升服务质量,但不承诺服务的可用性和可靠性,也不对您使用本服务的结果负责。
- 当执行中的检查任务超过 50 个时,不支持单击 【立即检查】。
- 在进行通信库检查时,系统默认执行
hostfile亲和性排序。
操作步骤
- 登录百度智能云 容器引擎 CCE 控制台。导航路径:集群管理->集群列表。在集群列表中,单击目标集群名称,进入集群管理页面。
- 导航路径:巡检与诊断->检查工具。
- 在检查工具页,选择 【通信库检查】,单击 【立即检查】。
-
在弹出的对话框中,配置测试信息。
参数(配置项) 必填 说明(配置说明) 通讯库类别 是 目前仅支持 NCCL。通讯模型 是 支持选择不同的通信模型,更多说明请参见 通信模型详细说明。支持的模型包括: ALLReduce(将多个进程的数据聚合在一起,通过运算将其缩减为单个值,并将结果分发给所有进程)、Reduce(将多个进程的数据聚合到一个目标进程,通过运算将其缩减为单个值,但结果仅分发给指定进程)、ALLToALL(将每个进程的数据分发给其他进程,使每个进程都能获得来自所有其他进程的数据)、Broadcast(将一个进程的数据分发给所有其他进程)、ALLGather(将所有进程的数据收集到一个结构中,便于每个进程访问数据)、Gather(将所有进程的数据收集到一个目标进程中,形成完整数据集,但仅目标进程可以访问全部数据)、Scatter(由主进程将数据的不同部分分发给各个进程,每个进程仅接收原始数据的一个子集)、Reduce-Scatter(先将多个进程的数据按块聚合,再将聚合结果按块分发给所有进程,每个进程仅获得部分结果)。多节点单机检查 否 选择是否开启多节点单机检查。开启后,系统将并行检查所选节点的集合通信能力。注意: 不开启时,系统默认进行多节点多机检查。 GPU 节点加速芯片类型 是 选择 GPU 节点加速芯片类型。每次测试需选择相同加速芯片类型的节点;仅支持选择当前集群中支持的 GPU 节点加速芯片类型。 选择节点 是 选择需要进行通信库测试的节点。注意: 单次执行检查最多可选择 500 个节点。 已选节点 否 展示已选择并将执行通信库检查的节点。 自定义测试参数 否 支持自定义测试参数。不配置时,系统默认采用经过验证的最佳实践参数执行测试。注意: 单次最多支持添加 100 个测试参数;自定义参数的键、值字符最长为 128 个字符。 日志持久化 否 支持选择是否开启日志持久化。开启后,日志服务(BLS)将采集任务执行日志,并传输到在您账号下自动创建的日志集中。注意: 日志服务会按实际使用情况计费,计费标准请参见 计费概述。 - 单击 【确定】,启动检查流程。
- 检查完成后,系统将生成检查报告,您可查看检查结果和建议。
查看报告
登录百度智能云 容器引擎 CCE 控制台。导航路径:集群管理->集群列表。在集群列表中,单击目标集群名称后,选择 巡检与诊断->检查工具->通信库检查。诊断列表会展示通信库检查的报告信息,包括报告 ID、检查结果、加速芯片、节点数量等。单击报告 ID,即可查看报告详情。
注意:
- 检查中的任务不支持查看报告详情。
自定义参数配置说明
Nvidia 官网的 NCCL 提供了一系列丰富的环境变量,可用于针对特定场景进行调优。环境变量分为以下两类:
- System configuration:为了让 NCCL 遵循系统特定的配置,可以保留在脚本和系统配置中,详见 详细的参数说明。
- Debugging:参数不应在生产环境中使用或保留在脚本中,只能作为临时解决方案使用,并应在问题解决后立即移除。持续保留这些参数可能导致次优性能、崩溃或挂起,详见 详细的参数说明。
注意:
- 单次最多支持添加 100 个测试参数。
- 自定义参数的键、值字符最长为 128 个字符。不支持空字符、非法字符的输入。
- 系统将根据您的 GPU 型号自动配置经过验证的最佳实践参数。为确保最佳性能和稳定性,建议使用系统默认配置的参数。如需自定义参数,系统将优先使用您的配置参数进行测试。
常用的参数说明
| 参数名称 | 参数含义 |
|---|---|
NCCL_IB_ADAPTIVE_ROUTING |
启用使用自适应路由能力的数据传输。当网络拓扑复杂或动态变化时,启用此功能可以提高通信效率,并自动选择更优的数据传输路径。 |
NCCL_IB_QPS_PER_CONNECTION |
用于两个队列之间每个连接的 IB 队列对数量。增加此值可以提高并行度和带宽利用率,但也会增加资源消耗。 |
NCCL_ALGO |
定义 NCCL 将使用的算法。可选值包括 Ring、Tree、CollNet 等,不同算法适用于不同的网络拓扑和通信模式。 |
NCCL_DEBUG_SUBSYS |
允许用户根据子系统过滤 NCCL_DEBUG=INFO 输出。该值应为逗号分隔的子系统列表,用于纳入 NCCL 调试日志跟踪。常用子系统包括 INIT、GRAPH、TUNING、ENV、NET、COLL 等。 |
NCCL_DEBUG |
NCCL 日志等级,用于控制 NCCL 输出的详细程度,便于调试和问题排查。 |
NCCL_MIN_NCHANNELS |
NCCL 使用的最小 channel 数量。增加 channel 数量可以提高带宽利用率,尤其适用于多 GPU 通信场景,但也会增加内存和 CPU 资源消耗。 |
UCX_NET_DEVICES |
指定 UCX 使用的网络设备,用于在多网络接口环境中选择特定设备进行通信,格式为设备名称或 IP 地址。 |
NCCL_IB_TIMEOUT |
设置 InfiniBand 连接的超时时间(秒),用于控制连接建立或数据传输的超时行为,避免长时间等待。 |
NCCL_PROTO |
指定 NCCL 使用的协议。可选值包括 Simple、LL、LL128 等,不同协议在延迟和带宽之间有不同的权衡。 |
NCCL_IB_TC |
设置 InfiniBand 的流量类别(Traffic Class),用于控制数据包的服务质量(QoS),影响网络优先级和带宽分配。 |
NCCL_IB_HCA |
指定要使用的 InfiniBand 主机通道适配器(HCA),用于在多 HCA 系统中选择特定适配器进行通信,格式为 HCA 设备名称。 |
NCCL_IB_MERGE_NICS |
启用或禁用合并多个网络接口卡(NIC)以提高带宽。在多 NIC 系统中,启用此功能可以聚合多个 NIC 的带宽,从而提升通信性能。 |
评价此篇文章
