npx skills add ...
npx skills add nvidia/omniperf --skill profiling
Capture performance traces using CPU ChromeTrace, Tracy, and Nsight Systems/NVTX for Kit-based applications (Isaac Sim, Isaac Lab, Kit SDK). Covers COLD/WARM/TRACY measurement separation, canonical Tracy capture sequence, last-resort force-kill handling, nsys profile commands, Kit profiler args, and lightweight export handoff to nsys-analyze. Use when running profiling captures, setting up trace collection, or troubleshooting capture failures. NOT for adding profiling zones (use profiling-api), deep trace analysis (use nsys-analyze), memory allocation profiling (use tracy-memory), or applying performance fixes (use perf-tuning).
npx skills add nvidia/omniperf --skill profiling
This is the agent-facing profiling workflow for Kit-based applications (Isaac Sim, Isaac Lab, Kit SDK).
dev/docs/profiling-guide.md is the source of truth; keep this skill aligned with that guide.
Profilers add overhead. Keep measurement and diagnosis as separate runs:
CARB_PROFILING_PYTHON=1 set, and .tracy captured via a separate capture process. Use this for analysis only, not headline numbers.Never report benchmark performance from a profiled run. Nsight Systems captures are also analysis-only and have their own overhead.
Use the CPU backend for short, shareable, offline captures or targeted runtime intervals.
Tracy capture is error-prone. Follow this exact sequence to avoid port conflicts and data loss.
Tracy port: default is 8086; Isaac Sim 6.0+ commonly uses 8087 to avoid OV Hub. Kit auto-increments to 8087, 8088, etc. on conflict. Set TRACY_PORT when you know the port.
Tracy capture binary: use the bundled omni.kit.profiler.tracy capture binary when available, or build the Tracy version that matches Kit's carb_sdk_plugins from source.
carb_sdk_plugins version | Tracy version |
|---|---|
< 178 | 0.9.1 legacy protocol |
>= 178 | 0.11.1+nv1 current protocol |
Check Kit's all-deps.packman.xml before building a fallback capture binary. For current Kit builds, use Tracy v0.11.1 and the headless binary at capture/build/unix/capture-release.
kill -9 as the guide-prescribed last resort.os._exit(0) Close PatchDo not patch installed Isaac Sim files by default. Normal shutdown is preferred because it runs cleanup code and keeps the install reproducible.
Use this workaround only when all of the following are true:
Prefer first to use the force-kill sequence above after results are complete. Patch only when repeated hangs prevent usable capture completion.
If ALL expected output files exist with non-zero size, and the process is still running after 2+ minutes with no new output, it is probably hung. Follow the guide sequence and force-kill the app and capture processes:
-t osrt is NOT supported on Windows (use -t wddm)nsys profile CANNOT profile .bat files — must target .exe directlynsys stats may fail with UnicodeDecodeError — export to SQLite insteadcd to the directory containing the target exeFor NVTX zone interpretation and phase detection config, see the nsys-analyze skill.
Isaac Sim with Tracy:
Isaac Sim with Nsight:
Isaac Lab with Nsight:
Export traces here, then use nsys-analyze for SQL queries, Tracy Statistics/Range Limit comparison, zone ranking, phase detection, and interpretation.
Tracy capture already applies LZ4 compression. For sharing very large .tracy files, optionally recompress with update -z 1.
MANDATORY before any benchmark. See the perf-tuning skill for commands and details.