算法带宽 (Algorithm Bandwidth)

定义: 从用户视角看到的有效数据传输速率

计算公式:

text

算法带宽 = 数据总量 / 执行时间

含义:

  • 衡量应用程序层面的实际性能

  • 包含所有算法开销(序列化、反序列化、计算等)

  • 反映用户实际能获得的传输速度

  • 通常低于理论硬件带宽

总线带宽 (Bus Bandwidth)

定义: 物理总线上实际传输的原始数据速率

计算公式:

text

总线带宽 = (数据总量 × 通信模式系数) / 执行时间

通信模式系数:

  • All-Reduce: 通常为 2×(n-1)/n

  • Broadcast: 1

  • All-Gather: (n-1)/n

  • Reduce-Scatter: (n-1)/n

实际例子说明

假设4个GPU进行All-Reduce操作,传输1GB数据:

算法带宽

  • 用户看到:传输了1GB数据

  • 计算:1GB / 执行时间

  • 反映:用户程序的实际吞吐量

总线带宽

  • 实际发生:每个GPU发送1GB,接收1GB(部分优化后)

  • 总数据量:约 2×(4-1)/4 × 1GB = 1.5GB

  • 计算:1.5GB / 执行时间

  • 反映:硬件链路的实际利用率

在您测试结果中的表现

从您的数据可以看到:

  • 两种带宽都非常低(0.00-0.01 GB/s)

  • 这表明:

    1. 算法效率低 - 处理小数据量时开销很大

    2. 硬件利用率低 - 物理总线没有被充分利用

正常情况下的对比

在理想的NCCL测试中:

  • 算法带宽 ≈ 用户期望的性能

  • 总线带宽 ≈ 硬件理论带宽的70-90%

  • 两者都应该随着数据量增大而接近硬件极限

重要性

  • 算法带宽: 对应用程序开发者更重要

  • 总线带宽: 对系统调优和硬件评估更重要

您的测试结果显示这两个指标都很不理想,需要进一步排查系统配置问题。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐