对多切片环境进行性能分析
Cloud TPU 多切片环境由多个 TPU 切片组成,这些切片通过数据中心网络 (DCN) 进行通信。您可以使用 DCN 集合统计信息工具查看有关多切片环境如何有效利用 DCN 网络的信息。具体而言,DCN 集合统计数据工具可让您:
- 根据收集的数据查看和了解切片间网络性能
- 找出性能瓶颈
- 优化模型的性能
DCN 集体统计信息工具中的所有指标都是按 TPU 生成的。
术语
DCN 集合统计信息工具会显示描述多切片环境中的 TPU 切片之间进行的通信的指标。当 TPU 运行时发起切片间通信时,会使用一系列操作:
send
- 中断主机以启动直接内存访问 (DMA),并向主机提供已填充的缓冲区以启动数据传输。
send-done
- 向主机发出数据传输已完成的信号。
recv
- 为主机提供一个空缓冲区,以填充传输的数据。
recv-done
- 向主机发出已接收数据的信号。
当 send
操作发生时,集合会启动;当发生匹配的 recv-done
操作时,集合会完成。
空闲时间
衡量集合能够发送和接收数据的时间。这不包括 send
、send-done
、recv
或 recv-done
操作。例如,假设存在以下时间轴:
在此示例中,空闲时间的计算方式如下:
空闲时间 = t1 + t2 + t3
增加空闲时间可降低集合的 TPU 发生停滞的可能性。您可以通过选择其他分片方法来增加空闲时间。
停滞时长
集合在 send、send-done、recv 和 recv-done 操作中花费的平均时长。请注意,这不包括传送数据所花费的时间。例如,假设存在以下时间轴:
在此示例中,停滞时长的计算方式如下:
停滞时长 = 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 服务器,然后前往性能分析标签页。
- 按汇总的总停滞时间对 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
操作的时长与空闲时间相比并不高,则可能表示存在硬件问题。