华为云 Ascend Profiler DB Explorer 是一个面向昇腾(Ascend)NPU 性能分析场景的技能,主要作用是把关于 profiling 数据的自然语言问题转换为安全、可执行的 SQL,去查询 Ascend PyTorch Profiler / msprof 数据库。
一、用途 该技能用于分析昇腾 NPU 上的算子耗时、识别分布式训练中的通信瓶颈、理解框架调度开销,以及通过查询 profiling 数据库获取性能洞察、调试模型推理中的性能问题。典型问题包括“哪些算子最耗时”“按执行时间查询 Top 20 算子”“分析 HCCL 通信时间”“检查 PyTorch 与 CANN 的 dispatch 时间差异”“展示算子数据的表结构”等。
二、主要能力
- 自然语言转 SQL:将用户关于 performance profiling 的问题,基于预置的 CTE 宏与字典规则,快速构造安全、可读的查询语句。
- 两条查询通道:Track A(优先路径)使用预置 Golden Views / CTE 宏,覆盖算子计算、集合通信、框架调度三类意图;Track B 用于底层硬件指标查询或现有视图未覆盖的需求,依赖 scripts/get_schema.py 与 references/profiler_db_data_format.md。
- 预置 CTE 宏:
- 算子计算宏 compute_view:查询算子耗时、TopK 算子、计算瓶颈;
- 通信宏 comm_view:查询 HCCL 集合通信(AllReduce、AllGather 等)时间;
- 调度映射宏 dispatch_view:对比 PyTorch 框架 dispatch、CANN 层 dispatch 与底层执行的时间差,定位调度拥堵。
- 智能瓶颈诊断:自动根因分析、瓶颈分类(memory-bound、compute-bound、communication-bound、operator-fallback)、可执行优化建议、模式匹配与影响评估,并输出带优先级、问题、解决方案和预期收益的诊断报告。
- 执行与总结:组装 SQL 后调用 msprof_mcp 提供的 execute_sql 或 execute_sql_to_csv 执行,输出最终 SQL、返回行数和前几行结果,并以“问题 → 证据 → 建议”的结构组织分析结论。
三、使用方式
- 使用前提:需安装 msprof >= 7.0.0、sqlite3 >= 3.0.0,并已有 Ascend PyTorch Profiler 或 msprof 生成的数据库文件。
- 核心命令示例:
python3 scripts/query_profiler_db.py
--db /path/to/ascend_pytorch_profiler.db
--query "Top 10 operators by time consumption" 参数说明:db(profiler 数据库路径,必填)、query(自然语言查询,必填)、output(输出格式,选填)。 - Track A 流程:先做意图匹配;若属于算子计算 / 集合通信 / 框架调度,必须原样复制对应 WITH 宏到 SQL 开头,不得修改宏内 JOIN 逻辑与字段表达式,然后在 WITH ... AS (...) 之后针对相应视图写 SELECT 查询。
- Track B 流程:先用 sqlite 查询当前数据库实际存在的表: sqlite3 {db_path} ".tables" sqlite3 {db_path} "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;" 再用脚本做文档与数据库对齐,例如: cd {skills_path}/huawei-cloud-ascend-profiler-db-explorer/scripts python3 get_schema.py --list_tables python3 get_schema.py --db_path {db_path} --list_db_tables python3 get_schema.py --db_path {db_path} --compare_doc_db python3 get_schema.py --table_name TASK python3 get_schema.py --table_name COMMUNICATION_OP 表结构描述应优先通过 scripts/get_schema.py 获取,PRAGMA table_info(TABLE) 仅作补充,不作为常规手段。
四、适用场景 适用于用户询问“哪些算子最耗时”“TopK 算子”“计算瓶颈”,关注“HCCL/集合通信时间”“AllReduce/AllGather 时间”,需要分析“PyTorch 框架 dispatch 与 CANN dispatch 与设备执行之间的时间差”,或任何需要直接访问 profiling 数据库表或视图的查询。当问题包含 ascend-pytorch-profiler-db / ascend_pytorch_profiler*.db / msprof_*.db、sqlite / table / schema / field、TopK operators / communication time / dispatch analysis / scheduling bottleneck 等关键词时,会优先触发该技能。
五、限制与强制约束
- 主查询必须至少满足以下之一:包含聚合函数(如 SUM、AVG、COUNT 等),或显式包含 ORDER BY ... LIMIT 20(或更小的 LIMIT)。
- 只有在用户表示要输出到文件时,才调用 msprof_mcp 提供的 execute_sql_to_csv 工具,并允许全表扫描。
- 在 Track A 中,不得查询底层字典或随意构造 JOIN;不得修改宏内部的 JOIN、字段含义或计算逻辑。
- 表在文档中找不到时,应优先怀疑“版本差异”或“采集配置不足”,而不是猜测字段语义。
- 禁止直接执行 PRAGMA table_info(TABLE) 作为 schema 来源。
六、相关技能 包括 huawei-cloud-msot-msopprof-operator-profiler(算子性能数据采集)、huawei-cloud-ascend-small-model-migrate(使用 profiling 分析的迁移流程)、huawei-cloud-ascendc-operator-performance-optim(算子优化流程)。
七、架构与依赖组件 架构为:自然语言输入 → 意图识别 → SQL 生成 → 数据库执行 → 结果分析。涉及组件包括 MSProf(昇腾 profiling 工具,负责数据采集与数据库管理)、SQLite(存储 profiling 数据的数据库引擎)、Ascend NPU(性能分析目标硬件)、msprof_mcp(在 profiling 数据库上执行 SQL 查询的工具)。
其他具体功能细节、收费情况、价格与平台支持范围暂未提供。