-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Fixes setting the device from CLI in the RL training scripts #1013
Conversation
6e36e52
to
c57d5a1
Compare
@@ -120,7 +120,8 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen | |||
# set the environment seed | |||
# note: certain randomizations occur in the environment initialization so we set the seed here | |||
env_cfg.seed = args_cli.seed if args_cli.seed is not None else agent_cfg["seed"] | |||
|
|||
env_cfg.sim.device = args_cli.device |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you move it up to before if args_cli.distributed
and replace with env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also need to remove L139-142 (multi-gpu training config). It is a duplication of L-110-111.
Thanks a lot for the fix! |
Co-authored-by: David Hoeller <[email protected]> Signed-off-by: Mayank Mittal <[email protected]>
Since it is a critical fix, I am merging this right now. Will push the remaining changes directly. |
This pull request fixes the issue where the device (`CPU` or `CUDA`) is not set correctly when using the `--device` argument in Hydra-configured scripts like `rsl_rl/train.py` and `skrl/train.py`. The bug caused the scripts to always default to `cuda:0`, even when `cpu` or a specific CUDA device (e.g., `cuda:1`) was selected. The fix adds the following line to ensure that the selected device is properly set in `env_cfg` before initializing the environment with `gym.make()`: ```python env_cfg.sim.device = args_cli.device ``` Fixes #1012 - Bug fix (non-breaking change which fixes an issue) Before: - skrl/train, when running the script with --device cpu, it defaults to cuda:0. - rsl_rl/train.py, the script freezes at `[INFO]: Starting the simulation. This may take a few seconds. Please wait....` After: - Both scripts run correctly on the specified device (e.g., cpu or cuda:1) without defaulting to cuda:0 or freezing. - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [ ] I have made corresponding changes to the documentation - [x] 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 - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there
…im#1013) This pull request fixes the issue where the device (`CPU` or `CUDA`) is not set correctly when using the `--device` argument in Hydra-configured scripts like `rsl_rl/train.py` and `skrl/train.py`. The bug caused the scripts to always default to `cuda:0`, even when `cpu` or a specific CUDA device (e.g., `cuda:1`) was selected. The fix adds the following line to ensure that the selected device is properly set in `env_cfg` before initializing the environment with `gym.make()`: ```python env_cfg.sim.device = args_cli.device ``` Fixes isaac-sim#1012 - Bug fix (non-breaking change which fixes an issue) Before: - skrl/train, when running the script with --device cpu, it defaults to cuda:0. - rsl_rl/train.py, the script freezes at `[INFO]: Starting the simulation. This may take a few seconds. Please wait....` After: - Both scripts run correctly on the specified device (e.g., cpu or cuda:1) without defaulting to cuda:0 or freezing. - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [ ] I have made corresponding changes to the documentation - [x] 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 - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there
Description
This pull request fixes the issue where the device (
CPU
orCUDA
) is not set correctly when using the--device
argument in Hydra-configured scripts likersl_rl/train.py
andskrl/train.py
. The bug caused the scripts to always default tocuda:0
, even whencpu
or a specific CUDA device (e.g.,cuda:1
) was selected.The fix adds the following line to ensure that the selected device is properly set in
env_cfg
before initializing the environment withgym.make()
:Fixes #1012
Type of change
Screenshots
Before:
[INFO]: Starting the simulation. This may take a few seconds. Please wait....
After:
Checklist
pre-commit
checks with./isaaclab.sh --format
config/extension.toml
fileCONTRIBUTORS.md
or my name already exists there