内容模块
分布式与 AI Infra 基础
Role、Replica、Rank
分布式训练里,role 描述职责,replica 描述副本编号,rank 描述通信世界中的全局身份。不要把 Pod 名称、rank 和业务角色混为一谈。
| 概念 | 含义 | 例子 |
|---|---|---|
| Role | 任务角色 | worker、ps、chief、evaluator |
| Replica | 同一角色下的副本 | worker-0、worker-1 |
| Global Rank | 通信全局编号 | DDP world 中 rank 0..N-1 |
| Local Rank | 节点内编号 | 一台 8 卡机器 local_rank 0..7 |
控制面、训练数据面、存储数据面
| 链路 | 技术 | 传输内容 | 核心指标 | 瓶颈 |
|---|---|---|---|---|
| 控制面 | HTTP/gRPC/Thrift | 任务提交、状态、心跳 | 延迟、可用性 | 超时、重试、限流 |
| 训练数据面 | NCCL、RDMA、NVLink | 梯度、参数、激活值 | 带宽、同步耗时 | 拓扑差、拥塞、慢 rank |
| 存储数据面 | 对象存储、分布式 FS、NVMe | 样本、checkpoint、权重 | 吞吐、IOPS、元数据性能 | 小文件、启动风暴、并发写 |
通用观测维度
| 维度 | 通用问题 | NVIDIA 示例 | 其他加速器需要映射的概念 |
|---|---|---|---|
| 身份 | 有几张卡、UUID/逻辑 ID 是什么 | nvidia-smi -L | 设备枚举、逻辑卡与物理卡关系 |
| 容量 | 显存/HBM 使用和峰值是多少 | memory used/free | HBM/Device Memory 容量 |
| 计算 | 计算单元是否持续执行有效工作 | SM Active、Tensor Core | AI Core/Vector Core 活跃度 |
| 带宽 | HBM、Host-Device 是否成为瓶颈 | HBM、PCIe Throughput | HBM 与互联吞吐 |
| 拓扑 | 卡、CPU、NIC 的距离如何 | nvidia-smi topo -m | PCIe/片间互联/NUMA 映射 |
| 通信 | Collective 时间和错误如何 | NCCL 时间、RDMA counters | 对应 Collective Library 与网络指标 |
| 健康 | 温度、功耗、错误和降频 | Xid、ECC、clock | 供应商错误码、健康状态、频率 |
观测原则
- 先看业务吞吐、延迟和任务进度,再解释硬件指标。
- 区分“设备忙”“计算单元吃满”“有效模型计算高效”三个概念。
- 跨厂商对比使用物理语义,不直接比较名称相似但口径不同的百分比。
- 工具输出必须记录采样窗口、设备 ID、驱动/固件版本和工作负载阶段。
Q: 为什么不能把不同厂商的 Utilization 直接比较?
不同工具可能测量“任意 Kernel 活跃时间”“计算核心忙碌比例”或“某类矩阵单元使用率”,采样周期和聚合方式也不同。跨设备比较应回到 Token/s、Step Time、有效 FLOPs、HBM 吞吐和功耗等可解释量,并核对指标定义。