面向PyTorch用户的开源性能分析和可视化Python库HTA

原文链接:Holistic Trace Analysis — Holistic Trace Analysis 0.2.0 documentation

介绍

1、什么是HTA

整体跟踪分析 = Holistic Trace Analysis = HTA

整体跟踪分析是一个面向PyTorch用户的开源性能分析和可视化Python库。HTA将PyTorch Profiler收集的Kineto跟踪作为输入,并提升跟踪中包含的性能信息。

ML研究人员和系统工程师经常难以在计算上扩展他们的模型,因为他们不知道其工作负载中的性能瓶颈。由于缺乏“底层”可见性,作业所请求的资源(例如GPU、内存)通常与实际所需的资源不一致。

HTA的目标是帮助工程师和研究人员从硬件堆栈中获得最佳性能。要实现这一点,必须了解分布式训练和推理工作负载的资源利用率和瓶颈。

在文章的后面出现 rank 一词,这个是在HTA文档中经常出现的词,因为HTA用在分布式训练和推理工作中,所以我认为这个单词表示的是对不同的硬件路径进行标记。例如,你现在使用8个Nvidia的A100去训练模型,则Pytorch Profiler会分别记录这8个硬件的性能数据,然后在输出的JSON文件中会出现相关的rank数据。

2、HTA的特点

为了帮助进行性能调试,HTA提供了以下功能

  1. 时间细分:按单个节点和所有等级上计算、通信、内存事件和空闲时间所花费的时间细分GPU时间。

  2. 空闲时间细分:将GPU空闲时间细分为等待主机、等待另一个内核或归因于未知原因。

  3. 内核细分:查找每个等级上持续时间最长的内核。

  4. 内核持续时间分布:不同等级上最长内核所用平均时间的分布。

  5. 通信计算重叠:计算通信与计算重叠的时间百分比。

  6. CUDA内核启动统计:持续时间非常短、持续时间很长和启动时间过长的GPU内核的分布。

  7. 增强计数器(内存复制带宽、队列长度):增强跟踪文件,可深入了解内存复制带宽和每个CUDA流上的未完成操作数量。

  8. 频繁的CUDA内核模式:查找任何给定PyTorch或用户定义运算符最常启动的CUDA内核。

  9. 跟踪差异:用于识别和可视化跟踪之间差异的跟踪比较工具。

  10. CUPTI计数器分析:一种用于解释GPU性能计数器的实验性API。它将内核的性能测量结果归因于PyTorch运算符,并有助于内核优化和屋顶线分析。

  11. 轻量级关键路径分析:一种用于计算跟踪中关键路径的实验性API。关键路径可以帮助人们了解应用程序是CPU受限、GPU计算受限还是通信受限。该路径可以在原始轨迹上可视化,也可以作为有向无环图对象进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值