Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/therock-rccl-test-pytorch-distributed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,13 @@ jobs:
- name: Install PyTorch and test dependencies
timeout-minutes: 15
run: |
# The device-gfx942 extra resolves rocm-sdk-device-gfx942, which is
# published to the core index rather than the pytorch one; without
# the extra-index-url the resolve fails outright.
uv pip install --prerelease=allow \
"torch[device-gfx942]" \
--index-url https://rocm.nightlies.amd.com/whl-multi-arch/
--index-url https://nightly.repo.amd.com/rocm/pytorch/whl-next/ \
--extra-index-url https://nightly.repo.amd.com/rocm/core/whl-next/
uv pip install \
pytest \
pytest-timeout \
Expand All @@ -113,7 +117,13 @@ jobs:
psutil

- name: Run PyTorch c10d NCCL tests
timeout-minutes: ${{ inputs.test_scope == 'all' && 120 || 60 }}
# The all scope has come within ~2 min of the old 120 min ceiling twice
# (117m44s, 119m09s). Being killed here is worse than a slow run:
# pytest never writes pytorch_c10d_results.xml, so the summary, email
# and webhook steps skip and the job reports a timeout instead of
# results. About 75 min of the budget is known-failure hangs running to
# their own timeouts; reclaiming that is tracked separately.
timeout-minutes: ${{ inputs.test_scope == 'all' && 150 || 60 }}
env:
NCCL_DEBUG: INFO
TORCH_NCCL_BLOCKING_WAIT: 1
Expand Down
10 changes: 7 additions & 3 deletions projects/rccl/ci/scripts/known_failures.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"_comment": "Known PyTorch c10d NCCL test failures in this ROCm/RCCL CI suite — not regressions. Tests listed here are excluded from the pass/fail verdict. Not every cause is an RCCL gap; some are ROCm runtime behaviour or test assumptions that do not hold on ROCm. Remove each entry once its underlying cause is resolved.",
"_comment": "Known PyTorch c10d NCCL test failures in this ROCm/RCCL CI suite. Tests listed here are excluded from the pass/fail verdict so that a new failure is visible against them. Most entries are not regressions — some are ROCm runtime behaviour, some are test assumptions that do not hold on ROCm. A minority are active defects with an open ticket, suppressed only to keep the suite's signal readable; those say so explicitly in their category description. Exclusion from the verdict is never a statement that a test is expected to fail forever. Remove each entry once its underlying cause is resolved.",
"tests": {
"test_extend_nccl_pg_timeout_backend0": "pg_timeout_semantics",
"test_extend_nccl_pg_timeout_backend_nccl": "pg_timeout_semantics",
Expand Down Expand Up @@ -31,7 +31,9 @@
"test_coalescing_manager_collective_timing_enabled_True": "missing_duration_ms",
"test_individual_send_recv_op_sizes0_timing_enabled_True": "missing_duration_ms",
"test_individual_send_recv_op_sizes1_timing_enabled_True": "missing_duration_ms",
"test_extra_cuda_context": "extra_context_heuristic"
"test_extra_cuda_context": "extra_context_heuristic",
"test_comm_recursive_split_group": "split_group_parent_guard",
"test_nccl_backend_4gpu_module": "nccl_backend_4gpu_hang"
},
"categories": {
"missing_duration_ms": "RCCL flight recorder trace omits duration_ms field",
Expand All @@ -41,6 +43,8 @@
"trace_entry_mismatch": "Trace entry structure differs from upstream NCCL",
"missing_dump_pipe": "RCCL does not create flight recorder dump pipe",
"pg_timeout_semantics": "extend_pg_timeout adds to existing vs sets absolute value",
"extra_context_heuristic": "Test infers an extra HIP context from >70% device memory growth across a collective; on ROCm the growth is a ROCr runtime allocation, not a second context and not RCCL memory. Magnitude is build- and arch-dependent, and the ratio also varies with node co-tenancy (AICOMRCCL-2469)"
"extra_context_heuristic": "Test infers an extra HIP context from >70% device memory growth across a collective; on ROCm the growth is a ROCr runtime allocation, not a second context and not RCCL memory. Magnitude is build- and arch-dependent, and the ratio also varies with node co-tenancy (AICOMRCCL-2469)",
"split_group_parent_guard": "Upstream PyTorch #195758 (e8430bed0, 2026-09-03) made split_group reject a parent process group that was bound to a device_id but has not yet run a collective. The test splits recursively without issuing one. Surfaced when this suite moved off a frozen wheel onto the current ROCm nightly; the guard's sibling split_group tests pass on ROCm, so the guard itself is satisfiable here and this is not simply an unsupported upstream API. Which ROCm-side condition leaves the parent group unprimed in this test specifically is not yet identified (AICOMRCCL-3107)",
"nccl_backend_4gpu_hang": "ACTIVE DEFECT, not a feature gap: the 4-GPU DDP module test hangs with both ranks unresponsive and is killed at the 300s timeout. Suppressed only to keep the suite's signal readable while the hang is investigated — remove this entry as soon as AICOMRCCL-2468 is fixed"
}
}
Loading