跳到主要内容

Moore Perf Compute 用户指南

前置要求

在开始使用 Moore Perf Compute 之前,请确保完成以下准备工作:

1. 安装 Moore Perf Compute

  • 系统要求:Ubuntu 22.04 LTS (x86_64 或 AArch64)
  • GPU 要求:摩尔线程 MUSA GPU (M1000, S4000, S5000)
  • 依赖版本:Linux Driver 5.1.0、MUSA SDK 5.1.0

详细安装指南,参考安装指南。

2. 了解性能分析基础

建议先阅读性能分析概念文档,了解关键指标和分析方法和核心概念:

  • Roofline 模型:理解计算受限与内存受限的区别
  • Section 指标:LaunchStats、MemoryWorkloadAnalysis、SpeedOfLight
  • 重放机制:为什么需要多次执行内核

注意

当前同一时间,同一个 GPU 上只能对一个进程进行数据收集。

使用指南

命令行界面 (CLI)

Moore Perf Compute CLI (mcu) 提供了一种从命令行分析 MUSA 应用程序的方法,目前只支持 Linux 系统。

快速开始

本节提供快速入门指南,帮助你快速了解 mcu 的基本用法。

启动目标应用程序

命令行分析器启动目标应用程序,插桩目标 API,并为指定的 kernel 收集性能分析结果。CLI 可执行文件名为 mcu。位于 Moore Perf Compute 安装目录下的 target-linux-x86_64target-linux-aarch64 目录中。

要收集目标应用程序中所有 kernel launch 的指标,运行:

mcu my_application

自定义数据收集

提供多种选项来指定应收集哪些 kernel 的数据:

  • -k, --kernel-name:通过 kernel 名称的正则匹配过滤 kernel。

  • --devices:指定要分析的 GPU 设备。

当前默认收集所有 Section 中的指标。

输出报告文件

默认情况下,分析结果会同时输出到命令行和报告文件。指定 -o 可修改报告文件名;不指定则输出到默认文件 report#.mcu-rep:

mcu -o my_report my_application

使用模式

启动模式 (Launch Mode)

mcu采用Launch Only模式,即在启动目标程序时进行性能分析。这种模式下,mcu会:

  • 启动目标应用程序

  • 监控并拦截应用程序对MUSA API的调用

  • 收集配置的性能指标

  • 生成分析报告

典型的工作流程:

mcu [options] [application-arguments]

多进程支持 (Multi-Process Support)

mcu支持分析多进程应用程序,例如MPI应用。默认情况下,mcu会自动抓取所有子进程。

profile MPI应用:

  • 对节点上的所有rank进行分析,并将所有分析数据存储在单个报告中:
mcu -o mpirun_report.mcu-rep mpirun -n 4 ./my_mpi_app
  • 对于多节点提交,每个节点可以使用一个mcu实例。为每个rank指定唯一的报告文件:
mpirun -n 16 mcu -o rank_%r.mcu-rep ./my_mpi_app
提示

每个 rank 绑定到不同的卡。

命令行选项

本节详细说明mcu的所有命令行选项。

通用选项 (General Options)

选项描述
-h, --help打印帮助信息
-v, --version打印版本信息
--build-timestamp打印构建时间戳

启动选项 (Launch Options)

选项描述示例
-e, --environment为目标程序进程设置环境变量。环境变量应定义为 'A=B'。可以指定多个环境变量,格式为 'A=B,C=D'-e LD_LIBRARY_PATH=/usr/local/musa/lib
--working-directory设置目标程序进程的工作目录--working-directory /home/user/project

常用分析选项 (Common Profile Options)

选项描述示例
--dump-mode选择数据转储模式:normal(程序结束后一次性转储)或 interval(定期转储,默认)--dump-mode normal
--replay-mode选择重放机制:application(默认)- 重新启动整个应用程序多次--replay-mode application

采集选项 (Collection Options)

选项描述示例
--sections指定要收集的 section。多个 section 用','分隔--sections SpeedOfLight,LaunchStats
--list-sections列出可用的 section--list-sections
--metrics指定要收集的 metric 名称。多个 metric 用','分隔--metrics mp__cycles_elapsed.max,device__mp_frequency
--list-metrics列出可用的 metric 名称--list-metrics

过滤选项 (Filter Profile Options)

选项描述示例
--devices多卡场景下指定启用分析的 GPU 设备,用','分隔。默认分析所有设备--devices 2,4
-k, --kernel-name过滤 kernel: 精确匹配,或 regex: 正则匹配-k foo 精确匹配
-k regex:foo 包含 foo
-k regex:"foo|bar" 包含 foo 或 bar
--kernel-name-base设置 --kernel-name 的匹配机制:function(默认)、demangled、mangled--kernel-name-base demangled
-c, --launch-count限制收集的 kernel 结果数量。计数只针对匹配 kernel 过滤条件的 kernel 生效--launch-count 10
-s, --launch-skip设置开始收集 kernel 数据前跳过的 kernel launch 数量。计数只针对匹配 kernel 过滤条件的 kernel 生效--launch-skip 5

采样选项 (Sampling Options)

选项描述示例
--sampling-interval设置采样周期,范围为 [1..65535]。实际频率为值 * 256 个周期。默认值为 100--sampling-interval 200
--sampling-buffer-size设置设备端样本分配的大小(字节)。默认值为 1048576(1MB)--sampling-buffer-size 2097152

文件选项 (File Options)

选项描述
-o, --output设置用于写入性能分析结果的输出文件,默认为 report#.mcu-rep
-f, --force-overwrite强制覆盖输出文件(任何现有文件将被覆盖)

控制台输出选项 (Console Output Options)

选项描述
--page选择要输出的报告页面:details(默认)

Green Contexts 分析

Moore Perf Compute 支持分析使用 MUSA Green Contexts 的应用程序。

在配置分析任务时,系统会自动检测目标应用程序是否使用 Green Contexts,并相应地进行性能数据收集。

识别 Green Context 结果:

  • 标题栏中的 Attributes 按钮图标会变成绿色,用于快速识别使用 Green Context 的结果;

  • 点击该按钮可导航到 Launch Statistics 部分,其中包含与 Green Context 相关的额外指标(如 MPX IDs 和使用的 MP 数量)。

green_ctx_attr.png

如果报告包含 Green Context 数据,Session 页面会包含额外的 Green Context Resources 部分。该表格显示每个 Green Context 使用的资源信息,例如分配的 MPXs。Result IDs 列允许导航到使用相应 Green Context 的 kernel 分析结果。

green_ctx_res.png