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)
- 图形界面 (GUI)
命令行界面 (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(默认) |
图形界面 (GUI)
Moore Perf Compute GUI 提供了一种用户友好的方式来分析目标程序和查看分析结果。主要功能包括:
-
启动和配置性能分析任务
-
查看和分析性能报告
-
支持本地和远程目标程序分析
快速入门
通过搜索快捷方式 mcu-ui 打开GUI程序。在Linux系统上,该程序位于Moore Perf Compute安装目录下的 host-linux-x86_64 或 host-linux-aarch64 中;Windows系统上则位于 host-windows-x86_64 中。
默认会首先展示欢迎界面。该页面提供了三种便捷方式:打开报告、新建项目和打开项目。

使用GUI启动远程目标程序分析
添加远程连接

-
点击工具栏中的 Connect 按钮,打开 Connect to process 弹窗;
-
选择目标平台(例如 Linux(x86_64));
-
点击右侧 + 号按钮,打开 Add remote connection 弹窗;
-
完善 SSH 信息;
-
点击 Add 完成添加。
配置目标程序和分析参数

其中标记为*(require)* 的目标程序路径 (Application Executable) 和输出文件路径 (Output FIle) 为必填项。 配置可参考命令行选项。
启动分析
点击 Connect to process 窗口右下角 Launch 按钮,启动分析流程。
使用GUI查看报告
点击欢迎页面的 Open File 按钮或通过工具栏中的 File > Open File 菜单可打开报告文件。报告包含一个用于展示基本信息的标题和一个用于切换数据页的选项卡。
主菜单
-
File(文件):
- New Project:新建项目
- Open Project:打开现有项目
- Recent Projects:最近打开的项目(动态显示)
- Close Project:关闭当前项目
- Recent Files:最近打开的报告文件(动态显示)
- Open File (Ctrl+O):打开报告文件
- Exit:退出程序
-
Connection(连接):
- Connect (Ctrl+Shift+C):连接并启动目标程序
-
View(视图):
- Project Explorer:显示/隐藏项目浏览器面板
-
Tool(工具):
- Settings:打开设置对话框
-
Help(帮助):
- About:显示关于对话框
工具栏
- Connect:连接并启动目标程序
报告
分析完成后,会生成 .mcu-rep 格式的报告文件。打开报告后,界面包含标题和用于切换数据页的选项卡。
标题

通过标题部分可以查看当前选择的 kernel 和一些基本信息。通过 Result 下拉框可以切换kernel。
数据页
使用标题下方的标签页可以切换不同的数据页。默认展示Details数据页。
详情 (Details)
Details 页面是报告默认展示的数据页。该页面将当前所选 kernel 执行过程中收集的 metrics 按其所属的 Section 分别展示。
每个 Section 由一段描述文本和一个可展开的主体组成。点击 Section 标题左侧的小三角可以展开或隐藏主体。如果一个 Section 有多个主体,右侧的下拉框可以切换不同的主体展示。

Rooflines
展开GPU Speed Of Light Throughput 的主体部分可查看 Roofline 图,用于可视化分析 kernel 性能瓶颈。该 Section 默认启用,无需额外配置。

图表支持以下交互操作:
- 放大:点击放大按钮或框选区域
- 缩小:点击缩小按钮
- 重置视图:点击重置按钮或按 Esc 键
内存工作负载分析
内存工作负载分析(Memory Workload Analysis)用于分析 kernel 对 GPU 内存资源的使用情况。将以表格的形式展示内存吞吐率(Memory Throughput)、内存忙碌(Mem Busy)、最大带宽(Max Bandwidth)、内存管线忙碌(Mem Pipes Busy)、L1 命中率(L1 Hit Rate)和 L2 命中率(L2 Hit Rate)等关键指标,能够帮助判断 kernel 是否受内存访问、带宽或内存指令吞吐限制。
如果采集了 MemoryWorkloadAnalysis_Chart 或 MemoryWorkloadAnalysis_Tables,内存工作负载分析主体右侧会显示下拉框,可以在 全部(All)、内存图表(Memory Chart)、内存表格(Memory Tables) 之间切换。
内存工作负载分析图表
内存工作负载分析图表(Memory Workload Analysis Chart)以图形方式展示 kernel、L1 缓存(L1 Cache)、L2 缓存(L2 Cache)、共享内存(Shared Memory)、系统与对等内存(System & Peer Memory)和设备内存(Device Memory)之间的数据流。图中会显示全局内存和共享内存相关的指令数、请求数、传输大小、吞吐率以及缓存命中率。

通过图表右上角的**值(Values)**下拉框可以切换显示传输大小或吞吐率。**不活跃(Inactive)**下拉框用于控制未活跃路径的显示方式。
内存工作负载分析表格
内存工作负载分析表格(Memory Workload Analysis Tables)以表格方式展示共享内存和设备内存的访问统计。共享内存表(Shared Memory)包含共享加载(Shared Load)、共享存储(Shared Store)、共享原子(Shared Atomic)和合计(Total)的指令(Instructions)、请求(Requests)、% 峰值(% Peak)和 Bank 冲突(Bank Conflicts);设备内存表(Device Memory)包含加载(Load)、存储(Store)和合计(Total)的扇区(Sectors)、字节(Bytes)和吞吐率(Throughput)。

会话 (Session)
Session 页面包含了报告和设备的一些基本属性以及启动分析的参数。
项目管理 (Projects)
Moore Perf Compute 使用项目文件来组织和分组性能分析报告。mcu-ui 使用 .mcu-proj 作为项目文件扩展名。
在任何时候,Moore Perf Compute 中只能打开一个项目。收集的 报告会自动分配给当前项目。
默认项目 (Default Project)
当不使用自定义项目时,条目会存储在默认项目中。默认项目用于保存连接配置等信息。
- Windows 项目文件路径位于:
C:/Users/<用户名>/AppData/Roaming/Moore Perf/ - Linux 项目文件路径位于:
/home/<用户名>/.local/share/Moore Perf/
要清除默认项目中的所有信息,需要关闭 Moore Perf Compute 后从磁盘删除配置文件。
项目对话框
新建项目 (New Project)
创建新项目。需要为项目指定名称,该名称也将用于项目文件。可以选择项目文件在磁盘上保存的位置。也可以勾选是否在该位置创建具有项目名称的新目录。
项目浏览器
项目浏览器窗口允许您检查和管理当前项目。它显示项目名称以及所有关联的分析报告。
通过 View > Project Explorer 可以显示或隐藏项目浏览器窗口。
Green Contexts 分析
Moore Perf Compute 支持分析使用 MUSA Green Contexts 的应用程序。
在配置分析任务时,系统会自动检测目标应用程序是否使用 Green Contexts,并相应地进行性能数据收集。
识别 Green Context 结果:
-
标题栏中的 Attributes 按钮图标会变成绿色,用于快速识别使用 Green Context 的结果;
-
点击该按钮可导航到 Launch Statistics 部分,其中包含与 Green Context 相关的额外指标(如 MPX IDs 和使用的 MP 数量)。

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


