
NVLink Telemetry 的基线应按“拓扑中的具体链路 + 可重复的作业阶段”建立,而不是按整机平均利用率建立。链路计数器只能说明观测窗口内的通信活动;某一时段数值偏低,首先应判断该阶段是否确实会经过该路径。单次低利用率不能判断链路故障,可能只是工作负载未使用该路径。
先定义基线要回答的问题
基线的目标是让运维人员能够回答三个问题:训练、推理或通信任务在什么阶段需要 GPU 间传输;这些传输按当前 GPU 拓扑应经过哪些 NVLink 路径;当阶段、输入规模和并行策略相近时,链路计数变化是否偏离历史区间。这样得到的是任务相关的运行基线,而非脱离上下文的硬件健康分数。
适合优先纳入的场景包括分布式训练、模型并行、集合通信密集型计算,以及需要定位节点内 GPU 通信瓶颈的作业。对于单 GPU 作业、主要经 PCIe 或网络通信的作业、通信仅发生在初始化或偶发检查点阶段的作业,NVLink 计数器通常不能单独提供有效结论。
把 GPU 拓扑纳入观测对象
采集前应记录节点标识、GPU 编号、可见设备映射、驱动与工具版本,以及作业实际使用的设备集合。随后保存拓扑输出,明确 GPU 对之间是否存在预期的高速互连路径。容器内的设备编号、调度器分配和进程亲和性都可能使“GPU 0 到 GPU 1”的业务含义发生变化,因此不能只保存逻辑编号而忽略分配上下文。
NVIDIA System Management Interface Guide 说明了 nvidia-smi 的管理与查询接口范围,可用于在现场确认可用查询项和拓扑相关输出。具体字段、命令选项及其可用性会受驱动、GPU、操作系统和版本影响,应以目标环境的官方文档及实际输出复核。
以阶段而不是整段作业切分计数
将一次作业划分为有业务意义的窗口,例如数据准备、模型加载、预热、稳定训练步、评估、检查点和收尾。优先选择稳定训练步或稳定推理批次作为主基线窗口,并记录开始和结束时间、步数或请求批次、全局批量、并行度、精度策略及通信库配置。初始化与检查点阶段可以单独保留基线,但不应与稳定计算阶段混合求均值。
若应用能够输出 step、epoch、collective 调用或请求阶段标记,应将这些标记送入同一时间序列。若不能修改应用,至少以调度器作业状态、日志时间戳和固定采样间隔对齐。阶段边界不清时,计数器的升降只能反映混合负载,难以支持故障归因。
选择计数器并保留原始读数
通过 NVML 获取设备管理与遥测信息时,应先核对 API 在当前平台的支持状态。NVML API Reference 是核验函数定义、返回状态和版本行为的官方入口。实现采集器时,保存每条可识别 NVLink 链路在窗口起止点的原始计数、采样时间和读取错误码;用相邻有效读数计算增量,并将无效、缺失或设备重置明确标记,不能补零后参与基线。
计数器适合描述方向性传输活动和阶段间相对变化,但其名称、单位、计数范围以及是否支持读取必须现场确认。若计数器会回绕或在重置后归零,应依据时间顺序识别不连续点,舍弃该窗口或重新开始计算。不要把未经确认的计数差直接换算为带宽,也不要用单一瞬时采样替代窗口统计。
建立可比较的带宽基线
对每个“节点类型、拓扑签名、GPU 对、链路方向、作业类型、阶段”组合分别聚合。每次合格运行至少保留窗口持续时间、传输计数增量、由增量除以有效窗口得到的平均传输速率,以及同窗口的 GPU 利用率、显存活动、作业吞吐和通信相关日志。基线宜使用一组成功运行的中位数与分位区间,避免一次拥塞、重试或短暂空闲把均值拉偏。
比较时先保证输入规模、批量、并行布局和软件版本大体一致。对于双向通信,应分别观察两个方向,再结合拓扑和作业算法解释不对称性。若某条路径在基线阶段本来就不参与通信,其低计数应标注为“未期望使用”,而不是纳入异常阈值。
把异常判定做成证据链
一个可处置的异常通常需要同时满足:该阶段按拓扑和并行策略预期使用目标路径;同类历史窗口中该路径具有稳定活动;本次窗口计数或计算出的平均速率显著偏离自身基线;并且作业吞吐、通信耗时、错误日志或相邻链路行为存在支持性信号。仅有一项不满足时,应先归类为待复测,而非直接判定链路故障。
反例很常见:数据并行作业可能主要跨网络交换,模型并行布局也可能让某些本地 GPU 对完全闲置;评估阶段、尾批次和动态负载均衡会降低通信需求;作业被重新绑定到其他 GPU 后,原链路自然不再活跃。这些情况都能造成低利用率,却不说明 NVLink 本身异常。
按最小干预顺序实施
- 在一项已知可稳定复现的作业上记录拓扑、软件版本和阶段标记。
- 以固定采样周期采集链路原始读数、采集状态及作业上下文,覆盖多个完整运行。
- 清理设备重置、缺失读数和阶段不完整的窗口,再按阶段计算增量与平均速率。
- 生成分组基线,并将预期未使用路径从告警对象中排除。
- 在同配置复跑中验证:阶段匹配率、有效采样率、计数连续性、链路方向一致性、与作业吞吐的关联趋势。
告警应带回原始窗口、拓扑签名和阶段标签,便于复核而非只给出红黄绿状态。阈值先用于观察和人工确认;在积累足够同类样本前,不宜驱动自动隔离或自动迁移。
验证失败时的回退路径
若基线无法稳定复现,先回退到更粗粒度的“作业阶段级”观测,暂停链路级告警,并检查设备映射、阶段标记、采样权限和版本支持情况。若计数读取不可用或语义无法确认,保留拓扑与作业性能日志,将 NVLink 指标标记为不可判定,不以推测值替代。对于疑似问题,使用相同配置的复跑、相邻 GPU 对对照和官方工具输出交叉验证;只有在路径预期、计数偏离和业务影响同时成立时,才进入硬件或驱动层面的进一步排查。
WeChat
Profile