跳到主要内容

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_64 或 target-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