What problem does it solve? Collecting operator-level performance profiling data from remote Ascend NPU devices is error-prone: warmup steps pollute traces, multi-card runs duplicate output, and missing utilization metrics silently invalidate downstream bottleneck analysis. This Skill standardizes the entire collection workflow so the captured data is always valid input for profiling analysis. ## Core Features & Use Cases - Dual collection entry points: Use collect_profile.py for mindiesd's own scripts (SSH connect, run profiler, compress, download) or collect_patch_template.py to wrap third-party frameworks like LightX2V, DiffSynth-Engine, and vLLM-Omni with minimal-invasion patches launched via torchrun. - Fail-closed output gate: check_output.py validates that every capture contains execution-order columns and the four utilization ratio families (vec/mac/mte2/mte3), rejecting N/A-only results before they reach downstream analysis. - Warmup and isolation discipline: Enforces warmup outside the profiler (5 steps default, 10+ for JIT compile scenarios), rank0-only collection, and per-run profile directory isolation for parallel captures. - Use Case: You need kernel-level timing for a vLLM-Omni HTTP service. The Skill wraps the transformer forward, warms up via real HTTP requests, profiles one forward pass on rank0, packages ASCEND_PROFILER_OUTPUT as tar.gz, and transfers it back for analysis. ## Quick Start Ask the AI to collect profiling data from your remote Ascend server for a given inference script, and it will run the profiler with proper warmup, validate the output, and return the compressed trace archive.