鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

使用Roofline分析

命令功能

Roofline分析可帮助用户在给定硬件平台上,分析出应用程序的瓶颈点位置,从而有针对性的进行优化。

  • 仅支持鲲鹏平台物理机。
  • Roofline使用DBI技术,待分析的应用必须为ELF格式的二进制文件。
  • Roofline采集时需确保应用已完成运行;Roofline采集时长大概为应用运行时长三倍。

命令格式

1
devkit tuner roofline [-h] [-l {0,1,2,3}] [-m {total,region}] [-o <file>] [--hbm-mode {cache,flat}] workload ...

workload为待分析的应用,若需采集多个region信息,应用需已进行插桩,插桩详情请参见Roofline插桩指导

参数说明

表1 参数说明

参数

参数选项

说明

-h/--help

-

获取帮助信息。

-l/--log-level

0/1/2/3

设置日志级别,默认为2。
  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-m/--mode

total/region

配置分析范围为整个二进制应用或用户选择的regions;默认为total。

  • total:采集整个应用的roofline数据。
  • region:采集应用中各个region的roofline数据,程序的region划分需要用户按需进行插桩。

-o/--outpath

-

配置生成数据包名称。默认为当前所在目录生成,默认文件名为roofline-YYYYMMDD-HMS。

-hbm-mode

cache/flat

配置采集HBM数据的模式;若环境不支持HBM,使用此参数不采集HBM数据。

  • cache:采集L1数据、L2数据、HBM数据和DDR数据。
  • flat:采集L1数据、L2数据、HBM和DDR的混合数据(采集的HBM会和原有DDR混合在一起)。

使用示例

采集整个应用的roofline数据:

1
devkit tuner roofline -m total --hbm-mode cache /devkit/testdemo/matrix_multiply_c

返回信息如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Note:
    1. Roofline task is currently only supported on the 920 platform.
    2. The application must be a binary file in ELF format, and read permissions are required to detect the format of the application.
    3. Roofline task collection needs to ensure the application has finished running.
    4. The estimated time of roofline collection is about 3 * application estimated time.
    5. Roofline analysis is available only on physical machines.
    6. You can learn about the roofline profiling method by looking at document /devkit/testdemo/DevKit-CLI-xx.xx.xx-Linux-Kunpeng/tuner/docs/ROOFLINE_KNOW_HOW.MD
RFCOLLECT: Start collection for /devkit/testdemo/matrix_multiply_c
RFCOLLECT: Launch application to collect performance metrics of /devkit/testdemo/matrix_multiply_c
Initialization time: 0.085910 seconds
Calculation time: 0.371136 seconds
The dimension of the matrices is too large to print.
RFCOLLECT: Launch application to do binary instrumentation of /devkit/testdemo/matrix_multiply_c
Initialization time: 0.153196 seconds
Calculation time: 22.620041 seconds
The dimension of the matrices is too large to print.
RFCOLLECT: Launch benchmarks for measuring roofs
RFCOLLECT: Processing all collected data
RFCOLLECT: Result is captured at /devkit/testdemo/DevKit-CLI-xx.xx.xx-Linux-Kunpeng/rfcollect-20241213-222445.json
RFCOLLECT: Run "rfreport /devkit/testdemo/DevKit-CLI-xx.xx.xx-Linux-Kunpeng/rfcollect-20241213-222445.json" to get report.

Get roofline report ...
The roofline json report: /devkit/testdemo/DevKit-CLI-xx.xx.xx-Linux-Kunpeng/roofline-20241213-222445.json
The roofline html report: /devkit/testdemo/DevKit-CLI-xx.xx.xx-Linux-Kunpeng/roofline-20241213-222445.html

任务将生成JSON文件和HTML文件,如需进行数据分析可直接使用JSON文件;查看性能数据可在浏览器中打开HTML文件,也可通过Know-how查看如何使用roofline分析进行调优;查看HTML文件时,点击右上角按钮可配置显示数据,点击可切换页面的中英文显示,可在页面上方的“区域”下拉框选择需要显示的region或全部内容。

图1 Roofline HTML文件