Megascale 统计信息工具
您可以使用 Megascale Stats 工具来分析跨多个 TPU 切片(通过数据中心网络 [DCN] 进行通信)的工作负载的切片间通信性能。
Megascale Stats 工具中显示的所有指标都是按每个 TPU 生成的。
支持的平台
Megascale Stats 工具仅在 TPU 上受支持。
与集体相关的术语
该工具会显示与 TPU 切片之间的通信相关的指标,这些指标涉及以下操作:
send:中断主机以启动直接内存访问 (DMA),并向主机提供已填充的缓冲区以启动数据传输。send-done:向主机发出数据传输已完成的信号。recv:为主机提供一个空缓冲区,以填充传输的数据。recv-done:向主机发出已接收数据的信号。
集合由 send 操作启动,并由匹配的 recv-done 操作完成。实际发送数据在发送操作完成后发生。send-done 操作在发送数据后发生。同样,数据在 recv 操作完成后接收。recv-done 操作在收到数据后发生。
界面组件
该工具会显示一个包含以下列的表格,其中每一行对应一次已分析的集体操作:
- DCN 集合名称:由 XLA 分配。
- 接收操作名称:TPU
recv-done操作名称。这样一来,您就可以轻松地在 Trace Viewer 中搜索相应的集合 TPU 操作。 - 发送操作名称:TPU
send操作名称。 - 空闲时间:定义为集合传输数据时与网络无关的时间。它是衡量集合可用于发送和接收数据的时间,不包括
send、send-done、recv或recv-done操作。增加空闲时间可降低集合的 TPU 发生停滞的可能性。例如,假设存在以下时间轴:

Slack time is calculated in this example as:
Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
- 观测到的时长:每个集合观测到的时长。它是指从
send操作开始到相应recv-done操作结束之间的时间间隔,包括发送和接收数据所用的时间。例如,假设存在以下时间轴:

Observed duration is calculated as:
Observed duration = t<sub>send</sub> + t<sub>1</sub> + t<sub>send-done</sub> + t<sub>2</sub> + t<sub>recv</sub> + t<sub>3</sub> + t<sub>recv-done</sub>
- 停滞时长:集合使 TPU 停滞的时长。这是集合在
send、send-done、recv和recv-done操作中花费的总时长,不包括传输数据所花费的时间。例如,假设存在以下时间轴:

Stall duration is calculated in this example as:
Stall duration = t<sub>send</sub> + t<sub>send-done</sub> + t<sub>recv</sub> + t<sub>recv-done</sub>
- 次数:在性能分析时段内,集合启动和完成的总次数。
send操作及其匹配的recv-done操作必须在性能分析时长内发生,才能包含在此指标中。 - 汇总的总停滞时间:在性能分析时段内,集合使 TPU 停滞的总时长。汇总的总停滞时间的计算公式如下:
- 汇总的总停滞时间 = 停滞时长 * 出现次数
- 传输的数据大小:集合通过网络传输的数据量,根据 XLA 操作形状计算得出。
- 所需带宽:在提供的空闲时间内传送数据所需的带宽。您可以使用此指标查看在性能分析时段内争用网络带宽的集合数量。所需带宽的计算方式如下:
- 所需带宽 = 传送的数据大小 / 空闲时间
分析 Megascale 统计信息工具数据
如需分析该工具中显示的数据,请执行以下操作:
- 按
Aggregated Total Stall对表格进行降序排序。 - 确定
Aggregated Total Stall最高的 DCN 集合名称。 如果该值明显高于其他值,则可能表示存在瓶颈。 - 将 DCN 集合的
Required Bandwidth乘以核心数(例如,每个 v4 TPU 主机 8 个)。如果此值大于 TPU 的网络带宽上限,则可能表明网络出现拥塞。尝试更改分片机制以减少所需的带宽。 - 生成 HLO 转储,以检查是否存在编译器问题。展开
send和recv-done操作可以调度更多重叠的 HLO 操作,并缩短 TPU 停滞时间。 - 在跟踪记录查看器中,查看汇总的总停滞时间最长的集合的
recv-done操作时长。如果传输时长较高,则可能表示存在带宽瓶颈,因为recv-done操作通常会在网络上被阻止。 - 如果
recv-done操作的时长与空闲时间相比并不太长,则可能表示存在硬件问题。