-
Notifications
You must be signed in to change notification settings - Fork 3.5k
add settings to make training results deterministic #5449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
redfler
wants to merge
27
commits into
isaac-sim:develop
Choose a base branch
from
redfler:xul/determinism
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+489
−1
Open
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
8fbf294
add settings to make training results deterministic
redfler b83b7ee
checks with ./isaaclab.sh --format
redfler 2491117
added name to the CONTRIBUTORS.md
redfler bef85ea
improve title and description, add comment and newline
redfler 980591d
document --experience and --determinism
redfler 5beb625
add deterministic argument
redfler a345583
change dependencies
redfler 4502b48
add flag to AppLauncher
redfler 33bf92c
add test
redfler 300d494
update docs
redfler 04dba81
format
redfler fe579e7
Merge branch 'develop' into xul/determinism
redfler 37bf404
use RendererCfg as default renderer_cfg in CameraCfg (#5521)
r-schmitt c87955e
Refactors schema cfgs to separate solver-common from PhysX-specific f…
vidurv-nvidia ce9432e
Updates docs for using nurec background in locomanipulation sdg (#5301)
dengyuchenkit 425a473
[CI][Auto Version Bump] Compile changelog fragments (workflow_dispatch)
isaaclab-bot[bot] 71e8bf1
[Newton] Bump Newton pin to v1.2.0rc2 (#5523)
hujc7 3fb3e2d
[CI][Auto Version Bump] Compile changelog fragments (schedule)
isaaclab-bot[bot] 2e070e1
Fixes joint friction API docs (#5533)
AntoineRichard e08e75b
Deprecates state properties calls (#5423)
AntoineRichard 18197ee
Merge branch 'develop' into xul/determinism
redfler 2174553
Merge branch 'develop' into xul/determinism
redfler 4b60e40
fix docs
redfler 9c44458
fix docs
redfler 82da515
resolve isaaclab-review-bot
redfler 46fdce9
Merge branch 'develop' into xul/determinism
redfler ec23642
resolve isaaclab-review-bot
redfler File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,168 @@ | ||
| ## | ||
| # Adapted from: https://github.com/NVIDIA-Omniverse/OmniIsaacGymEnvs/blob/main/apps/omni.isaac.sim.python.gym.camera.kit | ||
| # | ||
| # This app file designed specifically towards vision-based RL tasks. It provides necessary settings to enable | ||
| # multiple cameras to be rendered each frame. Additional settings are also applied to increase performance when | ||
| # rendering cameras across multiple environments. | ||
| ## | ||
|
|
||
| [package] | ||
| title = "Isaac Lab Python Headless Deterministic Rendering" | ||
| description = "An app for running Isaac Lab headlessly with rendering enabled and deterministic settings" | ||
| version = "3.0.0" | ||
|
|
||
| # That makes it browsable in UI with "experience" filter | ||
| keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"] | ||
|
|
||
| [dependencies] | ||
| # Isaac Lab headless rendering app | ||
| "isaaclab.python.headless.rendering" = {} | ||
|
|
||
|
|
||
| [settings.isaaclab] | ||
| # This is used to check that this experience file is loaded when using cameras | ||
| cameras_enabled = true | ||
|
|
||
| [settings] | ||
| # Note: This path was adapted to be respective to the kit-exe file location | ||
| app.versionFile = "${exe-path}/VERSION" | ||
| app.folder = "${exe-path}/" | ||
| app.name = "IsaacLab" | ||
| app.version = "3.0.0" | ||
|
|
||
| ### FSD | ||
| app.useFabricSceneDelegate = true | ||
| # Temporary, should be enabled by default in Kit soon | ||
| rtx.hydra.readTransformsFromFabricInRenderDelegate = true | ||
|
|
||
| # Disable print outs on extension startup information | ||
| # this only disables the app print_and_log function | ||
| app.enableStdoutOutput = false | ||
|
|
||
| # set the default ros bridge to disable on startup | ||
| isaac.startup.ros_bridge_extension = "" | ||
|
|
||
| # Flags for better rendering performance | ||
| # Disabling these settings reduces renderer VRAM usage and improves rendering performance, but at some quality cost | ||
| rtx.translucency.enabled = false | ||
| rtx.reflections.enabled = false | ||
| rtx.indirectDiffuse.enabled = false | ||
| rtx-transient.dlssg.enabled = false | ||
| rtx.directLighting.sampledLighting.enabled = true | ||
| rtx.directLighting.sampledLighting.samplesPerPixel = 1 | ||
| rtx.sceneDb.ambientLightIntensity = 1.0 | ||
| # rtx.shadows.enabled = false | ||
|
|
||
| # Avoids replicator warning | ||
| rtx.pathtracing.maxSamplesPerLaunch = 1000000 | ||
| # Avoids silent trimming of tiles | ||
| rtx.viewTile.limit = 1000000 | ||
|
|
||
| # Disable present thread to improve performance | ||
| exts."omni.renderer.core".present.enabled=false | ||
|
|
||
| # Disabling these settings reduces renderer VRAM usage and improves rendering performance, but at some quality cost | ||
| rtx.raytracing.cached.enabled = false | ||
| rtx.ambientOcclusion.enabled = false | ||
|
|
||
| # Set the DLSS model | ||
| rtx.post.dlss.execMode = 0 # can be 0 (Performance), 1 (Balanced), 2 (Quality), or 3 (Auto) | ||
|
|
||
| # Avoids unnecessary GPU context initialization | ||
| renderer.multiGpu.maxGpuCount=1 | ||
|
|
||
| # Force synchronous rendering to improve training results | ||
| omni.replicator.asyncRendering = false | ||
|
|
||
| # Avoids frame offset issue | ||
| app.updateOrder.checkForHydraRenderComplete = 1000 | ||
| app.renderer.waitIdle=true | ||
| app.hydraEngine.waitIdle=true | ||
|
|
||
| # NuRec | ||
| omni.rtx.nre.compositing.rendererHints = 3 | ||
|
|
||
| # Forces serial processing for omni graph to avoid NCCL timeout hangs in distributed training | ||
| app.execution.debug.forceSerial = true | ||
|
|
||
| app.audio.enabled = false | ||
|
|
||
| # Enable Vulkan - avoids torch+cu12 error on windows | ||
| app.vulkan = true | ||
|
|
||
| # Set profiler backend to NVTX by default | ||
| app.profilerBackend = "nvtx" | ||
|
|
||
| # Disables rate limit in runloop | ||
| app.runLoops.main.rateLimitEnabled=false | ||
|
|
||
| # disable replicator orchestrator for better runtime perf | ||
| exts."omni.replicator.core".Orchestrator.enabled = false | ||
|
|
||
| # disable the metrics assembler change listener, we don't want to do any runtime changes | ||
| metricsAssembler.changeListenerEnabled = false | ||
|
|
||
| # explicitly disable omni.kit.pip_archive to prevent conflicting dependencies | ||
| app.extensions.excluded = ["omni.kit.pip_archive", "omni.isaac.ml_archive", "isaacsim.pip.newton", "omni.warp.core"] | ||
|
|
||
| [settings.app.python] | ||
| # These disable the kit app from also printing out python output, which gets confusing | ||
| interceptSysStdOutput = false | ||
| logSysStdOutput = false | ||
|
|
||
| [settings.app.renderer] | ||
| skipWhileMinimized = false | ||
| sleepMsOnFocus = 0 | ||
| sleepMsOutOfFocus = 0 | ||
|
|
||
| [settings.physics] | ||
| updateToUsd = false | ||
| updateParticlesToUsd = false | ||
| updateVelocitiesToUsd = false | ||
| updateForceSensorsToUsd = false | ||
| outputVelocitiesLocalSpace = false | ||
| useFastCache = false | ||
| visualizationDisplayJoints = false | ||
| fabricUpdateTransformations = false | ||
| fabricUpdateVelocities = false | ||
| fabricUpdateForceSensors = false | ||
| fabricUpdateJointStates = false | ||
| ### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric | ||
| fabricUseGPUInterop = true | ||
|
|
||
| # Register extension folder from this repo in kit | ||
| [settings.app.exts] | ||
| folders = [ | ||
| "${exe-path}/exts", # kit extensions | ||
| "${exe-path}/extscore", # kit core extensions | ||
| "${exe-path}/../exts", # isaac extensions | ||
| "${exe-path}/../extscache", # isaac cache extensions | ||
| "${exe-path}/../extsPhysics", # isaac physics extensions | ||
| "${exe-path}/../isaacsim/exts", # isaac extensions for pip | ||
| "${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip | ||
| "${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip | ||
| "${app}", # needed to find other app files | ||
| "${app}/../source", # needed to find extensions in Isaac Lab | ||
| ] | ||
|
|
||
| [settings.persistent] | ||
| UJITSO.geometry = true | ||
| UJITSO.enabled = true | ||
|
|
||
| # Asset path | ||
| # set the S3 directory manually to the latest published S3 | ||
| # note: this is done to ensure prior versions of Isaac Sim still use the latest assets | ||
| [settings] | ||
| persistent.isaac.asset_root.default = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.0" | ||
| persistent.isaac.asset_root.cloud = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.0" | ||
| persistent.isaac.asset_root.nvidia = "https://omniverse-content-staging.s3-us-west-2.amazonaws.com/Assets/Isaac/6.0" | ||
|
|
||
| # ═══════════════════════════════════════════════════════════ | ||
| # DETERMINISM-CRITICAL: changing these may break reproducibility | ||
| # ═══════════════════════════════════════════════════════════ | ||
| rtx.rendermode = "RealTimePathTracing" | ||
| # Determinism: disable RTPT caches so each run recomputes lighting from the same | ||
| # explicit inputs. Warm/cold cache history can otherwise change accumulation paths | ||
| # and produce frame-to-frame drift across repeated experiments. | ||
| rtx.rtpt.cached.enabled = false | ||
| rtx.rtpt.lightcache.cached.enabled = false | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.