分析多切片环境
Cloud TPU 多切片环境由多个通过数据中心网络 (DCN) 进行通信的 TPU Pod 切片组成。您可以使用 DCN 集合统计信息工具查看多片环境如何有效利用 DCN 网络的信息。具体而言,借助 DCN 集合统计信息工具,您可以:
- 根据收集的数据查看和了解 slice 间网络性能
- 找出性能瓶颈
- 优化模型的性能
DCN 集合统计信息工具中的所有指标都是按 TPU 生成的。
术语
DCN 集合统计信息工具会显示一些指标,用于描述多切片环境中 TPU 切片之间发生的通信。当 TPU 运行时发起 slice 间通信时,会使用一系列操作:
send
- 会中断主机以启动直接内存访问 (DMA),并向主机提供已填充的缓冲区以启动数据传输。
send-done
- 向主机发出数据传输已完成的信号。
recv
- 提供一个空缓冲区,供主机填充传输的数据。
recv-done
- 向主机发送数据已收到的信号。
当发生 send
操作时,集合会启动,并在发生匹配的 recv-done
操作时完成。
空闲时间
衡量集合能够发送和接收数据的时间。
这不包括 send
、send-done
、recv
或 recv-done
运算。例如,假设存在以下时间轴:
在此示例中,空闲时间的计算方式如下:
空闲时间 = t1 + t2 + t3
增加空闲时间可降低集合导致 TPU 卡顿的几率。您可以通过选择其他分片方法来增加空闲时间。
卡顿时长
集合在发送、发送完成、接收和接收完成操作中花费的平均时长。请注意,这不包括传输数据所花费的时间。例如,假设存在以下时间轴:
在此示例中,计算卡顿时长的方法如下:
停顿时长 = tsend + tsend-done + trecv + trecv-done
观察到的时长
send
和 recv-done
操作之间的时间,包括发送和接收数据的时间。例如,假设存在以下时间轴:
观察时长的计算公式如下:
观察到的时长 = tsend + t1 + tsend-done + t2 + trecv + t3 + trecv-done
出现次数
在配置文件有效期内发起和完成集合活动的次数。当发生 send
操作时,集合会启动,并在发生匹配的 recv-end
操作时完成。send
操作及其匹配的 recv-done
操作必须在配置文件时长内发生,才能包含在此指标中。
累计总卡顿时间
在性能剖析期间,集合使 TPU 停顿的总时间。汇总总卡顿时间的计算公式如下:
汇总的总卡顿时间 = 卡顿时长 * 出现次数
传输的数据大小
在配置文件时段内,集合通过网络传输的数据量。
所需带宽
在所提供的空闲时间内传输数据所需的带宽。您可以使用此指标查看在配置文件时长内争夺网络带宽的集合数量。所需带宽的计算方式如下:
所需带宽 = 传输的数据大小 / 空闲时间
工具状态
下表显示了 DCN 集体统计信息工具中显示的每个指标所需的 TensorFlow 或 TPU 运行时版本。
DCN 集合统计信息 | 支持的 TPU 运行时版本的 TensorFlow |
---|---|
空闲时间 | TensorFlow 2.15.0、TensorBoard 2.15.1 和 TensorBoard-Plugin-Profile 2.15.0 |
卡顿时长 | TensorFlow 2.15.0、TensorBoard 2.15.1 和 TensorBoard-Plugin-Profile 2.15.0 |
观察到的时长 | TensorFlow 2.15.0、TensorBoard 2.15.1 和 TensorBoard-Plugin-Profile 2.15.0 |
出现次数 | TensorFlow 2.15.0、TensorBoard 2.15.1 和 TensorBoard-Plugin-Profile 2.15.0 |
累计总卡顿时间 | tf-nightly、tb-nightly、tbp-nightly |
传输的数据大小 | tf-nightly、tb-nightly、tbp-nightly |
所需带宽 | tf-nightly、tb-nightly、tbp-nightly |
如何使用 DCN 集合统计信息工具进行分析
- 运行 TensorBoard 服务器,然后前往 Profile 标签页。
- 在 DCN 集合统计信息工具中,按汇总总卡顿时间从高到低对表格进行排序。
- 确定汇总的总计卡顿时间最高的 DCN 集合名称。如果此集合的汇总卡顿时长与其他集合相比明显较高,则可能表示 DCN 集合存在瓶颈。
- 将 DCN 集群所需的带宽乘以核心数。 每台 v4 TPU 主机有 8 个核心,因此集合所需的带宽为显示值的 8 倍。如果所需带宽大于 TPU 的最大网络带宽,则可能表示网络拥塞。如需降低所需的带宽,请尝试更改您使用的分片机制。如需详细了解分片机制,请参阅 Cloud TPU 多片视图概览。
- 生成 HLO 转储,以确定是否存在任何编译器问题。最好为集合扇出
send
和recv-done
操作,以便调度更多重叠的 HLO 操作。重叠更多 HLO 操作可缩短 TPU 停顿时间。 - 在轨迹查看器中,检查具有最大汇总总暂停时间的 DCN 集合的
recv-done
操作时长。如果传输时长较长,则可能会出现带宽瓶颈,因为recv-done
操作通常会在网络上被阻止获取数据。 - 如果
recv-done
操作的持续时间与空闲时间相比不算太长,则可能表示存在硬件问题。