昇腾社区首页
中文
注册

使用TensorBoard

使用TensorBoard工具进行性能数据分析。

可使用以下步骤安装并启动TensorBoard工具,或参见《PyTorch Profiler TensorBoard NPU Plugin》。

  1. 安装依赖。
    pip3 install pandas==1.0.0
    pip3 install tensorboard==2.11.0

    要求pandas >= 1.0.0,tensorboard >= 2.11.0。

  2. 下载TensorBoard工具并安装。
    pip3 install torch_tb_profiler_ascend-0.4.0-py3-none-any.whl
  3. 查看是否安装成功。
    pip3 list | grep torch-tb
    显示如下信息表示安装成功。
    torch-tb-profiler-ascend 0.4.0
  4. 启动工具。
    tensorboard --logdir=./result

    --logdir指定待解析的性能数据目录。

    若是远程服务器启动TensorBoard想要在本机查看性能数据,需使用--bind_all参数。

    tensorboard  --logdir=./result --bind_all
    回显如下:
    I0630 14:08:16.533923 281470215713104 plugin.py:454] Monitor runs begin
    I0630 14:08:16.536316 281470215713104 plugin.py:470] Find run directory /home/pzr
    I0630 14:08:16.539052 281470299730256 plugin.py:552] Load run ..
    I0630 14:08:16.561225 281470299730256 loader.py:73] started all processing
    TensorBoard 2.11.0 at http://localhost:6006/ (Press CTRL+C to quit)
    I0630 14:08:43.961050 281470299730256 plugin.py:556] Run .. loaded
    I0630 14:08:43.961973 281470257721680 plugin.py:493] Add run ..
  5. 查看性能数据。

    将回显中加粗的URL复制,并使用浏览器访问(若为远端服务器则需要将域名“localhost”替换为远端服务器的IP),进入TensorBoard工具界面。

    图1 工具页面

    工具界面通过左侧侧边栏进行视图切换:

    • Runs(红框①)用于切换展示的性能数据文件。
    • Views(红框②)用于切换右侧性能数据详细视图,TensorBoard主要通过该功能进行性能数据分析,详细分析方法请参见TensorBoard视图
    • Workers(红框③)、Spans(红框④)用于切换不同进程和不同时间产生的数据。

TensorBoard视图

TensorBoard工具主要通过Trace View、Kernel View、Operator View展示PyTorch性能数据:

  • Trace View:主要展示从上层应用下发到下层NPU算子的过程中所有算子的执行耗时以及上下层算子直接的调用关系,因此,该视图主要通过观察各个层级上的耗时长短、间隙等判断对应组件、算子是否存在性能问题。
  • Kernel View:包含在NPU上执行的所有算子的信息,主要用于进一步确认高耗时算子。
  • Operator View:统计PyTorch算子在Host侧(下发)和Device侧(执行)的耗时,同样通过耗时判断性能问题,并且可以通过Call stack找到该算子对应的底层调用关系从而定位到具体代码行。

详细示例请参见性能分析(Trace View)性能分析(Kernel View)性能分析(Operator View)

性能分析(Trace View)

图2 trace_view

图 trace_view所示,trace数据主要展示如下区域:

  • 区域1:应用层数据,包含上层应用算子的耗时信息。
  • 区域2:CANN层数据,主要包含AscendCL、Runtime等组件以及Node(算子)的耗时数据。
  • 区域3:底层NPU数据,,主要包含Ascend Hardware下各个Stream任务流的耗时数据和迭代记录数据、HCCL和Overlap Analysis通信数据以及其他昇腾AI处理器系统数据。
  • 区域4:展示trace中各算子、接口的详细信息(单击各个trace事件时展示吗,即图中的色块)。

性能分析(Kernel View)

Kernel View为kernel_details.csv文件的TensorBoard可视化呈现,包含在NPU上执行的所有算子的信息,如图3所示。

左侧饼图统计不同名称的kernel总耗时占比;右侧饼图统计在不同加速核上执行时间的占比;下方列表Group By选择Statistic时,展示按kernel的名称汇总统计的执行信息。

图3 Kernel View

列表Group By选择All时,展示所有kerenl执行的明细信息,如图4所示。

图4 Group By选择All

可以根据左侧饼图查看耗时多的算子,根据下方列表的Duration排序确认高耗时的算子。

性能分析(Operator View)

Operator View为operator_details.csv文件的TensorBoard可视化呈现,是统计PyTorch算子在Host侧(下发)和Device侧(执行)的耗时,如图5所示。

  • Device Self Duration饼图统计由该算子直接下发,在Device上执行的总耗时。
  • Device Total Duration饼图统计由该算子及其内部调用的其他算子下发,在Device上执行的总耗时。
  • Host Self Duration饼图统计该算子在Host上执行的总耗时,不包括内部调用的其他算子。
  • Host Total Duration饼图统计该算子及其内部调用的其他算子在Host上执行的总耗时。
图5 Operator View

下方列表为上方饼图的明细呈现,如图6所示。

图6 Group By选择Operator

Group By选择Operator+Input Shape时,列表展示算子的输入Shape信息,如图7所示。

图7 Group By选择Operator+Input Shape