Skip to content

[Isaac Sim 6.0] Updates torch to 2.9.0+cu128 for x86#4001

Merged
kellyguo11 merged 22 commits intoisaac-sim:feature/isaacsim-6-0from
kellyguo11:update-torch
Nov 14, 2025
Merged

[Isaac Sim 6.0] Updates torch to 2.9.0+cu128 for x86#4001
kellyguo11 merged 22 commits intoisaac-sim:feature/isaacsim-6-0from
kellyguo11:update-torch

Conversation

@kellyguo11
Copy link
Contributor

@kellyguo11 kellyguo11 commented Nov 11, 2025

Description

Updates torch to 2.9.0, keeping cuda version as 12.8 for x86 and 13.0 for arm (for spark support).

In Isaac Sim 6.0, use_stage needs to be registered for both the regular isaacsim core extension and the core experimental extension

Type of change

  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@kellyguo11 kellyguo11 marked this pull request as draft November 11, 2025 05:41
@github-actions github-actions bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Nov 11, 2025
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 11, 2025

Greptile Overview

Greptile Summary

This PR updates IsaacLab to be compatible with Isaac Sim 6.0, upgrading PyTorch to 2.9.0 with CUDA 12.8 for x86 platforms and CUDA 13.0 for ARM platforms.

Key Changes:

  • Updated PyTorch to 2.9.0 and torchvision to 0.24.0 across all installation scripts and documentation
  • Modified use_stage() function to register stage context with both core and experimental stage utils modules for Isaac Sim 6.0+
  • Wrapped _init_stage() call with use_stage() context manager in SimulationContext
  • Reorganized imports in multiple scripts to follow PEP 8 conventions
  • Updated version to 0.49.0 and added changelog entry
  • Enhanced CI workflow to skip nvidia packages in license checks

Critical Issue Found:
The version comparison logic in source/isaaclab/isaaclab/sim/utils.py:1152-1164 is inverted. The condition if isaac_sim_version < 6: executes the dual-context code (for Isaac Sim 6.0+), while else: executes single-context code (for Isaac Sim < 6.0). This is backwards - Isaac Sim 6.0 will get the wrong code path, potentially causing stage context issues with PhysicsContext and SimulationManager.

Confidence Score: 1/5

  • This PR has a critical logic bug that will cause runtime failures
  • The inverted version comparison in use_stage() means Isaac Sim 6.0 will execute code intended for older versions, breaking the dual stage context registration that is required for 6.0. This is a blocking issue that must be fixed before merge.
  • source/isaaclab/isaaclab/sim/utils.py contains critical inverted logic that will break Isaac Sim 6.0 compatibility

Important Files Changed

File Analysis

Filename Score Overview
source/isaaclab/isaaclab/sim/utils.py 1/5 Critical inverted version comparison logic in use_stage() function - code for Isaac Sim 6.0+ runs for versions < 6.0
source/isaaclab/isaaclab/sim/simulation_context.py 5/5 Wraps _init_stage call with use_stage context manager - depends on correct version logic in utils.py
isaaclab.sh 5/5 Updated torch to 2.9.0 and torchvision to 0.24.0, correctly uses cu128 for x86 and cu130 for ARM
isaaclab.bat 5/5 Updated torch to 2.9.0 and torchvision to 0.24.0 for Windows
source/isaaclab/setup.py 5/5 Updated minimum torch version requirement to 2.9, added coverage dependency

Sequence Diagram

sequenceDiagram
    participant User
    participant Installation Scripts
    participant Python Environment
    participant Isaac Sim 6.0
    participant SimulationContext
    participant use_stage Function
    participant Stage Utils (core)
    participant Stage Utils (experimental)

    User->>Installation Scripts: Run isaaclab.sh -i
    Installation Scripts->>Python Environment: Install torch 2.9.0+cu128 (x86) or cu130 (ARM)
    Installation Scripts->>Python Environment: Install Isaac Sim 6.0
    Installation Scripts->>Python Environment: Install IsaacLab dependencies
    
    Note over User,Python Environment: Runtime Behavior
    
    User->>SimulationContext: Initialize SimulationContext
    SimulationContext->>SimulationContext: _init_stage()
    SimulationContext->>use_stage Function: use_stage(get_initial_stage())
    
    alt Version Check (INVERTED LOGIC BUG)
        use_stage Function->>use_stage Function: Check isaac_sim_version < 6
        Note over use_stage Function: BUG: Logic is inverted!<br/>For Isaac Sim 6.0, this is FALSE
        use_stage Function->>Stage Utils (experimental): Import experimental.utils.stage
        use_stage Function->>Stage Utils (core): Set stage context
        use_stage Function->>Stage Utils (experimental): Set stage context
    end
    
    use_stage Function-->>SimulationContext: Context established
    SimulationContext->>Isaac Sim 6.0: super()._init_stage()
    SimulationContext->>SimulationContext: _set_additional_physx_params()
    SimulationContext->>SimulationContext: _load_fabric_interface()
    SimulationContext-->>User: Simulation ready
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Comments (3)

  1. docs/source/setup/installation/isaaclab_pip_installation.rst, line 28 (link)

    syntax: comment says CUDA 12.8 but should say CUDA 13.0 to match the cu130 version

  2. docs/source/setup/installation/isaaclab_pip_installation.rst, line 66 (link)

    syntax: outdated PyTorch version in comment - should be 2.9.0, not 2.7.0

  3. docs/source/setup/installation/isaaclab_pip_installation.rst, line 73 (link)

    syntax: outdated PyTorch version - should be 2.9.0, not 2.7.0

7 files reviewed, 8 comments

Edit Code Review Agent Settings | Greptile

.. code-block:: none

pip install torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
pip install torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: malformed PyTorch index URL - missing /cu130 after whl

Suggested change
pip install torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
pip install torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130

.. code-block:: bash

pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: malformed PyTorch index URL - missing /cu130 after whl

Suggested change
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130

.. code-block:: bash

pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: malformed PyTorch index URL - missing /cu130 after whl

Suggested change
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130

.. code-block:: bash

pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: malformed PyTorch index URL - missing /cu130 after whl

Suggested change
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130

.. code-block:: bash

pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

syntax: malformed PyTorch index URL - missing /cu130 after whl

Suggested change
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl30
pip install -U torch==2.9.0 torchvision==0.24.0 --index-url https://download.pytorch.org/whl/cu130

import torch
from datetime import datetime

from rsl_rl.runners import DistillationRunner, OnPolicyRunner
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this linter change?

kellyguo11 and others added 2 commits November 12, 2025 16:50
Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
@kellyguo11 kellyguo11 changed the title [6.0] Updates torch to 2.9.0+cu13 [Isaac Sim 6.0] Updates torch to 2.9.0+cu13 Nov 13, 2025
kellyguo11 and others added 9 commits November 12, 2025 19:00
Removed redundant environment variable export for ISAACSIM_ACCEPT_EULA.

Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
Added dependencies to resolve pip errors.

Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
Removed unnecessary dependencies to resolve pip errors.

Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
Signed-off-by: Kelly Guo <kellyguo123@hotmail.com>
@kellyguo11 kellyguo11 changed the title [Isaac Sim 6.0] Updates torch to 2.9.0+cu13 [Isaac Sim 6.0] Updates torch to 2.9.0+cu128 for x86 Nov 14, 2025
@kellyguo11 kellyguo11 marked this pull request as ready for review November 14, 2025 18:11
@kellyguo11 kellyguo11 merged commit 9338da9 into isaac-sim:feature/isaacsim-6-0 Nov 14, 2025
8 of 10 checks passed
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

18 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines 1152 to +1164
isaac_sim_version = float(".".join(get_version()[2]))
if isaac_sim_version < 5:
logger.warning("[Compat] Isaac Sim < 5.0 does not support thread-local stage contexts. Skipping use_stage().")
yield # no-op
else:
if isaac_sim_version < 6:
# Set context in both modules to ensure all Isaac Sim subsystems see the correct stage
with stage_utils.use_stage(stage):
yield
else:
# Import both stage utils modules for Isaac Sim 5.0+
import isaacsim.core.experimental.utils.stage as experimental_stage_utils

# Set context in both modules to ensure all Isaac Sim subsystems see the correct stage
with stage_utils.use_stage(stage):
with experimental_stage_utils.use_stage(stage):
yield
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: inverted version comparison logic - code for Isaac Sim 6.0+ runs when version < 6, and code for Isaac Sim < 6.0 runs when version >= 6

Suggested change
isaac_sim_version = float(".".join(get_version()[2]))
if isaac_sim_version < 5:
logger.warning("[Compat] Isaac Sim < 5.0 does not support thread-local stage contexts. Skipping use_stage().")
yield # no-op
else:
if isaac_sim_version < 6:
# Set context in both modules to ensure all Isaac Sim subsystems see the correct stage
with stage_utils.use_stage(stage):
yield
else:
# Import both stage utils modules for Isaac Sim 5.0+
import isaacsim.core.experimental.utils.stage as experimental_stage_utils
# Set context in both modules to ensure all Isaac Sim subsystems see the correct stage
with stage_utils.use_stage(stage):
with experimental_stage_utils.use_stage(stage):
yield
isaac_sim_version = float(".".join(get_version()[2]))
if isaac_sim_version < 6:
# For Isaac Sim < 6.0, use single stage context
with stage_utils.use_stage(stage):
yield
else:
# Import both stage utils modules for Isaac Sim 6.0+
import isaacsim.core.experimental.utils.stage as experimental_stage_utils
# Set context in both modules to ensure all Isaac Sim subsystems see the correct stage
with stage_utils.use_stage(stage):
with experimental_stage_utils.use_stage(stage):
yield

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants