Skip to content
cccskills
FreePublished on GitHub

profiling-analyze

对 profiling 数据(kernel_details.csv / trace_view.json / step_trace_time.csv)做统一分析: 5 层递进管道(analyze_trace.py)+ baseline/优化后 kernel diff(compare_traces.py),输出 瓶颈诊断、算子执行序、可融合候选与 P0-P2 方向建议。

输入统一来自 profiling-collect。

只要用户有 profiling 产出并问"为什么慢/瓶颈在哪/优化前后差多少/往哪个方向",都用本技能;采集走 profiling-collect,方案选档走 dit-perf-opt,实现/并行/基准走 pattern-dev/dit-parallel-opt/benchmark-dev——本技能只做诊断与方向。

由 model-auto-optimization 的 S1(融合分析)/S3(并行)阶段调用,亦由 dev-workflow 的分析阶段指引加载。融合机会候选只做**识别**;候选的**边界与收益判定**(能不能融成一个单元、融多大、值不值)交 `fusion-scope-analyze`(本技能的辅助技能)——本技能不判融合边界。

The English summary is being prepared. Showing the original description.

Works withAWS
See how to install

Files included (10)

  • SKILL.md17.2 KB
  • evals/evals.json4.3 KB
  • references/analysis-flow.md2.1 KB
  • references/capability-matrix.md1.9 KB
  • references/eager-vs-compile-report.md5.7 KB
  • references/heuristics.md6.3 KB
  • references/operator-catalog.md1.7 KB
  • references/performance-analysis-methodology.md10.1 KB
  • scripts/analyze_trace.py76.2 KB
  • scripts/compare_traces.py10.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

性能分析

基于昇腾 NPU profiling 数据,实现 5 层递进分析管道。

数据源

Profiling 数据由 profiling-collect skill 在远端 NPU 环境采集产出(已剔除 warmup)。 也可来自 dummy-run 的粗粒度时序。

数据文件格式说明
kernel_details.csvCANN Profiler CSV每行一个 NPU 算子:Name, Start Time(us), Duration(us), Wait Time(us)
trace_view.jsonChrome Trace JSONHost 端 + Device 端事件时间线
step_trace_time.csvCANN Profiler CSVStep 级汇总:Computing, Communication, Free, Bubble
communication.jsonJSON通信算子详情(若开启)
单元利用率档(op_summary_*.csv,PipeUtilization)CANN Profiler CSV*_vec_ratio / *_mac_ratio / *_mte2_ratio / *_mte3_ratio / cube_utilization(%);融合判型(fusion-scope-analyze)的必需输入是这四族 ratio,缺列或全 N/A 即判该次采集不合格(口径与门禁单点见 profiling-collect/scripts/check_output.py)。memory_bound 是可算字段(mte2_ratio / max(mac_ratio, vec_ratio)),真实导出常不含该列,不列为必需列、按公式现算

同源提醒(不是两份独立证据):kernel_details.csv 与 op_summary*.csv 是同一批 task 行的两种表头 —— 前者由 generate_view() 从 OP_SUMMARY 生成(库内 _kernel_view_parser.py)⇒ 两文件行数相同、时间列同单位。 不得把它们当成两份证据去"交叉验证"(那只会在同一份数据上自证 ✗)。 另:**"导出报成功但没有新文件"**是本环境的已知陷阱(报成功的那一层把异常吞了), 断言与绕过写法见 ../profiling-collect/SKILL.md「导出类操作一律『无新文件即失败』」。

读表口径与可复现性(三条实测,引用数据前必读)

① 「每层 / 每步耗时」必须声明口径:跨流 ΣDuration 还是纯计算忙碌 kernel_details 的 Duration 是逐 task 的 ⇒ 把所有流的 Duration 相加时, 被重叠的通信流会被算第二遍 ✗。本仓一条实测:ΣDuration 口径与纯计算忙碌口径 不相等(差额 = 被重叠的通信量级;两者绝对值与占比出库 {run_results_dir}/archive/)。 ⇒ 报数时写明口径,并用 step_trace_time 的 Computing / Communication / Overlapped / Free 四元组把两个口径对上(占比重叠读法见 ../../dit-parallel-opt/references/parallel-plan-attribution-method.md §2; "设备省了 e2e 没省"的方向性判据见 ../../perf-gate/references/measurement-discipline.md §10)。

② 逐 kernel 计时不可复现,聚合量与计数可复现 同一配置、两次独立采集(不同 device)实测:算子名字族的调用次数完全一致、 Top-kernel 集合相同、聚合量差落在噪声内;但通信类与单个集合通信核的耗时差异显著 (单个集合通信核差异可达接近一倍)✗。 ⇒ 分层引用:调用次数 / Top 集合 / 聚合量与占比可信;单核毫秒数不可在 ±10% 内引用、 跨设备单核差异可达接近一倍(绝对偏差出库 {run_results_dir}/archive/) ⇒ 禁止用单核毫秒数定位单卡 / 单设备问题; 跨设备比较只用调用次数与占比。 ⚠️ 该分层是本仓实测上界、不是普适常数(仅一次两设备对照)⇒ 每次换卡 / 换版本都要重测。

③ 列语义必须实测自证,不能照抄二手字段说明 近名列并存,且同一位次在不同表里的列名不同。本仓实测(三张 kernel 表逐列取去重值集合后比对):

列名出现在实际装的是等价关系(去重值集合实测)
Typekernel_details(48 列布局)算子类型≡ OP Type:各 60 个值、集合完全相等(Slice/ViewCopy/Cast/…/HcclLaunchAicpuKernel/hcom_*)
OP Typeop_summary / op_statistic / communication_statistic算子类型≡ Type(同上,60/60 相等)
Accelerator Corekernel_details执行单元 / 核类型≡ Task Type:各 6 个值、集合完全相等(AI_VECTOR_CORE / MIX_AIV / AI_CPU / COMMUNICATION / AI_CORE / MIX_AIC)
Task Typeop_summary执行单元 / 核类型≡ Accelerator Core;⚠️ kernel_details 里没有这个列名
Core Typeop_statistic(按算子聚合的表)执行单元 / 核类型(聚合口径)值域同族但不等价:只有 5 个值、缺 COMMUNICATION ⇒ 拿它统计通信会整类漏掉 ✗
kernel_typetask_time更宽的 task 类型枚举不等价:16 个值,另含 MEMCPY_ASYNC / NOTIFY_RECORD / DAVID_EVENT_* 等非计算核
Input/Output Data Typeskernel_details数据类型(与"算子类型"无关)易混名,勿当算子类型用

⇒ 读表第一步是「列语义自证」:对候选列取去重值集合判它到底是什么,报告写明据以判定的证据; 不要引用别人给的字段摘要。另:三张 kernel 表列数相同(48)但列名不同 (Type/Name/Accelerator Core vs OP Type/Op Name/Task Type)—— 这正是"同一批 task 行、两种表头布局"的实测确认 ⇒ 不能按"第 N 列"或照抄列名取数 ✗。

④ 一次便宜的交叉核对(自证解析正确):trace 里的 Communication 应与 hcom_* 行的 ΣDuration 应精确相等(不等即说明表与 trace 已不同源或解析有变) ⇒ 可当作"表与 trace 同源、解析正确"的一次核对 ✓。

分析管道

Layer 0: 预处理(warmup 验证)
    ↓
Layer 1: 阶段分离(DiT vs VAE)
    ↓
Layer 2: 算子分类占比(FA / MatMul / Vector / Comm,分阶段给出)
    ↓
Layer 3: 三层递进分析(Host Bound → 通信掩盖 → 融合机会,分阶段给出)
    ↓
Layer 4: 算子明细(占比 >1%)
    ↓
Layer 5: 优化建议(P0-P2 优先级 + 引用 docs/zh/features 对应节)

Layer 0: 预处理 — Warmup 验证

确认 profiling 数据已剔除 warmup 步。若检测到 warmup 特征(首步耗时异常偏高、编译 kernel 集中出现),标注 WARMUP_NOT_STRIPPED。

Layer 1: 阶段分离 — DiT vs VAE

将 kernel 按名称/类别聚合到两个阶段:

阶段识别特征典型算子
DiT (Transformer)attention_forward, MatMul, LayerNorm, RoPEFlashAttention, Linear, RMSNorm
VAEConv2D, GroupNorm, UpsampleConv2D, ResBlock

输出:

DiT: xx ms (xx%)  |  VAE: xx ms (xx%)

Layer 2: 算子分类占比(分阶段)

对每个阶段按四类聚合。仅显示占比 >1% 的类别,低于此阈值归入"其他"。

聚合规则与各算子 NPU 已知问题以 references/operator-catalog.md 为唯一真相源,下表为速查快照;改动先改 reference,再同步本表。

分类包含算子
FAFlashAttention, SDPA, attention_forward, fused_attn_score
MatMulLinear, MatMul, GEMM, DequantGEMM
Vector激活函数 (GELU/SiLU/ReLU), Norm (LayerNorm/RMSNorm), element-wise (Mul/Add/Div)
CommHCCL: all_gather, all_reduce, reduce_scatter, broadcast

输出格式:

### DiT 算子分布          ### VAE 算子分布
| FA      | xx% |         | MatMul  | xx% |
| MatMul  | xx% |         | Vector  | xx% |
| Vector  | xx% |         | Comm    | —   |
| Comm    | xx% |

Layer 3: 三层递进分析(分阶段)

对每个阶段独立做三层分析:

三层判断的启发式明细以 references/heuristics.md 为唯一真相源(正文保留判断主链);通信掩盖相关方案见 dit-parallel-opt(本仓),而非外部 hccl-test。

Layer 3a: Host Bound 分析

多指标核算体系:同时维护以下指标(参照 ascend-profiling-anomaly):

指标含义
wall_ms阶段从 start 到 end 的总经过时间
busy_union_ms设备计算区间合并(去重叠后的真实计算时间)
kernel_sum_ms各 kernel 耗时累加(含并行重叠部分)
bubble_mswall_ms - busy_union_ms = 设备空闲时间
Underfeed = Service Time - Device Busy Union
Host Bound % = Underfeed / Service Time × 100

关键指标:underfeed_ratio, prelaunch_gap, tail_gap, internal_bubble_total, largest_internal_bubble

Anomaly 标签(参照 ascend-profiling-anomaly):

标签触发条件
DEVICE_IDLE_GAP_HEAVYunderfeed_ratio >= 0.30
PRELAUNCH_GAP_HEAVYprelaunch_gap >= max(1ms, 10% step)
TAIL_GAP_HEAVYtail_gap >= max(1ms, 10% step)
INTERNAL_BUBBLE_HEAVYlargest_internal_bubble >= max(1ms, 10% step)
HOST_ORIGINATED_RISK高 underfeed + 周期性 bubble + host event 证据

快捷判别:先排除 torch.compile 重编译,再归因 kernel

当 wall_ms / kernel_sum_ms >> 10(kernel 总耗时只占墙钟个位数百分比)、Wait Time 合计接近 wall、且出现单个超大设备空闲间隙(如整个墙钟里几乎全程空闲)时,优先怀疑 Dynamo guard 失败导致 每次调用重编译,而不是 kernel 慢。典型根因:算子层 forward 内就地修改模块状态(如把 bias 从 bf16 改 fp32)使 guard 不稳定。

# 确认重编译与 guard 失败原因(比 trace 分析更直接)
TORCH_LOGS=recompiles python {infer}.py --compile ... 2>&1 | grep -E "Recompiling|guard failure"
# 输出形如: tensor '..._buffers['bias']' dtype mismatch. expected BFloat16, actual Float

重编译一次 ≈ Dynamo trace + Inductor codegen + triton JIT(秒级开销),会让 compile 比 eager 慢 一到两个数量级。修复(forward 用局部变量、不 mutate 模块状态)后 compile 恢复应有的收益。 详见 pattern-dev/references/pattern-dev-notes.md §4(模块状态就地变更类问题)与 pattern-dev/references/mismatch-catalog.md(7 类 mismatch)。

Layer 3b: 通信掩盖分析(多卡)

Exposed Ratio = 未与计算重叠的通信耗时 / 通信总耗时
  • Exposed Ratio > 30%:显著不可掩盖 → 检查 RSP 通信流水线
  • Exposed Ratio < 10%:通信良好掩盖

通信算子参考表(参照 hccl-test skill,Ascend agent-skills):

通信算子推荐度适用场景
AllReduce推荐TP reduce-scale 梯度/数据聚合
AllGather推荐序列并行结果收集
AlltoAll条件Ulysses USP 注意力头重组
Broadcast可选权重/配置广播

完整 HCCL 测试和带宽数据见 hccl-test(Ascend agent-skills)。

Layer 3c: 融合机会分析(候选识别,不做边界与收益判定)

从执行序导出融合机会候选,逐条给出「模式名 + 区域坐标(起止算子)+ 相似度分级」,再交棒 ../fusion-scope-analyze/SKILL.md——由它按融合单元构造规则切边界、用计算单元利用率判型并估收益 (本技能只出候选,不判「能不能融、融多大、值不值」)。交棒必须带候选清单(每条含区域坐标); 交付件的列契约与门禁见 ../fusion-scope-analyze/scripts/check_fusion_scope.py。

候选族与识别规则的单点已迁至 ../fusion-scope-analyze/references/fusion-unit-method.md §3; 编译侧开关名与启用方式见 docs/zh/features/compilation.md §Pattern 融合(开关真源)。 「预期收益量级」属业内启发式(非本仓实测、非承诺),只用于排序取舍;本技能不再保留该列。

当没有精确匹配的模式时,标注相似度:high / medium / low

  • high: kernel 序列模式、source location、TP context 高度一致
  • medium: 部分特征匹配但缺少关键证据
  • low: 仅 kernel 名称接近,语义结构和上下文不匹配

Layer 4: 算子明细

列出占比 >1% 的单一算子(按耗时降序)。低于 1% 的算子不列出:

算子名耗时(ms)占比类型所属阶段
flash_attn_scorexxxx%FADiT
npu_linearxxxx%MatMulDiT

Layer 5: 优化建议

每条建议固定格式:优先级 | 发现 | 优化方向 | 引用

分析仅给出优化方向,具体方案(API/算法/参数选择)由 dit-perf-opt 确定 (特性真源 docs/zh/features/*;支持状态 framework-integration/references/framework-support-matrix.md)。

建议触发规则:

Layer 2/3 发现阈值优化方向引用
DiT, MatMul 占比高>50%MatMul 量化docs/zh/features/quantization.md §Linear量化
DiT, FA 占比高>30%Attention 优化(量化+稀疏)docs/zh/features/quantization.md §FA量化 + sparse.md
DiT, Vector 占比高>20%编译融合docs/zh/features/compilation.md §Pattern 融合
DiT, Comm exposed>30%通信掩盖docs/zh/features/parallelism.md
VAE, MatMul 占比高>30%ACLGraph 加速docs/zh/features/compilation.md §ACLGraph 加速
VAE, Conv2D 连续—VAE 融合(通用)需自行实现
Host Bound 高>20%re-profile with with_stack=true—
MindIE-SD Pattern 命中—开启对应 CompilationConfig 开关docs/zh/features/compilation.md §Pattern 融合

优先级规则:

  • P0 — MindIE-SD Pattern 命中,有开关可直接启用
  • P1 — 算子分类触发建议,有 docs/zh/features/* 对应方向
  • P2 — 通用融合建议或数据质量建议,需自行实现/验证

建议结构同样遵循分阶段原则:DiT 和 VAE 各自的建议分开输出。

分析脚本

  • scripts/analyze_trace.py — 5 层递进分析,输出 profiling_report.md + model_architecture_report.md
  • scripts/compare_traces.py — 两次 run 的算子级对比,标注 REGRESSION/improvement

Reference Files

  • references/capability-matrix.md — 加载时机: 确定分析路径和可用 profiler 工具时
  • references/operator-catalog.md — 加载时机: 识别具体算子对应的 NPU 实现和已知问题时
  • references/heuristics.md — 加载时机: 判断优化方向时
  • references/performance-analysis-methodology.md — 加载时机: 多卡统计口径(固定 rank0/p50)、收益三层证据与同窗口同卡组对比基准时
  • references/analysis-flow.md — 加载时机: 需要端到端分析流程时
  • references/eager-vs-compile-report.md — 加载时机: 需要出 compile vs eager 收益对比的双报表(聚合口径、收益分母、站点→kernel 归属、未实现行填充规则、fail-closed 记帐)时——自 dummy-run 下沉,该口径的单点在本文件

维护与更新

当发现新的瓶颈类型、算子耗时分析方法更新、CANN profiler 输出格式变更或性能诊断工具升级时, 按 dev-workflow 的复盘流程更新本 skill。

  • 更新触发条件:CANN profiler 列名 / 列语义变化(Type vs Accelerator Core 这类同名列的 归属会随版本变)、step_trace_time 四元组口径变化、或 §「读表口径与可复现性」三条的 读数(重叠计入的量级、跨设备可复现性分层、列语义归属)不再成立时。
  • 复核方法:换版本 / 换采集档后重跑三项最小核对 —— ① 同一份产物分别用「跨流 ΣDuration」与 「纯计算忙碌」出数,确认两者不相等且差额与"被重叠的通信"量级一致(相等才该怀疑口径已变); ② 同配置两次独立采集比调用次数与总量,确认"计数一致、单核漂移"的分层仍成立; ③ 对 Type / Accelerator Core 各取去重值集合,确认哪些值属于哪一列。
  • 失效信号:若某次采集里「trace 的 Communication」与「hcom_* 行 ΣDuration」不再相等, 说明表与 trace 的对应关系或解析已变 —— 先修解析,再引用任何通信读数。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

**精度验收标准**:凡是"改动不应改变结果"的场合(等价替换、算子/子模块融合、并行切分、 编译与图下发、拷贝消减),都按本标准判"合格 / 不合格"——等价分层(L1 逐位 / L2 数值门 / L3 有损门)+ 三级验收序(① 同配置重跑逐位 → ② 跨配置数值门 + 产物 md5 不变 → ③ 质量门)+ 判据不达标时的排障入口。当用户说"这个算子能不能换个写法/换个 kernel/等价实现/ 无损替换""替换后结果会不会变""怎么证明逐位一致""结果不对""花屏""尾部塌了" "CPU 跑对 NPU 跑不对",或发现某个 hotspot 占了大头(例如某类算子在阶段里占 90% 以上)想动手时, 都应触发;即使用户只说"这样改有没有把结果改坏""能不能判它是无损的"也应触发。 覆盖:等价分层与判据、满足本标准的实现约定(per-shape 对拍写进实现,把索引/相位/顺序类重写 错误在首次调用抓住)、per-shape 条件性等价(同一改动在不同形状下结论可能不同)、 判据不达标 → `references/silent-failure-localization.md` 排障入口、否决案例的形态学 (换写法未换 kernel / 差异极小仍非逐位 / 等价但 OOM)、以及收益口径的归属(性能数字一律交 `perf-gate`)。 **近义分流**:选量化档 / 特性选档(要不要开量化、开哪一档)→ `dit-perf-opt`; 并行选型(USP / CP / TP 怎么切)→ `dit-parallel-opt`;本技能只判"结果是否被改变", 不负责选档与选型。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

NPU 图批量下发能力(aclgraph / aclgraph_ex 家族)的开发与调优。覆盖 mindiesd 的 aclgraph_backend:NPUGraph 静态 capture、全局 graph pool、 lazy capture、专用 copy stream + event 管线、shape/dtype 校验、max_entries 驱逐。 当用户需要减少 host launch 开销、静态 shape 大 batch 场景加速、 或排查 NPUGraph replay 输入不匹配问题时使用此 skill。 即使用户只提"批量下发""graph capture""图捕获"而未说 aclgraph,也应触发; pattern/Inductor 融合(default 后端)见 pattern-dev,算子本体见 operator-dev, 本技能只覆盖图批量下发。由 dev-workflow 的编译开发阶段与 model-auto-optimization 的 图下发场景指引加载。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

MindIE-SD 核心算子(FA/BSA/GMM/MM)性能基准工具链。使用:模型优化(model-auto-optimization 的 S1/S4 选型)中用 mindie_bench 对单算子做实现级实测,按 dtype/量化档/稀疏度/形态对比 选出最优配置(产物:选型证据;稀疏度-性能曲线供 S4 稀疏度选型);开发:benchmarks/ 工具链扩展与新算子接入测试(供 operator-dev / pattern-dev 调用)。 当用户需要对比算子实现选型、新增或修改 benchmark 代码、排查 benchmark 数据异常、 给基准加算子/指标时使用;即使用户只说"benchmark 数据不对""给基准加个算子" "对比下这几个 FA 实现哪个快"也应触发;特性级方案选档请走 dit-perf-opt (本 skill 只做实现级实测)。 由 model-auto-optimization 的 S1/S4 选型场景与 operator-dev 的算子接入验证场景调用, 亦由 dev-workflow 在基准开发时指引加载。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

MindIE-SD Python 代码格式与 lint 规则。当编写、格式化、lint 检查或审查 MindIE-SD 项目的 Python 代码时使用此 skill。 即使用户只提到"提个MR"或"代码好像有 lint 问题"而未明确说格式化,也应触发;Markdown 格式问题见 markdown-lint,提交/PR 规范见 mindie-sd-community-governance。 通常由 dev-workflow 在编码阶段指引加载。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

MindIE-SD 仓库开发总入口(侧轨)。当用户进行 MindIE-SD 的任何代码开发工作时使用此 skill—— 包括但不限于写 pattern、改测试、部署到昇腾、跑 benchmark、性能分析、多卡并行、复盘归档。 模型/三方框架自动优化类任务(非本仓代码改动)由 model-auto-optimization 入口承接, 本入口只在优化流程需要新增 pattern/算子/部署代码时承接其指向的开发子任务。 即使用户未明确提到"开发流程",只要涉及 MindIE-SD 代码改动都应触发。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

分布式并行策略选型与实测(USP / CP 通信掩盖 / CFG / TP/RSP/PP 概览;含拓扑相关选型 (按实测拓扑分域条件化:域内 bulk vs 跨域 head-parallel 翻转)与 AlltoAllV 缺陷绕过)。在 model-auto-optimization 中承担 S3:优先 USP、结合拓扑带宽差异选 CP,少量 step + 多 rank 验证特性开启与掩盖(产物:并行方案 + 多 rank 证据)。当用户需要多卡并行 策略选择、**序列并行形态抉择**(纯 Ulysses vs 复合 AllGather-KV×Ulysses:按 GQA / 跨域带宽 / 形态 plumbing 条件化定胜负)、**并行 × 稀疏叠加**(seam 契约:先汇聚后稀疏、 窗口偏移、块对齐、per-head 掩码;含「稀疏看似生效实则未生效」判定)、通信掩盖调优 (含**掩盖率上限**:1-1/n 何时成立、c/f 决定的真实上限、没生效的排查)、**并行方案 差异归因**(阶段 Δ 分解 / 集合通信按 communicator 归属 / 4→8 卡线性度),或排查多卡 跑不动 / 通信暴露大 / 换卡组 / 端口 bind / HCCL 带宽验证问题时使用;**并收编原并行作用域诊断**: 改了 SP/CP/Ulysses/AllGather-KV 后**不报错但结果没变/性能没变**、或小规模能跑大规模崩 (如 Ascend EE1003 coreDim 超限)时,用本技能证明"改动到底有没有生效"(判别量逐层收窄 + 两侧对照 + 日志≠生效,见 `references/scope-effectiveness-check.md`); 即使用户只说 "多卡跑不动""通信暴露大""为什么没达到 6/7 的掩盖率""CP 和 USP 该选哪个""CP 叠稀疏 怎么不生效"而未说并行,也应触发。特性档位/接口事实见 `docs/zh/features/parallelism.md` /`usp.md`(仓内真源),框架侧开启见 framework-integration; 本技能承载选型决策、monkey-patch 掩盖与多卡诊断实测。 由 dev-workflow 多卡场景触发,亦由 model-auto-optimization 的 S3 阶段触发。

The English summary is being prepared. Showing the original description.

Ascend/MindIE-SD15Updated Oct 17, 2026

See all skills by Ascend

Report a problem with this skill