希姆计算stc-vprof使用说明

版本历史

版本 作者 日期 说明
V1.2.0 希姆计算 2022-04-11 初始对外版本。

概述

stc-vprof(Stream Computing Visual Profiler)是希姆计算推出的可视化性能分析工具,您可以使用stc-vprof方便地加载目标程序获取性能分析结果,查看程序各阶段的耗时以及包含的指令等,并支持查看多个阶段的汇总数据、核函数并行度等信息。

前提条件

  • 服务器已安装JDK 11或以上版本。

  • 服务器已安装HPE V1.2.0或以上版本。

  • 服务器远程连接的方式支持显示图形界面。

启动stc-vprof

  1. 前往stc-vprof可执行文件所在的目录。

    $ cd /usr/local/hpe/bin
    
  2. 启动stc-vprof。

    $ stc-vprof
    

    您可以自定义stc-vprof的启动配置,配置文件为/<user_dir>/stcvprof/conf/stc-vprof.properties。默认启动配置如下:

    # 0:共享数据模式 1:独立数据模式
    LOAD_DATA_MODE=0
    # 0:手动调节GAP 1:自动调节GAP
    AUTO_DATA_GAP=1
    

分析目标程序

新建项目

  1. 在菜单栏选择File > New Project

  2. Command line with arguments右侧,单击open,然后选择目标程序。

  3. 选择目标程序后,Work directory右侧会自动填入目标程序所在的目录。

  4. 单击start

../_images/new-project.png

导入历史项目

  1. 在菜单栏选择File > Import Project

  2. 根据文件类型,打开目录选择文件。

    • /<user_dir>/stcvprof/conf/目录中的.properties文件是项目文件,选择对应的文件即可打开项目。

    • /<user_dir>/stcvprof/db/目录中的.db文件(数据库文件)或.json文件(符合Google Trace Event格式)是每次执行分析的历史数据,选择对应的文件即可查看历史数据。

../_images/import-project.png

查看分析结果

性能分析结果页面中展示了设备列表、时间轴图表、属性列表,如下所示:

../_images/analy-result.png

以查看tid_11778(kernel)为例:

  1. 在设备列表区域,选择cpu&npu profile > proess_11778 > tid_11778(kernel)

  2. 在时间轴图表区域,自动同步以浅蓝色高亮显示tid_11778(kernel)的时间轴,方便查看各阶段的耗时。

    支持高亮显示已选中的阶段、放大缩小时间轴范围等操作,以便更直观清晰地查看相关信息。详细的说明,请参见分析结果页面说明章节。以选中其中一个hello操作为例:

    ../_images/hello-timeline.png

  3. 在属性列表区域,自动同步显示已选中操作的各项属性,包括起始时间、结束时间、资源、指令等。

    ../_images/hello-attr.png

  4. 单击tid_11778(kernel)的父节点proess_11778,则收起其包含的节点,时间轴图表自动同步以浅蓝色高亮显示proess_11778的时间轴。

分析结果页面说明

设备列表

设备列表中列出了运行程序时的进程和设备信息。您可以选择节点,然后在时间轴图表、属性列表中查看相应的分析结果。

以下图为例,设备列表所包含节点的含义为:

  • tid_11778:主机端Host CPU Trace。

  • stream_0(cluster_0):执行核函数时所在的流。

  • tid_11778(kernel):核函数。

  • npc_0~npc_7:在设备端使用的NPC。对STCP920,每个cluster包含8个NPC。

../_images/dev-list.png

时间轴图表

时间轴图表中显示了运行程序时各阶段的耗时等信息。您可以选择图形bar查看详细信息,同时支持放缩图形bar、多选、查看核函数并行度等操作。选择图形后会以橘黄色高亮显示该阶段,并在属性列表中显示其属性信息。

放缩图形bar

支持针对单个bar和多个bar进行操作,放缩bar后可以拖动下方滚动条查看各时间范围内的bar。

  • 单个bar:将鼠标悬浮在待放缩的图形上,滚轮上滚放大图形,滚轮下滚缩小图形,时间轴会同步按比例放缩。时间轴范围支持纳秒~小时。

    ../_images/timeline-single-bar.png

  • 多个bar:拖动鼠标框选多个bar即可同时放大范围内的bar。

    ../_images/timeline-multi-bars.png

查看核函数并行度

核函数并行可以加快处理效率,stc-vprof支持支持查看核函数的并行度。步骤如下:

  1. 右击核函数线程(以tid_11778(kernel)为例)所在行,然后单击NPC PAL

    ../_images/npc-pal-menu.png

  2. 查看并行度柱形图。

    柱形图中列出了每个NPC上计算的并行度,并支持切换以下模式:

    • PAL(ALL):显示MTE、MME、VME共同执行的并行度百分比。

    • PAL(MTE/MME):显示MTE、MME共同执行的并行度百分比。

    • PAL(MTE/VME):显示MTE、VME共同执行的并行度百分比。

    • PAL(VME/MME):显示MME、VME共同执行的并行度百分比。

      ../_images/pal-result1.png

      ../_images/pal-result2.png

属性列表

属性列表中列出了所选bar中包括的操作。单击某个操作,右侧会显示各项属性,包括起始时间、结束时间、资源、指令等。

../_images/attr-list.png

工具栏

在时间轴图表的工具栏中提供了检索关键字、调节行间距、框选多节点功能。

关键字检索

支持通过关键字检索快速定位模块。

  1. 在搜索框中输入关键字,然后单击search

    查找到行或bar后会高亮显示,时间轴图表和属性列表也会同步显示其信息。

    说明:关键字大小写敏感,支持模糊查询。

  2. 查看该模块的性能分析结果。

    ../_images/search-keyword.png

  3. 单击 <> 切换至其他下一个搜索结果。

调节行间距

拖动GAP右侧的滑块即可调节行间距。

../_images/adjust-gap.png

框选多个bar

支持框选多个bar以查看汇总的耗时以及执行次数。

  1. 选中Multiple。

  2. 拖动鼠标框选多个bar。

  3. 查看多个bar的汇总信息。

示例图如下,蓝色表示选中的时间轴,属性列表中为所选时间轴的执行时长、平均执行时长、执行次数。

../_images/select-multi-bars.png

常见问题

  • 单台服务器同时只允许启动一个界面。如果已启动了stc-vprof,再次尝试启动时会出现以下报错。

    ../_images/error-one-interface-only.png