1. 前言¶
1.1. 版权声明¶
以下条款适用于所有访问燧原产品和服务相关文档的用户或阅读者(以下统称“您”),本文档包括本文档提供的信息属于上海燧原科技股份有限公司和/或其子公司(以下统称“燧原”)或其许可方所有,且燧原保留不经通知随时对本文档信息或对本文档所述任何产品和服务做出修改的权利。本文档所含信息和本文档所引用燧原其他信息均“按原样”提供。燧原不担保信息、文本、图案、链接或本文档内所含其他项目的准确性或完整性。燧原不对本文档所述产品的可销售性、所有权、不侵犯知识产权、准确性、完整性、稳定性或特定用途适用性做任何暗示担保、保证。燧原可不经通知随时对本文档或本文档所述产品或服务做出更改,但不承诺因此更新本文档。
在任何情况下,燧原不对因使用或未使用本文档而导致的任何损害(包括但不限于利润损失、业务中断和信息损失等损害)承担任何责任。除非另行书面同意,燧原不对本文档承担任何责任,不论该责任因任何原因而产生或基于任何侵权理论。
本文档所列的规格参数、性能数据和等级基于特定芯片或计算机系统或组件测试所得。经该等测试,本文档所示结果反映了燧原产品在上述测试环境中的性能表现。测试系统配置及软硬件版本、环境变量等的任何变化都会影响产品或服务的实际性能,如产品或服务的实际效果与本文档描述存在差异的,均属正常现象。燧原不担保测试本文档中每种产品或服务的所有参数的准确性和稳定性。您自行承担对本文档中产品或服务是否适合并适用于您计划的应用进行评估以及进行必要测试的责任。您的使用环境、系统配置、产品设计等特性可能会影响燧原产品或服务的质量和可靠性并导致超出本文档范围的额外或不同的情况和/或要求,燧原对此不做任何担保或承担任何责任。
燧原®、Enflame ®和本文档中显示的其他所有商标、标志是上海燧原科技股份有限公司或其许可方申请和/或注册的商标。本文档并未明示或暗示地授予您任何专利、版权、商标、集成电路布图设计、商业秘密或任何其他燧原或其许可方知识产权的权利或许可。
本文档为燧原或其许可方版权所有并受全世界版权法律和条约条款的保护。未经燧原或其许可方的事先书面许可,任何人不可以任何方式复制、修改、出版、上传、发布、传输或分发本文档。为免疑义,除了允许您按照本文档要求使用本文档相关信息外,燧原或其许可方不授予其他任何明示或暗示的权利或许可。
本文档可能保留有与第三方网站或网址的链接,访问这些链接将由您自己作出决定,燧原并不保证这些链接上所提供的任何信息、数据、观点、图片、陈述或建议的准确性、完整性、充分性和可靠性。燧原提供这些链接仅仅在于提供方便,并不表示燧原对这些信息的认可和推荐,也不是用于宣传或广告目的。
您同意在使用本文档及其内容时,遵守国家法律法规、社会公共道德。您不得利用本文档及其内容从事制作、查阅、复制和传播任何违法、侵犯他人权益等扰乱社会秩序、破坏社会稳定的行为,亦不得利用本文档及其内容从事任何危害或试图危害计算机系统及网络安全的活动。
您同意,与您访问或使用本文档相关的所有事项,应根据中华人民共和国法律解释、理解和管辖。您同意,中国上海市有管辖权的法院具有相关的管辖权。
燧原对本文档享有最终解释权。
1.2. 文档综述¶
该文档是对于TopsVisualProfiler软件的用户使用说明,用户可以通过该手册,安装和快速使用,也可以根据手册,做进一步的开发。
TopsVisualProfiler提供的统一的时间线视图,可以清楚的分析CPU和GCU发生的活动,包括GCU Kernel、IO,CPU Runtime API,同时为了方便分析Runtime时刻hotspot函数的行为,支持CPU端软件调用栈可视化分析。
TopsVisualProfiler也内置了一个数据比较器,方便用户在不同Profile数据内进行性能数据对比 。
重构后的新一代性能分析可视化工具TopsVisualProfiler支持通过本地和远程两种方式进行性能分析,极大方便用户的使用。
1.3. 专有名词解释¶
名称 |
说明 |
---|---|
GCU |
General Compute Unit,通用计算单元。。 |
DTE |
Data Transformation Engine,数据转换引擎。 |
SIP |
可扩展的智能处理器,GCU 计算单元 |
CQM |
Command Queue Micro-Control-Unit, GCU 内部控制处理器 |
TS |
Tops Scheduler,GCU 内部控制处理器 |
Profiling Meta |
在软件栈执行过程中,编译期搜集的数据,主要是指在 Factor/LLIR 两层搜集的 Profiling 行为的描述信息 |
Profiling Data |
在软件栈执行过程中,编译期搜集的数据,主要是指在通过硬件回报的 Profiling 行为的时间信息 |
2. 原理说明¶
2.1. 软件的作用和意义¶
TopsVisualProfiler是一款可视化的性能分析工具,可以通过topsporf收集模型的profiler data,然后查看Timeline,和模型的性能对比等情况。(下图为TopsVisualProfiler处于软件栈中的位置)

图 2.1.2 软件栈结构¶
2.2. 软件实现的原理¶
依赖Topsprof产生的vpd文件作为分析的依据。
可以使用ssh方式调用topsprof进行远程profiler分析。
注意:TopsVisualProfiler可用的vpd需要在topsprof收集时加入–export-visual-profiler参数。
3. 安装使用说明¶
3.1. 安装方式说明¶
TopsVisualprofiler提供4个平台的安装包(win10, ubuntu, macos, centos/RHEL)。 1. Linux系统的安装包在软件栈TopsRider.run包或者TopsPlatform.run包中。 2. Windows和MacOS系统的安装包以独立的zip包一起提供。
Windows安装(exe)¶
首先找到TopsVisualProfiler-{version_number}_win64.zip包,然后解压找到exe安装程序双击。
选择安装语言。

图 3.1.4 安装语言¶
安装向导。

图 3.1.5 安装向导¶
安装许可协议。查看许可协议接受后进行下一步操作。
安装组件。

图 3.1.6 安装组件¶
选择安装位置。

图 3.1.7 安装位置¶
7.安装中。

图 3.1.8 安装过程¶
8.安装完毕运行TopsVisualProfiler程序

图 3.1.9 安装结束¶
或者可以通过桌面上创建的快捷方式启动。

图 3.1.10 快捷方式¶
Ubuntu安装(deb)¶
找到TopsVisualProfiler-{version_number}-amd64.deb。
打开终端,使用sudo dpkg -i TopsVisualProfiler-{version_number}-amd64.deb。
安装后可以在终端使用,TopsVisualProfiler-{version_number}启动或者在桌面找到快捷方式启动。
Centos/RHEL安装(rpm)¶
找到TopsVisualProfiler-{version_number}.x86_64.rpm。
打开终端,使用sudo rpm -ivh TopsVisualProfiler-{version_number}.x86_64.rpm。
安装后可以在终端使用,TopsVisualProfiler-{version_number}启动或者在桌面找到快捷方式启动。
Mac OS安装(zip)¶
找到TopsVisualProfiler-{version_number}.macosx-cocoa.amd64.zip。
解压zip包,找到TopsVisualProfiler.app双击即可启动。
3.2. 卸载方式说明¶
Windows卸载(exe)¶
打开控制面板找到程序和功能选项。

图 3.2.1 控制面板¶
找到TopsVisualProfiler右键卸载。

图 3.2.2 卸载程序¶
确认卸载。

图 3.2.3 确认卸载¶
Ubuntu卸载(deb)¶
在终端中输入sudo dpkg -r TopsVisualProfiler-xxx选择需要卸载的版本。
确认后卸载。
Centos/RHEL卸载(rpm)¶
在终端中输入sudo rpm -e TopsVisualProfiler-xxx选择需要卸载的版本。
确认后卸载。
Mac OS卸载(zip)¶
找到TopsVisualProfiler-{version_number}-macosx.cocoa.x86_64.zip包和TopsVisualProfiler.app。
直接删除即可。
3.3. 版本升降级¶
目前只有rpm包可以提供升级功能,直接安装最新rpm即可。
其他系统升降级需要先删除旧版本后在安装新版本。
4. 用户使用说明¶
4.1. 快速开始¶
TopsVisualProfiler可以通过配置,调用topsprof命令profiling data。可以本地Profiling也可以远程Profiling。
注意:
因为Topsrider软件栈不支持windows系统,所以windows版TopsVisualProfiler只能远程profiling。
准备阶段¶
准备Profiling环境,硬件需要GCU卡(S60…)以及Topsrider软件栈。(参考对应版本的软件栈安装说明)
安装运行依赖¶
参考对应版本的软件栈安装说明文档。
安装topsprof¶
参考topsprof文档安装。
配置阶段¶
启动TopsVisualProfiler。
点击工具栏中的概要分析配置按钮。

图 4.1.1 配置¶
在概要分析配置对话框里面选择GCU上的分析器右键,新建配置。(或者双击)

图 4.1.2 概要分析配置¶
添加一个远程Host。(如果是带有GCU卡的Linux系统,可以选择Local方式)

图 4.1.3 添加远程Host¶
配置Host信息后确定。(root用户和非root用户都可以运行远程profiling。非root用户,可以选择是否使用sudo权限运行。如果需要可以输入sudo密码后运行)

图 4.1.4 配置主机信息¶
注意:
如果远程连接docker需要调整连接的端口,22是默认的host端口。需要改为docker配置的映射端口。(可以参考FAQ中FAQ)

图 4.1.5 配置docker端口¶
配置运行的python模型和工作目录。(分别点击对应的浏览按钮来选择需要的python模型和工作目录)

图 4.1.6 选择远程资源¶
配置python模型参数,可以直接复制参数到程序参数输入框中,或者点击后面的设置按钮打开参数对话框输入。(对话框中每一行为一个参数,回车换行)

图 4.1.7 python程序参数¶
配置环境变量,可以直接复制环境变量参数到环境变量输入框中,或者点击后面的设置按钮打开环境变量对话框输入。

图 4.1.8 环境变量¶
注意:
TopsRider软件栈不支持windows系统,所以windows版TopsVisualProfiler只能远程profiling。(参考对应版本的软件栈安装说明)
配置cpu相关profiling,点击CPU选项后配置。

图 4.1.9 cpu选项¶
注意:
内核空间调用堆栈的过滤类型分为4中,current,kmd,all和自定义的类型。(具体参考topsprof手册)
配置Timeline选项(user activities),点击TimeLine选项后。点击更新按钮可以获取activities列表。(默认开启General/Operator)配置好的内容可以点击导出配置,选择需要保存的目录和名称(方便在topsprof中使用配置文件)。

图 4.1.10 Timeline选项¶
注意:
应用于主机是把当前的配置复制到其他的主机中。
配置Trace选项,点击Trace选项Tab后。点击更新按钮可以获取可配置的Trace Domain名称。

图 4.1.11 Trace选项¶
注意:
默认会选中topstx和runtime
如果用户自定义的Domain,可以在自定义输入框中输入名称(多个Domain用,分隔。例:user_domain1,user_domain2)
全部配置完后点击应用按钮保存配置,在点击概要分析即可运行profiling。

图 4.1.12 保存配置¶
注意:
Profiler配置中,CPU选项,Trace选项,Timeline选项中的内容至少配置1项,否则无法开启Profiler。
分布式场景配置¶
1.在分析页面需要配置分布式场景的参数,目前支持ddp和mpirun的方式。

图 4.1.13 mpirun_config¶

图 4.1.14 mpirun_config¶
分布式参数:mpirun方式mpirun [mpirun-arguments] 。ddp方式python -m torch.distributed.launch –no_python [ddp-arguments]。(根据实际场景填写对应的分布式参数)
python解释器:运行的application为py模型需要勾选python解释器,运行的application为可执行程序不需要勾选python解释器。
程序文件:点击浏览按钮选择需要profiler的文件。
工作目录:点击浏览按钮选择需要的工作目录。
程序参数:添加profiler需要的程序参数。(可选)
环境变量:添加profiler需要的环境变量。(可选)
2.在分布式选项页面,勾选需要的主机。

图 4.1.15 mpirun_ops¶
注意:
分布式环境必须至少选择一个主机,并且需要包含分析页面中的主机,不然无法启动profiler。
这里的device状态如果是true表示前面设置的device选项是生效的。如果这里是false表示前面设置的device选项全部不生效,相当于关闭了这个device。
Profiling阶段¶
启动profiling后,可以通过控制台视图来查看正在运行的模型。
如果出现异常和错误也会在控制台中显示。
profiling正常结束后,会下载vpd文件到TopsVisualProfiler中并打开SystemInfo视图。
查看Profiler结果¶
profiling结束后会根据配置的profiling名称创建一个目录,在分析报告视图中展示。
点开目录,找到Timeline节点双击打开。
打开后的Timeline视图视图就包含了profiling的数据。
4.2. 使用工具栏快速Profiling¶
在配置好Profiler后,或者已经运行过Profiling后。可以在工具栏的Profiler下拉框中选择存在的Profiler配置。

图 4.2.1 选择Profiler配置¶
选择好需要启动的Profiler配置后,如果配置可以启动那么工具栏中的启动按钮会呈现绿色的可用状态。点击即可启动Profiler,如果Profiler的配置有问题无法启动则启动按钮会被置灰无法使用,需要配置好Profiler配置后再次启动。

图 4.2.2 Profiler可用¶

图 4.2.3 Profiler禁用¶
点击启动按钮后,会弹出一个概览窗口里面会显示这次Profiler的信息。点击确定开始Profiler,点击取消关闭窗口不启动Profiler。

图 4.2.4 Profiler概览¶
启动Profiler后,启动按钮会变成红色的停止按钮。

图 4.2.5 Profiler运行中¶
在Profiling的过程中,可以点击红色的停止按钮,提前完成Profiler过程。点击停止按钮后会弹出一个对话框询问是否保存Profiler的数据,如果选择保持数据,那么会马上停止程序运行,并收集Profiler数据产生出vpd文件。然后,下载回TopsVisualProfiler中显示。反之,会马上停止程序运行,丢掉Profiler数据。

图 4.2.6 停止Profiler¶
如果启动Profiler出错,会重置工具栏的状态。并且提示出错的信息,在控制台视图中也会有详细的日志输出。

图 4.2.7 Profiler出错¶
在Profiling的过程中,如果什么都不做等待程序执行完也会收集Profiler数据并下载回TopsVisualProfiler显示。

图 4.2.8 Profiler数据下载¶
下载完成后,会自动打开Systeminfo文件。
4.3. 打开Timeline文件¶
打开本地Timeline文件¶
使用topsprof命令生成xxxx.vpd文件。(参考topsprof文档)
点击TopsVisualProfiler左上角的全局菜单->打开Timeline文件。

图 4.3.1 打开Timeline文件¶
选择一个vpd格式的文件后点击确定。
过滤Timeline内容,选择需要显示的内容后点击打开Timeline按钮。

图 4.3.2 过滤Timeline¶
如果选择取消后续可以在分析报告视图中双击Timeline打开视图。也可以双击TimelineFilter重新配置过滤内容。
打开远程Timeline文件¶
点击TopsVisualProfiler左上角的全局菜单->打开远程Timeline文件。

图 4.3.3 打开远程Timeline文件¶
选择或者新建一个远程主机。(配置阶段)

点击浏览按钮选择远程的Timeline文件路径后点击确定。
4.4. 拖拽Timeline文件快速打开¶
1.在文件目录中找到需要打开的vpd文件。
2.鼠标左键拖拽到TopsVisualProfiler的编辑区域中。

图 4.4.1 拖拽vpd文件打开Timeline¶
注意:
不能同时拖拽多个vpd文件,只支持单个vpd的拖拽打开。
拖拽和本地打开vpd文件会默认弹出过滤对话框,如果不想每次都打开可以在首选项配置中勾选始终关闭弹出对话框。
4.5. VPD文件的兼容性¶
从v2.5版本开始,TopsVisualProfiler可以兼容低版本的vpd文件,用户配置好Linux服务器后默认打开时会把低版本的vpd转到当前版本后打开。
配置转换服务器¶
在主菜单的窗口->首选项菜单中可以看见配置页面,在这里可以选择已有的host,或者点击
点击+号按钮添加一个新的host。

图 4.5.1 配置vpd转换服务器¶
如果没有配置转换服务器,当遇见打开低版本的vpd时,会弹出一个转换vpd的对话框提示用户是否需要选择一个远程服务器来转换vpd,如果选择远程服务器后会默认设置首选项中的配置,并且下次不会在弹出这个对话框(默认使用这个服务器来转换vpd)。否则,会提示用户vpd版本较低需要手动转换。

图 4.5.2 vpd转换对话框¶
4.6. 打开VPD文件所在位置¶
1.如果想找到之前打开的timeline对应的vpd文件,可以在分析报告中找到对应的目录。
2.右键目录,在菜单中选择打开VPD文件目录。即可打开VPD所在的目录。

图 4.6.1 打开VPD文件目录¶
4.7. 过滤Timeline文件¶
1.在需要打开的timeline文件同级下找到TimelineFilter文件双击打开。
2.在打开的编辑器中根据过滤条件选择需要过滤的内容。(可以根据时间和profiler的)

图 4.7.1 过滤Timeline文件¶
3.重新打开timeline文件,即可根据过滤条件显示过滤内容。
说明:
可以手动输入开始时间和结束时间来过滤整个timeline的内容。
如果想过滤GCU的内容,可以通过滑动条来快速获取GCU的结束时间。(按照GCU时间的百分比计算结束时间)
如果想只看算子和相关的dte部分数据,可以通过GCU Kernel的名称来过滤。
如果想根据结果的展示结构过滤可以在最下面的属性结构中勾选需要显示的内容即可。
5. TopsVisualProfiler主功能区域¶

图 5.1 Menu¶
TopsVisualProfiler中的顶部工具栏一共分为3个区域:全局菜单,运行功能,系统功能区域。
5.1. 全局菜单¶

图 5.1.2 文件菜单¶
包括:打开Timeline文件,打开远程Timeline文件,显示视图3个菜单。其中显示视图还包括4个子菜单:事件视图,选择视图,算子比较视图,调用关系视图。
5.2. 运行功能¶

图 5.2.1 Run菜单¶
分析列表:所有的分析配置列表。
开始/结束分析:开始/结束工具栏中选中的分析。
分析配置:打开分析配置窗口。
5.3. 系统功能¶

图 5.3.1 窗口菜单¶
Timeline快捷键:显示timeline中的快捷键。
帮助文档:TopsVIsualProfiler的帮助文档。
Timeline布局:快捷切换到Timeline的布局。
Profiler布局:快捷切换到Profiler的布局。
6. TopsVisualProfiler侧边栏¶

图 6.1 工具栏¶
打开/隐藏分析报告:打开/隐藏分析报告视图。
打开/隐藏控制台:打开/隐藏控制台视图。
设置包含重置布局,首选项设置和关于。
重置布局:重置到最初默认的布局。
首选项:配置程序相关属性。
关于:程序版本的说明。
7. TopsVisualProfiler视图¶
TopsVisualProfiler可视化分析工具包含多种视图显示不同的数据结果,下面介绍每个视图的功能和用途。
7.1. Timeline视图¶
Timeline视图显示分析应用程序时发生的CPU和GCU活动。可以在左侧分析报告导航视图中同时打开多个时间线。下图显示GCU应用程序的时间线视图。
Timeline视图介绍¶
在视图的顶部有一个水平标尺,显示从应用程序分析开始所用的时间。在视图的左侧是一个垂直标尺,它描述了时间轴的每个水平行所显示的内容,并包含时间轴的各种控件。时间线视图由时间线行组成。每一行显示间隔,表示与行类型对应的活动的开始和结束时间。例如,表示内核的时间轴行具有表示该内核执行的开始和结束时间的间隔。在某些情况下(如下所述),时间线行可以显示活动的多个子行。当存在重叠活动时,将使用子行。这些子行根据活动重叠的程度根据需要动态创建。

图 7.1.1 Timeline介绍¶
Timeline视图工具栏¶

图 7.1.2 工具栏¶
图标 |
名称 |
功能 |
使用截图 |
快捷键 |
---|---|---|---|---|
选择模式 |
鼠标设置为选择模式,单击为选中,拖拽为框选 |
截图1 |
timeline视图获得焦点的情况下,键盘数字键1 |
|
时间段模式 |
鼠标设置为时间测量模式,单击无效,拖拽为测量框选的时间。 |
截图2 |
timeline视图获得焦点的情况下,键盘数字键2. esc键取消操作。 |
|
放大 |
放大显示timeline视图 |
键盘按键w,键盘按键shift + w,更快速的放大 |
||
缩小 |
缩小显示timeline视图 |
键盘按键s,键盘按键shift + s,更快速的缩小 |
||
向左移动 |
timeline 向右移动,看到更早发生的事件 |
键盘按键a,键盘按键shift + a,更快速的向右移动 |
||
向右移动 |
timeline 向左移动,看到更晚发生的事件 |
键盘按键d,键盘按键shift + d,更快速的向左移动 |
||
自适应大小 |
将timeline缩放到所有事件的概览图 |
截图3 |
键盘按键r |
|
折叠 |
将所有行折叠 |
键盘按键c |
||
展开 |
将所有行展开 |
键盘按键e |
||
搜索框 |
搜索并选中event |
|||
前一个事件 |
显示搜索到到上一个event的详细信息,并跳转到timeline对应位置 |
|||
后一个事件 |
显示搜索到到下一个event的详细信息,并跳转到timeline对应位置 |
|||
转到选定的事件 |
跳转到选定的event |
|||
显示选中事件的时间 |
测量选中的events的持续时间 |
|||
用Cycle显示时间 |
转换x轴刻度为cycle(默认为时间单位) |
键盘按键tab |
||
时间过滤器 |
使用开始时间和结束时间过滤Timeline内容 |
截图4 |
键盘按键x |
|
打开vpd位置 |
打开当前timeline对应的vpd文件目录 |
键盘按键v |
截图1:

图 7.1.3 截图1¶
截图2:

图 7.1.4 截图2¶
截图3:

图 7.1.5 截图3¶
注意:
timeline中的放大和缩小功能,是依据鼠标所在的位置作为放和缩小的参考位置。
GCU节点的括号中显示的内容为pcie和产品型号
在选择模式下,鼠标移动和悬停会有对应的虚线标尺并显示当前的时间
截图4:

图 7.1.6 截图4¶
根据开始时间和结束时间过滤timeline的内容
鼠标悬停虚线标尺:
在选择模式下,鼠标移动和悬停时会有一个timeline自上而下的标尺。标尺会显示出当前的时间。

图 7.1.7 截图4¶
更多快捷键:
可以参考顶部工具栏菜单中的Timeline中快捷键来查看。

图 7.1.8 截图4¶
具体内容如下:

图 7.1.9 截图4¶
注意:
快捷键g显示相关事件目前只支持memcpy,API Trace,GCU Kernel类型时可以生效。
Memcpy:相同的进程id,相同的enginetype和engineid的所有events。
API Trace:相同的进程id,相同父节点下同名称的所有events。
GCU Kernel:相同的进程id,类型为Memcpy的并且KernelId和GCU KernelId相同的所有events。
Timeline搜索功能¶
同过输入关键字或条件表达式可以在timeline中搜索到匹配的Event,结果显示在选择视图中。
普通搜索¶
直接输入要匹配的内容。会搜索Event所有属性中包含输入关键词的Events,不区分大小写。

图 7.1.10 普通搜索¶
高级搜索¶
开头输入’:’ 冒号来启用高级搜索功能 ,在冒号之后可以输入条件表达式。
表达式规则:【event属性的名字】=【要搜索的关键字】and或者or 【event属性的名字】=【要搜索的关键字】等。同样支持模糊匹配,不区分大小写。
例如:搜索packet_id包含311085 关键字并且context_id包含0关键字的Events。表达式如下:
:packet_id=10 and kernel_id=10

图 7.1.11 高级搜索¶
注意:
关于event属性的名字可以从事件视图中All Property中的Name字段找到。
要搜索的内容不能为空,例如:a=,这种方式要搜索的内容为空会报错.正确的方式为key=value方式。
在使用高级搜索的时候,如果需要搜索的内容包含特殊的字符(例如 :空格| ]),需要把查询的内容放入双引号内。需要注意的是双引号的大小写。例如(:name=“Debug Packet”,:args=“cpu:0”,:name=“llvm::legacy::FunctionPassManagerImpl::run”)
在使用高级搜索的时候,如果需要搜索的内容包含换行符可能会导致无法换行丢失查询条件。建议不要带有换行符号。
Timeline的右键菜单¶
包含3个功能:折叠所有子节点,展开所有子节点,显示所有子节点事件。

图 7.1.12 右键菜单¶
折叠所有子节点¶
在已经展开的行上使用鼠标右键,选择菜单折叠所有的子节点 。

图 7.1.13 折叠所有子节点¶
折叠后的效果。

图 7.1.14 折叠效果¶
展开所有子节点¶
在可以展开的行上使用鼠标右键,选择菜单折叠所有的子节点 。

图 7.1.15 展开所有子节点¶
展开后的效果。

图 7.1.16 展开效果¶
显示所有子节点事件¶
1.选中一个根节点使用鼠标右键,选择菜单显示所有子节点事件 。

图 7.1.17 展开效果¶
2.选中的根节点下所有的事件会全部显示在选择视图中。

图 7.1.18 展开效果¶
CPU利用率折线图配置¶
服务器上可能有多个CPU,用户可以选择显示那些CPU的使用率。
7.2. 选择视图¶
显示所有选中的event的统计信息。 当使用框选或者搜索功能后,结果会显示在Selection View中,相同类型的Event分为一组,以树形结构展示。
选择视图介绍¶

图 7.2.1 选择视图¶
详细信息:
列名 |
说明 |
---|---|
名称 |
Event的名字 |
开始时间 |
Event开始的时间 |
持续时间 |
Event执行的时间 |
百分比 |
占用所有选中Event时间的百分比 |
平均时间 |
同一种Event的平均时间 |
最大持续时间 |
同一种Event中最大耗时的时间 |
最小持续时间 |
同一种Event中最小耗时的时间 |
数量 |
同一种Event出现的次数 |
基本信息:
名称 |
说明 |
---|---|
开始时间 |
所有选中Event的最小时间 |
结束时间 |
所有选中Event的最大时间 |
总时间 |
最大时间和最小时间的差 |
累加时间 |
总计中的持续时间即为所有的累加时间 |
平均时间 |
累加时间除以总数量 |
总数量 |
所有选中Event的数量 |
结果排序¶
点击表格的列头可以根据升序和降序排序结果。(切换不同的timeline会保存当前的排序状态。)
注意:
默认的排序规则为,父节点按照时间从大到小排序,分组节点从小到大,子节点按照开始时间从小到大排序。
结果查询¶
可以在查询框通过名称来查询对应的事件(按照正则模糊匹配)
导出CSV文件¶
点击表格上方的按钮,并填写保存的文件名即可。
过滤功能¶
过滤结果¶
点击表格上方的按钮,来打开选择过滤视图。 选择过滤视图用来过滤Selection视图中的内容 。 例如,在选择视行,找到在范围内的同一种类型的Event的统计信息 。不论选中的是根节点还是子节点,都会查找当前包含的所有相同的事件作为查询结果。

图 7.2.2 过滤视图¶
也可以通过最小和最大持续时间来过滤查询。

图 7.2.3 过滤结果¶
7.3. 事件视图¶
Event视图用来显示Timeline上的一个Event的详细信息。
事件视图介绍¶

图 7.3.1 事件视图¶
Timeline模式为Selection状态,使用鼠标选中一个Event(就是Timeline中的一个矩形元素)后详细信息回显示到Event视图。
复制功能,双击表格中任意单元格,进入只读模式,这时可用【ctrl-c】复制,或鼠标右键菜单复制。
显示信息说明。
常用的属性会直接显示,硬件属性会统一放在硬件节点下,剩下的属性则会放置到其他节点中。
在搜索框中可以输入关键字来搜索需要的内容。
属性 |
说明 |
---|---|
名称 |
Event的名称,如果是算子的话,就是算子名称,memory操作名称,等等。 |
持续时间 |
Event所用的时间 |
开始时间戳 |
Event开始的时间 |
结束时间戳 |
Event结束的时间 |
所有属性 |
Event相关的所有属性 |
7.4. 分析报告视图¶
TopsVisualProfiler中所有timeline数据,modelgraph数据,整体的导航视图。
分析报告视图介绍¶

图 7.4.1 分析报告视图¶
分析报告工具栏¶

图 7.4.2 工具栏¶
全部折叠 |
折叠所有分析报告中的节点 |
与编辑器连接 |
打开的编辑器窗口和分析报告中的节点相互关联高亮 |
分析报告菜单¶
名称 |
说明 |
---|---|
打开 |
打开选中文件 |
打开TopsTimeline文件 |
打开timeline(vpd文件) |
打开TopsProfile文件 |
打开topspti.data文件 |
删除 |
删除选中内容 |
重命名 |
重命名选中内容 |
导出报告 |
导出选中报告的内容 |
导入报告 |
导入报告(之前导出的内容) |
刷新 |
刷新选中内容 |
显示终端 |
打开Terminal控制台 |
7.5. SystemInfo视图¶
显示出profiling过程中的系统相关信息。
目标¶
名称 |
说明 |
---|---|
产品 |
GCU类型(S60等) |
平台 |
运行平台 |
程序¶
名称 |
说明 |
---|---|
命令 |
profiling执行的命令 |
开始时间 |
命令执行的开始时间 |
停止时间 |
命令执行的停止时间 |
SDK版本 |
GCU SDK版本 |
Tensorflow版本 |
Tensorflow版本 |
分析文件的名称 |
data文件的名称(参考topsprof如何生成) |
分析文件的类型 |
data文件的类型 |
分析文件的版本 |
data版本(对应topsprof版本) |
系统信息¶
名称 |
说明 |
---|---|
发行版名称 |
Ubuntu,Centos等 |
操作系统名称 |
linux,windows等 |
内核版本 |
内核版本 |
内核发型号 |
内核发型号 |
主机名称 |
主机名称 |
硬件架构名称 |
x86,arm |
CPU名称 |
intel,AMD |
CPU制造商 |
制造商 |
7.6. Summary视图¶
显示gcu kernel和cpu kernel算子的信息,以及汇总信息。
Kernel信息¶
可以通过选择列来进行简单的排序(正序/倒序)

图 7.6.1 Kernel信息¶
OP信息汇总¶

图 7.6.2 Kernel信息汇总¶
列名 |
说明 |
---|---|
idx |
序号 |
name |
kernel名称 |
node_id |
主机id(默认为0) |
description |
描述 |
min |
执行最小时间 |
max |
执行最大时间 |
sum |
执行时间总和 |
average |
执行平均时间 |
occurrence |
执行次数 |
percentage |
百分比 |
7.7. 调用关系视图¶
调用关系视图介绍¶
调用关系用来显示应用程序运行过程中的函数调用关系。默认初始状态下显示整体的函数调用关系。

图 7.7.1 调用关系视图¶
内容说明
列名 |
说明 |
---|---|
函数 |
函数的名称,如果可以展开,展开后的子节点表示此从函数调用的其它函数 |
CPU时间 |
表示CPU在此函数中执行的总时间 |
百分比 |
执行时间的百分比 |
背景色说明
较深的颜色表示占用总时间的百分比,较浅的颜色就是背景色。
局部函数调用关系统计¶
Timeline切换为Timing模式。
选中Timeline中的一段时间 。
调用关系中内容会随之改变 。
如果不想让调用关系中的内容改变,可以点击上方的锁定按钮来锁定。

图 7.7.2 局部函数调用关系统计¶
注意:
调用关系统计是一个树形结构,所以不能在Timeline里面过滤调用关系的行。(目前调用关系显示的层数范围为0~127)
节点的显示如果是unknown多层结构会做优化合并,例如[unknown] [100],代表这里是100层的unknown节点。
7.8. Kernel Compare视图¶
多次profiling的结果可以对gcu kernel进行比对,从而判断性能的改变。
Kernel Compare视图介绍¶

图 7.8.1 Kernel Compare视图¶
在基础报告中选择一个报告作为比较的基础。
在当前报告中选择一个报告作为比较的。
点击比较按钮后,可以看到比较的结果。(红色比较增加的数据,绿色表示减少的数据)
可以在搜索框中输入关键字来查询结果。
7.9. 进程视图¶
进度视图可以显示出任务的进度。(TopsVisualProfiler中的任务主要是远程profiling过程的进度)
进程视图介绍¶
当执行remote profiling的时候会在进度视图中显示进度条。
可以点击TopVisualProfiler右下角的进度按钮进入到进程视图。(或者可以直接在主菜单的窗口->显示视图->进度视图)

图 7.9.1 分析进度¶
已经在执行的任务在进度视图中,可以点击后面的红色按钮, 取消当前的任务。
7.10. 控制台视图¶
用户在remote profiling中的日志输入,打开TopsVisualProfiler文件的解析过程日志会打印到控制台视图中。
控制台视图介绍¶

图 7.10.1 控制台视图¶
菜单¶
名称 |
说明 |
---|---|
复制 |
可以选中控制台中的内容复制到粘帖板 |
全部选中 |
可以把控制台中的全部内容选中 |
查找 |
查询控制台中的内容 |
清除 |
删除控制台中的内容 |
滚动锁定 |
锁定控制台不再根据最新的输出刷新当前位置 |
自动换行 |
控制台自适应视图的宽度调整行内显示的内容 |
工具栏¶
名称 |
说明 |
---|---|
清除控制台 |
删除控制台中的内容 |
滚动锁定 |
锁定控制台不再根据最新的输出刷新当前位置 |
自动换行 |
控制台自适应视图的宽度调整行内显示的内容 |
锁定控制台 |
锁定控制台中的内容,不可在改变 |
显示选择的控制台 |
选择不同的控制台 |
打开控制台 |
新建不同的控制台 |
8. 首选项配置¶
8.1. 外观¶

图 8.1.1 外观¶
名称 |
说明 |
---|---|
允许使用主题 |
默认勾选,可以使用主题功能 |
主题 |
可以选择不同风格的主题 |
颜色和字体 |
可以选择不同的颜色和字体 |
描述 |
描述当前选择的颜色和字体 |
启用动画 |
勾选后最大化和最小化视图的时候会有动画效果 |
显示最近使用的标签 |
勾选后编辑器标签溢出后出现的显示列表中按照最近使用排序,否则按照标签的打开顺序 |
8.2. 远程连接¶

图 8.2.1 远程连接¶
名称 |
说明 |
---|---|
远程服务 |
选择远程连接的类型 |
添加 |
增加一个新的远程连接 |
编辑:编辑选中的远程连接 |
编辑选中的远程连接 |
移除 |
删除选中的远程连接 |
打开 |
建立好远程连接的认证 |
关闭 |
断开远程连接的认证 |
8.3. 网络连接¶

图 8.3.1 网络连接¶
名称 |
说明 |
---|---|
主动提供 |
选择连接的方式(选择直接提供程序会导致在不使用代理服务器的情况下打开所有连接。选择Manual将使用Eclipse中定义的设置。在某些平台上,还有一个本机提供程序可用,选择此提供程序将使用在操作系统中发现的设置。) |
代理项目 |
显示了所有的代理方式,可以编辑和清楚相关的代理 |
代理旁路 |
使用此表可以通过名称或模式指定哪些主机不应使用任何代理。直接连接模式将始终用于匹配主机 |
ssh2¶
使用此选项卡组中的选项配置ssh密钥目录的位置以及连接时要发送到服务器的密钥
常规¶

图 8.3.2 常规¶
名称 |
说明 |
---|---|
ssh2主页 |
ssh密钥的路径 |
私钥 |
ssh私钥文件名 |
密钥管理¶

图 8.3.3 密钥管理¶
点击生成RSA密钥或者DSA密钥。(密文可以不输入)
点击保存私钥。
生成的密钥可以在常规中配置。
已知主机¶

图 8.3.4 已知主机¶
可以管理(移除)已知主机的密钥 。
身份验证方法¶

图 8.3.5 身份验证方法¶
根据顺序选择认证方法。
密钥交换方法¶

图 8.3.6 密钥交换方法¶
根据顺序使用密钥交换方法
MAC方法¶

图 8.3.7 MAC方法¶
根据顺序选择MAC方法。
SSH代理¶

图 8.3.8 SSH代理¶
配置¶

图 8.3.9 配置¶
始终关闭时间轴筛选器对话框:每次打开本地vpd或者拖拽vpd时,会默认打开过滤对话框。如果勾选该选项后再次打开vpd不会在弹出过滤对话框。
远程服务器:如果打开的vpd文件版本过低可以通过配置远程服务器的方式转换vpd为当前版本对应的vpd。(目前远程服务器只支持linux系统)
9. FAQ¶
9.1. 使用信息汇总¶
windows版本安装时,路径中不能存在中文或者空格等特殊字符,否则无法启动安装程序
TopsVisualProfiler可用的vpd需要在topsprof收集时加入–export-visual-profiler参数,不然产出vpd文件会无法使用。
如果打开的vpd文件非常大可能会卡,可以在安装目录下找TopsVisualProfiler.ini文件修改里面的-Xmx8000m参数根据机器的内容调整(16G内存可以改为-Xmx16000m)
如何配置docker中的ssh映射端口?
启动docker的时候在run命令后加入参数-p 2223:22指定映射端口号2223。
进入docker中安装ssh服务。
配置/etc/ssh/sshd_config文件,port=22 (#开启22端口)
如果使用root登录docker需要配置/etc/ssh/sshd_config文件。PermitRootLogin yes(#root能使用ssh登录)
修改后需重启SSH服务。service ssh restart。
10. 引用说明¶
文档中提到topsprof使用详细说明可以参考topsprof用户手册。