perf-tuning

द्वारा nvidia

सामान्य Kit/Isaac Sim/Isaac Lab प्रदर्शन समस्याओं का समाधान विशिष्ट सेटिंग्स और कॉन्फ़िगरेशन परिवर्तनों का उपयोग करके करें। PresentFrame रुकावटों को शामिल करता है,…

npx skills add https://github.com/nvidia/omniperf --skill perf-tuning

Performance Tuning for Kit / Isaac Sim / Isaac Lab

Specific fixes for performance issues identified through profiling. Prerequisite: you should already know where the bottleneck is (from diagnose-perf, profiling, or nsys-analyze skills).

PresentFrame is Abnormally Slow

Two causes:

GPU Backpressure

GPU work exceeds frame budget → CPU waits for swapchain buffer.

Verify: Enable GPU zones in Tracy and check if GPU frametime > CPU frametime.

--/profiler/gpu/tracyInject/enabled=true --/profiler/gpu=true --/rtx/addTileGpuAnnotations=true

Fix: Reduce GPU workload — see RTX Tuning below.

VNC / Remote Desktop

Virtual framebuffer causes driver present timing issues.

Fix: Use a physical monitor or run in headless mode.

resolveSamplerFeedback is Abnormally Slow

Texture Streaming bug causes per-frame thread waits proportional to RenderProduct count.

Fix: Disable Texture Streaming:

--/rtx-transient/resourcemanager/enableTextureStreaming=false

Impact: ~6.72 ms saved per frame (measured). VRAM usage may increase — verify headroom.

Headless Mode (3–4 ms GPU savings)

For simulation-only workloads (RL training, SDG, automated benchmarks):

# Isaac Sim via SimulationApp
simulation_app = SimulationApp({"headless": True, "disable_viewport_updates": True})
# Kit args
--no-window --/app/window/hideUi=True

Also disable viewport updates in Python:

from omni.kit.viewport.utility import get_active_viewport
get_active_viewport().updates_enabled = False

Multi-Camera Render Count Verification

Always check Tracy GPU zones to verify only intended cameras are rendering:

  • Count extrt/rtx/rtaTexturesMC_* (camera textures) and t_viewport_ViewportTexture_* (viewport textures)
  • Verify resolution in zone names matches intent (e.g., rtaTexturesMC_3_RP_1920x1080)
  • In headless mode, check that unnecessary viewport textures aren't rendering in background

Common Multi-Camera Fixes

  • Remove per-camera viewports; keep render products only.
  • Replace separate camera render products with TiledCameraSensor when the workflow supports it.
  • Destroy or disable the default viewport after sensor setup in headless benchmark/simulation runs.
from isaacsim.sensors.experimental.camera import TiledCameraSensor

sensor = TiledCameraSensor(
    camera_paths,          # List[str]
    resolution=(H, W),     # Height, Width
    annotators=["rgb"],
)
data, info = sensor.get_data("rgb")

PhysX Tuning

Expose Full PhysX Detail

Default profilerMask=1 hides internal PhysX zones. To diagnose PhysX bottlenecks, remove the mask arg (defaults to ALL).

Key Settings

SettingEffect
--/physics/suppressReadback=trueSuppress GPU→CPU readback
--/physics/updateToUsd=falseSkip physics→USD writeback (only if not reading state from USD)
--/physics/disableContactProcessing=trueSkip contact event callbacks (if no subscriber needs them)

Async Physics (USD Schema)

from pxr import UsdPhysics, PhysxSchema

stage = omni.usd.get_context().get_stage()
for prim in stage.Traverse():
    if prim.IsA(UsdPhysics.Scene):
        api = PhysxSchema.PhysxSceneAPI.Apply(prim)
        api.CreateUpdateTypeAttr().Set(PhysxSchema.Tokens.asynchronous)

Applicable when previous-frame physics results are acceptable (RL training, SDG).

Solver Type

The default solver is PGS. The profiling guide calls out switching PhysxSceneAPI.solverType to TGS as a scenario-dependent tuning option; verify with a WARM benchmark before keeping it.

api = PhysxSchema.PhysxSceneAPI.Apply(physics_scene_prim)
api.CreateSolverTypeAttr().Set("TGS")

Extension Change Detection (fsWatcher)

~0.1 ms/frame overhead for hot-reload file monitoring. Disable for benchmarks:

--/app/extensions/fsWatcherEnabled=false

Viewport Gizmo Overhead

Gizmos (manipulators, grid, selection outlines) cause significant CPU overhead in scenes with many objects.

--/persistent/app/viewport/displayOptions=0
--/persistent/app/viewport/gizmo/enabled=false

DLSS-G (Frame Generation) — Know What You're Measuring

DLSS-G inserts AI sub-frames between real frames:

  • Viewport HUD FPS includes sub-frames → inflated by 2–4x
  • Tracy/benchmark frametime FPS = actual rendering FPS
GPU GenSub-frame Multiplier
Ada (RTX 40)2x
Blackwell (RTX 50)3–4x

Rule: DLSS-G is for viewport display only. Disable for simulation/benchmarks:

--/rtx-transient/dlssg/enabled=false  # default is off, but verify

HydraEngine waitIdle

When /app/hydraEngine/waitIdle=true (default), main thread blocks every frame until GPU finishes.

--/app/hydraEngine/waitIdle=false  # allow CPU-GPU pipelining

Safe for rendering-only workloads. Keep true if reading GPU results same-frame (physics readback, synchronous sensors).

Multi-GPU — Not Always Faster

Multi-GPU adds CPU overhead (job distribution, per-GPU setup, data gathering). Only effective when GPU is the clear bottleneck.

ScenarioRecommendation
High-res (4K) × many cameras (4–8)Multi-GPU effective
Low-res (1080p) × few cameras (1–2)Single GPU faster
CPU-bottleneckedAdding GPUs = pointless

Always verify GPU-bound with Tracy/nsys before adding GPUs.

CPU Governor

# Check
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort | uniq -c
# Fix
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Real impact: powersaveperformance saved ~4 ms/frame in measured cases.

RTX Tuning When GPU-Bound

Recommended Approach

Start from an IsaacLab preset, then selectively re-enable features you need.

IsaacLab Presets (ChessRTX path-traced, RTX PRO 6000 Blackwell)

PresetFPSΔ vs default
(default)51.85
isaaclab_quality70.25+35.5%
isaaclab_balanced87.81+69.4%
isaaclab_performance111.90+115.8%

DLSS execMode — Single Biggest Lever

execModeModeFPSΔ vs default
0Performance106.24+104.9%
1Balanced87.08+68.0%
2Quality71.42+37.7%
--/rtx/post/dlss/execMode=0  # always specify 0/1/2 — mode 3 (Auto) broken in headless

~91% of isaaclab_performance's gain comes from this single setting.

Full Preset Parameter Table

For detailed per-parameter comparison across all three presets, see references/rtx-presets.md.

Tuning Checklist

  1. Confirm GPU-bound with Tracy/nsys
  2. Verify DLSS-G off for simulation (--/rtx-transient/dlssg/enabled=false)
  3. Set --/rtx/post/dlss/execMode=0 (biggest single lever)
  4. Apply isaaclab_performance preset for maximum speed
  5. Selectively re-enable visual features as needed
  6. Scene-dependent — numbers will vary

nvidia की और Skills

compileiq-debug
nvidia
उपयोग करें जब कुछ गलत हो: Search() हैंग हो जाता है, सभी मूल्यांकन INVALID_SCORE लौटाते हैं, स्कोर में सुधार नहीं हो रहा है, हर कॉन्फ़िगरेशन एक ही संख्या लौटाता है, ptxas त्रुटियाँ…
create-github-pr
nvidia
gh CLI का उपयोग करके GitHub पुल रिक्वेस्ट बनाएँ। जब उपयोगकर्ता नया PR बनाना चाहता है, कोड समीक्षा के लिए सबमिट करना चाहता है, या पुल रिक्वेस्ट खोलना चाहता है, तब उपयोग करें। ट्रिगर कीवर्ड -…
nemoclaw-maintainer-cross-issue-sweep
nvidia
अन्य खुले मुद्दों को स्कैन करता है ताकि उन मुद्दों को ढूंढ सके जिन्हें कोई दिया गया PR ठीक कर सकता है या गलती से तोड़ सकता है। आसन्न-सुधार अवसरों और विरोधाभास जोखिमों को file:line… के साथ आउटपुट करता है।
fhir-basics
nvidia
एजेंटों को सिखाता है कि FHIR R4 APIs कैसे काम करते हैं, कौन से संसाधन उपलब्ध हैं, उन्हें खोज मापदंडों के साथ कैसे क्वेरी करें, और सभी प्रतिक्रिया प्रारूपों को सही ढंग से कैसे पार्स करें…
compileiq-validate-result
nvidia
खोज पूरी होने के बाद और किसी स्पीडअप का दावा करने या ACF भेजने से पहले उपयोग करें। dump_results CSV लोड करता है, शीर्ष-K उम्मीदवारों (एकल-उद्देश्य) को निकालता है…
changelog-audit
nvidia
रिलीज़ से पहले Warp CHANGELOG.md का ऑडिट करें: खोई हुई प्रविष्टियाँ पुनर्प्राप्त करें, उपयोगकर्ता प्रभाव के अनुसार क्रमबद्ध करें, प्रविष्टि भाषा को परिष्कृत करें, लाइन-रैप करें, और (रिलीज़-ब्रांच मोड) तुलना बढ़ाएँ…
maintain-dynamic-plugins
nvidia
NeMo Relay डायनामिक प्लगइन लोडर, मैनिफेस्ट, रस्ट नेटिव SDK, gRPC वर्कर प्रोटोकॉल, पायथन वर्कर SDK, दस्तावेज़, परीक्षण और रिलीज़ वर्कफ़्लो कवरेज बनाए रखें
dgx-diagnose
nvidia
सामान्य DGX Station GB300 समस्याओं का निदान करें — CUDA क्रैश, गलत-GPU लक्ष्यीकरण, vLLM/SGLang कंटेनर बग, MIG स्थिति समस्याएं, NVLink/Fabric Manager त्रुटियां,…