Skip to main content

isaaclab-training-multi-gpu

Launches and debugs Isaac Lab multi-GPU and multi-node RL training, including NCCL hangs and collective failures. Use when running train_multigpu, choosing num_gpus, setting up multi-node jobs, or diagnosing distributed training that hangs, deadlocks, or aborts in ProcessGroupNCCL.

ソース情報

リポジトリ
isaac-sim/IsaacLab
ソースの最終更新活動
2026年8月5日 01:04
検出された SKILL.md の言語
英語
スター
8,316
フォーク
3,943

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
3 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
isaaclab-training-multi-gpu
description
Launches and debugs Isaac Lab multi-GPU and multi-node RL training, including NCCL hangs and collective failures. Use when running train_multigpu, choosing num_gpus, setting up multi-node jobs, or diagnosing distributed training that hangs, deadlocks, or aborts in ProcessGroupNCCL.
audience
user
status
experimental
owners
["isaaclab-maintainers"]
# Training on Multiple GPUs ## When To Use Use this skill when a user wants to scale an Isaac Lab RL job across several GPUs or nodes, or when a distributed run hangs, deadlocks, or fails inside NCCL. Do not use this skill for single-GPU training setup, framework selection, or agent config wiring. Use `isaaclab-training-rl-agents` for those. Use `isaaclab-debugging-rl-training` when the job runs to completion but the reward curves or metrics look wrong. ## Workflow 1. Confirm the job trains correctly on a single GPU first. Do not debug a distributed failure before the same task, backend, and preset combination is known to work with one rank. 2. Launch with `uv run isaaclab train_multigpu`, which wraps `torchrun` and injects `--distributed` for you. Pass all training arguments exactly as for `uv run isaaclab train`. 3. Select the rank count with `--num_gpus`. The default `gpu` uses every visible device. Use `--dry_run` to print the resolved launcher command without running it. 4. For skrl with JAX, `--num_gpus` must be an integer and the torchrun-only options are rejected. Use `--coordinator_address` instead. 5. Expect console output from local rank 0 on each node only. The launcher filters the other ranks by default because each one repeats the same startup and warning output. Use `--log_all_ranks` when ranks may disagree with each other, or `--tee 3 --log_dir <dir>` to keep per-rank logs on disk. 6. Separate a launcher problem from a communication problem before changing training code. A hang with all participating GPUs at 100% utilization and no error is a NCCL stall, not a task bug. 7. When a run hangs, reproduce it at a different world size and with the standalone NCCL probe in [Reference](reference.md) before touching Isaac Lab code. World size 2 is the most common failure point on systems without NVLink. 8. Apply NCCL environment workarounds one at a time, and confirm each one against the probe before applying it to training. Record which variable was needed and why. 9. Treat NCCL workarounds as machine-specific. Do not bake them into committed configs or scripts without noting the affected hardware. 10. For multi-node jobs, establish rendezvous with `--nnodes`, `--node_rank`, and either `--master_addr`/`--master_port` or the `--rdzv_*` options, and verify a two-node job before scaling further. ## Validation Use this checklist: 1. Confirm the same command trains on a single GPU. 2. Confirm every rank reaches parameter synchronization in the logs, not just rank 0. 3. Confirm the run reports a training time and exits with status 0. 4. Confirm scaling changes throughput rather than silently running one rank. 5. When a NCCL workaround is applied, confirm the run also fails without it, so the workaround is known to be the cause of the fix. For skill changes, run: ```bash uv run --no-project python tools/skills/cli.py check ``` ## Maintenance Keep this skill synchronized with `docs/source/features/multi_gpu.rst`, `docs/source/refs/troubleshooting.rst`, and the launcher at `scripts/reinforcement_learning/train_multigpu.py`. The NCCL workaround list is maintained in the multi-GPU feature doc. Add new workarounds there first and keep this skill as a router. ## References - [Evaluations](evaluations.md) - [Reference](reference.md) - [Training RL agents skill](../train-rl-agents/SKILL.md) - [Debug RL training skill](../debug-rl-training/SKILL.md) - [Multi-GPU and multi-node training](../../../docs/source/features/multi_gpu.rst) - [Troubleshooting](../../../docs/source/refs/troubleshooting.rst) - [Multi-GPU launcher](../../../scripts/reinforcement_learning/train_multigpu.py)
GitHubで見る