跳到主要内容

Streamline 使用说明

:::info 文档信息

发布版本:1.0 · 页数:5 · 语言:中文

原始文档:Rockchip_Quick_Start_Linux_Streamline_CN.pdf

:::

章节大纲​

  • Streamline 使用说明(P1)
      1. 介绍(P1)
      1. 抓取数据(P1)
      1. 分析结果(P3)

在线预览​

若预览无法显示,请直接下载 PDF 后用本地阅读器打开。


芯片名称内核版本
全系列4.4
日期版本作者修改说明
2017-12-25V1.0陈谋春
  1. 介绍2. 抓取数据3. 分析结果

1. 介绍​

Streamline 是 DS5 提供的一个性能分析工具,通过抓取 cpu 和 gpu 的内部硬件计数器和 Kernel 的一些软件 tracepoint 来实现性能分析,功能比较强大。

2. 抓取数据​

准备工具1. 首先需要下载 ds5,一些新的 cpu 和 gpu 可能需要较新的 DS5 才能支持,我目前用的是5.26 版本。DS5 是需要 license 的,不过可以先申请一个 30 天的全功能试用 license,下载安装和申请 license 的流程就不在这里介绍了。2. 设备端需要和 host 建立连接,目前支持两种连接方式:adb 和网络3. 需要设备端的 root 权限,不然没法在设备端运行 gatord 4. 需要和固件匹配的符号表,方便后续的分析gatord设备端需要运行一个守护进程来和 host 端做交互,早期版本的 mali 驱动或 ds5 版本还需要重新编译 Kernel 的 gpu 驱动来启用 gatord,不过目前新版本的 ds5 已经没有这个问题了。

$ adb push /path/to/ds5/sw/streamline/bin/$ARCH/gatord /data/local/

# cd /data/local/ # ./gatord &

建立连接

gatord 跑起来之后就可以在 host 端打开 Streamline,在左上角点击按钮,会弹出如下

对话框:

选中你要调试的设备,点“select”即可。配置计数器

Streamline 支持的计数器和设备相关,在连接完成后,可以点击按钮,会弹出对话框,列

出所有支持的计数器:左边是可选的计数器,右边是已选的计数器,在可选计数器上双击即可移动到已选计数器,完成后点“save”按钮即可,全部重选可以点击“load defaults"先恢复默认设置。抓取数据

计数器选好以后,可以点击开启抓取,结束时点击按钮,这时候会自动跳转到分析

界面。

3. 分析结果​

Streamline 相对于传统的 profile 工具的优势在于:丰富的硬件计数器支持,可以很方便的看到cache,bus 和 gpu 内部状态。

加载符号表右键单击左侧的我们抓取到的数据名称,在弹出的菜单中点击”analyze",会弹出如下对话框:点击红色箭头指向的按钮就可以添加带符号信息的 elf 文件了。不用全部添加,根据热点添加即可。Heat Map

这个视图可以很方便的找到热点线程,点击左下角的

点击▶ 可以展开各个进程,点击每个线程的名字,可以只显示这个线程的统计值,例如线程的 cpu占有率,线程的 miss rate 等。时间轴上有个滑块,可以拉伸和移动,以显示某个时间段内的统计数据,类似下图:

Core Map这个视图可以看到每个线程各个时刻都在那个 core 上跑,对于看调度问题比较方便,比如不合理的 cpu 迁移。Cluster Map这个视图可以看到每个线程在当前跑在哪个 cluster,可以分析是否有不合理的大小核迁移导致性能下降。Samples这个视图可以分析每个时间片内函数的 cpu 占比,时间片可以通过上面时间轴上的滑块控制,对于分析热点函数比较有用。Processes这个视图可以分析热点进程的 cpu 占比。Functions点击上部的”functions"选项卡,可以看到整个抓取周期内的函数热点统计,如下图所示:

Call Paths如果想看函数的调用关系,可以切换到“call paths”选项卡