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
آخر نشاط في المصدر
٥ أغسطس ٢٠٢٦ في ٠١:٠٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨٬٣١٦
التفرعات
٣٬٩٤٣

خيارات التثبيت

يُحدَّد 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