内存性能分析工具
您可以使用内存性能分析来直观地了解加速器随时间变化的内存用量。
支持的平台
TPU:受支持
GPU:受支持
使用内存性能分析工具
内存配置文件包含以下组成部分:
- 借助页面顶部的内存 ID 选择器,您可以重点关注连接到要分析的主机的某个不同加速器(在某些情况下甚至是主机内存)所附加的高带宽内存 (HBM)。
- “内存时间轴图”和“内存性能配置摘要”会捕获有关性能分析会话期间内存分配、取消分配和使用情况的概要信息,包括堆栈和堆的细分信息,以及碎片化的影响。
- “内存细分”表格提供了有关对内存用量贡献最大的框架级操作的信息。此外,还有一些操作级别的其他详细信息(例如形状、数据类型等),前提是编译器将这些信息提供给 XProf。该表会显示在性能分析时间范围内峰值使用量出现时这些详细信息,以便调试内存不足 (OOM) 情况。
- 分配和取消分配由 XLA 的运行时分配器管理(并添加到配置文件中),该分配器拥有整个 HBM 内存空间。
- 请注意,与 TPU 工作负载相比,内存配置文件通常更适合用于 GPU 性能分析。TPU 执行模型通常涉及 XLA 编译器进行大量预分配,而不是在模型训练或推理期间进行分配。因此,您经常会看到分配图表看起来像一条水平的平线;所有分配都可能发生在配置文件的开头(如果性能分析器在运行到该时间点时处于活动状态),因此很难看到。
- 内存配置文件摘要和内存时间轴图表中的碎片化指标(以百分比表示)有助于识别内存碎片化问题。碎片值较高表示虽然总可用内存可能足够,但内存不是连续的,因此大型分配请求可能会失败。
此工具与 Memory Viewer 工具之间的一些主要区别:
- Memory Viewer 是纯静态的,侧重于程序顺序;Memory Profile 则提供性能分析时间段内随时间变化的动态视图。
- Memory Viewer 会按 XLA 模块直观呈现内存分配;对于由多个 XLA 模块组成的工作负载,Memory Profile 会提供内存的全球视图。