SuperAPI AI 工具集

profiling

通用与其它

查看项目

更新于 10-16 02:34

技能介绍

用途:为 Kit 系应用(Isaac Sim、Isaac Lab、Kit SDK)提供面向智能体的性能剖析工作流,覆盖 CPU ChromeTrace、Tracy 与 Nsight Systems/NVTX 三种采集方式。

基准准确性:剖析器会引入开销,测量与诊断须分开运行。COLD 为全新安装/缓存状态下的首次运行,用于暴露启动与着色器缓存影响,不作为稳态性能数值;WARM 为缓存已填充且关闭剖析的同一负载,是权威的 FPS/帧时间基准;TRACY 与 WARM 缓存状态相同但启用 Tracy 后端、设置 CARB_PROFILING_PYTHON=1,仅用于分析。不得用带剖析的运行报告基准性能,Nsight Systems 采集同样仅用于分析。

CPU ChromeTrace:适合短时、可分享的离线采集或定向运行时区间。通过 Kit 参数启用,如 --/app/profilerBackend=cpu、--/app/profileFromStart=true、--/profiler/enabled=true 及 carb.profiler-cpu.plugin 的 saveProfile、compressProfile、filePath。运行时可用 carb.profiler 的 acquire_profiler_interface() 与 set_capture_mask(1/0) 控制定向采集。Chrome Trace JSON 可用 ./import-chrome input_trace.json output.tracy 转为 Tracy。

Tracy:需设置 TRACY_NO_SYS_TRACE=1、TRACY_NO_CALLSTACK=1、TRACY_PORT(默认 8086,Isaac Sim 6.0+ 常用 8087 以避开 OV Hub),分析阶段才设 CARB_PROFILING_PYTHON=1。Kit 参数包括 --/app/profilerBackend=tracy、--/profiler/gpu=true、--/profiler/gpu/tracyInject/enabled=true、--/app/profilerMask=1 等。采集顺序很关键:先启动应用,轮询端口开放后再启动 capture,等待基准结果文件出现后强制 kill -9 应用与采集进程;切勿用 SIGTERM 结束 capture,否则不会保存轨迹。carb_sdk_plugins 版本 <178 对应 Tracy 0.9.1 旧协议,>=178 对应 0.11.1+nv1。

Nsight Systems:Linux 用 sudo dpkg -i nsight-systems-*.deb 安装,Windows 下载 .msi。NVTX 参数含 --/app/profilerBackend=nvtx、--/profiler/gpu=true 等。nsys 命令使用 --trace=cuda,nvtx,vulkan,osrt、--gpu-metrics-devices=all、--gpuctxsw=true、--cuda-memory-usage=true、--cuda-graph-trace=graph:host-and-device。Windows 上 -t osrt 不支持(改用 wddm),不能剖析 .bat,需直接指向 .exe。

导出与交接:nsys export --type=sqlite -o profile.sqlite profile.nsys-rep;csvexport profile.tracy > zones.csv;Tracy 已用 LZ4 压缩,可用 update -z 1 重压缩。基准前必须将 CPU 调至性能模式。限制:Tracy 采集易出错,需严格按顺序操作;仅在反复挂起且输出已存在时才考虑对 simulation_app.py 打 os._exit(0) 补丁,且须先备份并事后还原。