本文へ移動
cccskills
無料GitHub で公開

ascend-profiler-collect-adaption

Adapt torch_npu.profiler interface for AI frameworks and training/inference code on Ascend NPU. Use this skill whenever users need to integrate profiling, add performance data collection, or instrument PyTorch code with torch_npu.profiler on Huawei Ascend NPU platforms. Triggers on: "torch_npu profiler", "NPU profiling", "Ascend profiler", "profiler adaptation", "profile training", "profile inference", "add profiler to framework", "性能采集", "profiling 数据", "昇腾 profiler", and any request to add performance monitoring to Ascend NPU code.

インストール方法を見る

含まれるファイル(5)

  • SKILL.md8.1 KB
  • references/api_reference.md2.1 KB
  • references/inference_best_practices.md5.2 KB
  • references/rl_best_practices.md7.3 KB
  • references/training_best_practices.md7.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

torch_npu.profiler 接口适配

将 torch_npu.profiler 采集接口适配到 AI 框架或训练/推理代码中,采集 NPU 算子、kernel 及内存等性能数据。按以下三步完成,每步向用户确认后继续。

第一步:torch_npu.profiler 先验知识

torch_npu.profiler 是昇腾 NPU 平台上的性能分析工具,用于采集 PyTorch 训练或在线推理场景中的 PyTorch 算子、CANN 算子、底层 NPU 算子及内存占用等性能数据。

参数说明、使用方式(with 语句 / start/stop)详见 references/api_reference.md,关键约束见下方"规则"。

第二步:定位注入点

普通单卡场景

无封装层,适合快速验证或单机调试。配置直接写在脚本中,运行即采集,无外部控制机制。

import torch_npu

experimental_config = torch_npu.profiler._ExperimentalConfig(
    export_type=[torch_npu.profiler.ExportType.Text],
    profiler_level=torch_npu.profiler.ProfilerLevel.Level0,
    aic_metrics=torch_npu.profiler.AiCMetrics.AiCoreNone,
)

prof = torch_npu.profiler.profile(
    activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
    schedule=torch_npu.profiler.schedule(wait=0, warmup=0, active=1, repeat=1, skip_first=1),
    on_trace_ready=torch_npu.profiler.tensorboard_trace_handler("./result"),
    experimental_config=experimental_config,
)

prof.start()
for _ in range(10):
    train_one_step()
    prof.step()
prof.stop()

训练场景

  • 沿业务调用链找到真正执行前向、反向和优化器更新的位置,最接近 NPU 计算的执行单元即最佳注入点。
  • 完整封装范例见 references/training_best_practices.md(MindSpeed-LLM:ProfilerConfig → ProfilerManager → Trainer)。

推理场景

  • 沿调用链找到接近 NPU 实际执行的位置。注意:如果主控/调度进程内不执行实际 NPU 计算,则不能在该进程中注入 profiler。
  • 完整封装范例见 references/inference_best_practices.md(vLLM-Ascend:TorchNPUProfilerWrapper → Worker.profile() → HTTP API)。

强化学习场景

  • 混合控制:配置文件 + step 条件触发 + HTTP API,适合多角色(Actor / Rollout / Ref)的复杂训练拓扑。
  • 完整封装范例见 references/rl_best_practices.md(verl:DistProfiler → NPUProfiler → VLLMHttpServer → RayPPOTrainer)。

第三步:验证输出(可选阶段)

先向用户确认是否需要验证 torch_npu.profiler 接口适配后的实际采集效果。

  • 如果用户需要验证,则让用户提供训练环境、训练脚本以及训练方式说明,并在此基础上开展验证。
  • 如果用户不需要验证,则直接结束本阶段流程。

AI 任务拉起脚本/启动命令适配 profiler

在用户提供的 AI 任务拉起脚本、启动命令或对应封装入口中补充 torch_npu.profiler 相关配置参数,并确保这些参数能够透传到 torch_npu.profiler 的核心注入位置。

需要注意的是:

  • 不能直接修改用户原始拉起脚本、启动命令或业务入口,应先复制一份脚本或明确新增独立配置,再在适配副本上完成 profiler 适配与验证。
  • 强化学习场景中的 profiler 控制必须按阶段解耦。各阶段仅允许控制本阶段对应的采集流程,禁止跨阶段控制。
  • 任务运行过程中需要特别关注 profiler 的 error 日志,必须解决所有 error 日志问题。

profiler 交付件校验

告知用户运行完成后,按实际导出类型检查输出目录中的关键文件,text类型交付件与DB类型交付件不要求同时存在:

{OUTPUTDIR}/*/ASCEND_PROFILER_OUTPUT/
├── trace_view.json      # 文本类交付件:全量 trace
├── op_statistic.csv     # 文本类交付件:算子统计
├── kernel_details.csv   # 文本类交付件:kernel 详情
├── ascend_pytorch_profiler_*.db  # DB 类交付件
└── ...

text类型交付件校验示例:

ls {OUTPUTDIR}/*/ASCEND_PROFILER_OUTPUT/trace_view.json
ls {OUTPUTDIR}/*/ASCEND_PROFILER_OUTPUT/op_statistic.csv
ls {OUTPUTDIR}/*/ASCEND_PROFILER_OUTPUT/kernel_details.csv

DB类型交付件校验示例:

ls {OUTPUTDIR}/*/ASCEND_PROFILER_OUTPUT/ascend_pytorch_profiler_*.db

具体的 profiler 交付件完整性校验方法,可参考 ascend-profiler-data-validation。

规则

  • 原有业务逻辑不可变更:任何适配代码都绝对不能修改原先的业务逻辑,只能在现有代码基础上新增 torch_npu.profiler 接口及相关采集能力,禁止借适配之名变更原有功能行为
  • 封装优先:必须通过统一封装层接入,禁止在业务代码中散落 profile(...) 调用
  • 单进程单实例:一个进程只允许一个 profiler 实例
  • 同进程调用:profiler 必须与被采集的训练/推理流程处于同一进程内
  • Step 数:skip_first + (wait + warmup + active) * repeat 必须小于总训练 step 数,否则采集不完整
  • 链路打通并进入验证输出阶段:适配完成后,必须确认 profiler 流程已打通,需验证从外部参数传递、配置解析、封装层调用到核心采集代码执行的整条链路均生效,并进入“第三步:验证输出”阶段,对 profiler 采集结果和关键交付件进行检查
  • 范式锁定:一旦确定为训练/推理/强化学习场景,所有接口默认值、采集控制方式均以该场景对应参考范例为准,禁止跨范式混用
  • 分步确认后继续:第一步确认接口用法、参数项、默认值和场景范式;第二步确认注入点、封装方式、参数透传链路和脚本侧 profiler 配置已补齐且默认关闭;第三步确认是否开展验证,验证场景下需确认环境、启动方式、验证范围、输出目录和关键交付件结果;未经用户确认,不得进入下一步

Reference 说明

reference 文件主要内容何时按需读取
references/training_best_practices.md训练场景适配范例,说明训练流程中的典型注入点、参数组织方式和调用链路。当任务属于训练框架、训练脚本或单机/分布式训练适配时读取。
references/inference_best_practices.md推理场景适配范例,说明服务化推理中的参数透传、封装层调用和控制链路。当任务属于推理框架、在线服务或多进程推理适配时读取。
references/rl_best_practices.md强化学习场景适配范例,说明分阶段解耦控制、阶段内参数配置和 Trainer / Rollout / Actor 协同方式。当任务属于强化学习场景,或涉及 rollout、actor、ref 等阶段化 profiler 控制时读取。
references/api_reference.mdtorch_npu.profiler 关键 API、常用参数、_ExperimentalConfig 字段及基础使用方式。当需要确认接口定义、参数含义、默认值、with / start-stop 用法时读取。

按需读取原则:先根据任务场景选择对应 reference;仅在需要确认接口或参数细节时补充读取 references/api_reference.md,避免无关 reference 混读。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

当用户直接要求进行数据集压缩测评,或在量化调优过程中需要使用 AISBench 评测工具输出数据集精度等场景时使用。 本 Skill 负责:使用 AISBench 数据集压缩代码、用 RBF Kernel Herding 算法生成压缩后的数据子集(coreset),并按用户目标交付两种产物之一: ① 接入量化调优主流程:产出独立的 coreset 数据集配置(不覆盖原始数据),回传「全集 config_name + coreset config_name」给编排层,供 evaluation.yaml 切换; ② 仅数据集压缩测评(不做量化调优):基于 example 模板生成「全集测试脚本」和「子集测试脚本」两份 shell 脚本。 暂时支持 AIME 2025 和 GPQA,其他数据集需要再结合 aisbench tools目录下 herding_coreset_selector 源码进行分析。

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

Ascend cluster comparison tool. Invoke when user asks to compare two cluster datasets (DB or TEXT), or to generate cluster_analysis_output from raw profiling data via msprof-analyze and then compare.

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

专门用于 Ascend 集群 Profiling 性能数据的“快慢卡”诊断专家技能。当用户提供【集群性能数据目录/路径】并要求分析【快慢卡】、【慢节点】、【负载不均衡】或【集群瓶颈】时,必须触发此技能。该技能会自动接收集群路径,调度相关工具输出快慢卡的宏观定性与微观根因(如 Host 下发瓶颈、算子计算劣化)。

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

Analyze Ascend NPU collective communication profiling data with a DB-first workflow. Use when the user provides `cluster_analysis_output/cluster_analysis.db`, rank-level `analysis.db`, rank-level `ascend_pytorch_profiler_{rank_id}.db`, together with `profiler_info.json`, and asks about HCCL or hcom communication cost, collective communication TOP ops, wait time, slow rank/straggler, Notify Wait, bandwidth, retry, relay, SDMA/RDMA/HCCS links, communication matrix, or Ascend communication fault patterns.

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

Analyze Ascend NPU computation-side profiling data for single-card runs or a selected rank from multi-card runs. Use this skill when the user asks to diagnose computation bottlenecks, AI Core / AI Vector / AICPU hotspots, dynamic shape overhead, block dim issues, redundant TransData/Transpose/Cast, cross-stream waits, frequency/runtime-state issues, or fusion opportunities.

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

针对昇腾 NPU 上的 PyTorch 模型,识别可做融合算子替换的代码段、替换为 torch_npu 融合算子并做性能/精度验证。当用户提到融合算子、NPU 算子替换、RMSNorm/SwiGLU/RoPE/Attention 融合、torch_npu 亲和算子等关键词是,使用本 Skill。

日本語の概要は準備中です。原文の説明を表示しています。

kali20gakki/msAgent322026年10月12日 更新

kali20gakki のスキルをすべて見る

このスキルの問題を報告する