Skip to content

[ROCm][Bugfix] Warm elastic EP target groups at commit on ROCm - #59684

Closed
aarushjain29 wants to merge 18 commits into
vllm-project:mainfrom
ROCm:rocm/elastic-ep-warm-groups-mi355
Closed

aarushjain29 wants to merge 18 commits into
vllm-project:mainfrom
ROCm:rocm/elastic-ep-warm-groups-mi355

Conversation

@aarushjain29

Copy link
Copy Markdown
Collaborator

#56610 stopped warming the target DP/EP torch device groups during asynchronous preparation on ROCm and relied on warm_and_capture to warm them at commit. warm_and_capture only drives the PyNccl communicators, so the first collective on the new EP device group is the EPLB all-reduce: in commit_scale_up's reshuffle in eager mode, and in the first periodic EPLB step after a scale-down with CUDA graphs. On MI355 that first all-reduce fails in RCCL with "hipIpcGetMemHandle failed : invalid argument" (vllm/ci builds 92231 and 92464, Elastic EP Scaling).

Warm the target groups on ROCm at commit for scale-up and for the non-removing scale-down path, while the engine is paused, regardless of whether the fused MoE kernel is reused.

Also add the MI355 AMD mirror of Elastic EP Scaling from #56679 so the fix runs on MI355.

vllm-project#56610 stopped warming the target DP/EP torch device groups during
asynchronous preparation on ROCm and relied on warm_and_capture to warm
them at commit. warm_and_capture only drives the PyNccl communicators,
so the first collective on the new EP device group is the EPLB
all-reduce: in commit_scale_up's reshuffle in eager mode, and in the
first periodic EPLB step after a scale-down with CUDA graphs. On MI355
that first all-reduce fails in RCCL with "hipIpcGetMemHandle failed :
invalid argument" (vllm/ci builds 92231 and 92464, Elastic EP Scaling).

Warm the target groups on ROCm at commit for scale-up and for the
non-removing scale-down path, while the engine is paused, regardless of
whether the fused MoE kernel is reused.

Also add the MI355 AMD mirror of Elastic EP Scaling from vllm-project#56679 so the
fix runs on MI355.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify mergify Bot added ci/build rocm Related to AMD ROCm bug Something isn't working labels Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

❌ @aarushjain29, A reviewer with write access must run /ci run, approve the PR, or add the ready label first.

@divakar-amd

Copy link
Copy Markdown
Contributor

/ci run

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92486 for commit 78f7f860478f.

…oups

Warming the target groups at commit moved the MI355 failure into the
warm-up all-reduce (vllm/ci build 92486): the first collective on a
torch device group created during scaling fails in RCCL with
"hipIpcGetMemHandle failed : invalid argument", while groups created at
startup, before the model and KV cache are allocated, work. Release
cached allocator blocks before the warm-up so RCCL sets up the new
communicators with the cached memory returned to the device.

Run the MI355 Elastic EP mirror with NCCL_DEBUG=INFO for the INIT, P2P
and ALLOC subsystems to show which RCCL buffer fails to export.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
Temporary diagnostics for the MI355 Elastic EP Scaling failure. On ROCm,
log the worker environment, RCCL and HIP versions, GPU memory and
allocator state, and whether hipIpcGetMemHandle succeeds on default,
fine-grained, uncached and caching-allocator buffers, when the standby
groups are created and before and after emptying the cache at commit.
Warm the DP and EP groups one at a time and log which one fails. Also
enable HIP error logging and forward AMD_LOG_LEVEL to the Ray workers.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
… EP job

Run enforce_eager_none with HSA_ENABLE_IPC_MODE_LEGACY=1, which the ROCm
Docker image sets but the native MI355 pod may not, and the remaining
variants with the pod environment, so one run shows whether the IPC mode
affects the hipIpcGetMemHandle failure.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
@AndreasKaratzas AndreasKaratzas added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

✅ @aarushjain29, CI is now available for this PR.

  • /ci run starts upstream CI; /amd-ci run starts AMD CI only.
  • Your branch must contain every commit currently on its upstream target branch. Merge or rebase onto the latest target branch, then rerun the command. Append --allow-stale to a run command to test an outdated branch at your own risk.
  • /ci retry retries failed jobs in the CI build for the current PR head. If the current head has no CI build, it starts a new CI build for the current head containing only jobs that failed in the latest earlier CI build for this PR.
  • /amd-ci retry retries failed jobs in AMD CI for the current PR head. Use /amd-ci run when the current head has no AMD CI build.
  • /ci cancel cancels scheduled or running CI builds for this PR branch; /amd-ci cancel does the same for AMD CI only.

@AndreasKaratzas

Copy link
Copy Markdown
Member

/ci run

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92510 for commit 7e61793151a6.

The existing IPC probe only covers hipExtMallocWithFlags, but RCCL exports
handles for plain hipMalloc buffers, so that path was never exercised. Add it,
plus a burst probe for export-handle exhaustion and a probe that exports while
a different device is current.
Both of those perturb state, so they only run at prepare and after a failure,
never right before the collective under observation.
Also log HIP's current device next to torch's before each collective, since the
stream context does not set it, and add one run with NCCL_P2P_DISABLE=1 to tell
whether the failure is confined to the IPC transport.

Signed-off-by: Stefan Koncarevic <Stefan.Koncarevic@amd.com>
@stefankoncarevic

Copy link
Copy Markdown
Collaborator

/ci run

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

❌ @stefankoncarevic, Only reviewers with write access can use CI commands before CI is delegated to the PR author.

Every probe so far only covered the export side. In CI the run with
HSA_ENABLE_IPC_MODE_LEGACY=1 did not fail on export at all, it aborted on
attach with a 2 MiB handle the exporter had allocated with flags 3, so the
side that actually failed there was never instrumented.

Each rank now exports one buffer and attaches every peer's, with the two
size and flag combinations taken from the two observed failures. Handles
travel over the CPU group so the device group under test stays untouched.

Signed-off-by: Stefan Koncarevic <Stefan.Koncarevic@amd.com>
@vllm-agent

vllm-agent commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

CI selector (shadow): 40 test steps (47 jobs) instead of 64 (80 jobs)

Shadow mode: this changes nothing about what CI runs. It shows what the evidence-based selector would pick for this PR, next to today's rules. How it works.

Feedback welcome: reply here if it would skip a step this change needs, or runs something unrelated.

steps (jobs) Today's rules Selector Would skip Would add
NVIDIA, CPU and others 64 (80) 40 (47) 55 (65) 31 (32)
AMD mirrors 68 (79) 163 (227) 0 (0) 95 (148)
Selector would run (40)
  • amd-fp8-moe-kernels-mi355
  • amd-kernels-mi355
  • amd-lm-eval-small-models-harness
  • amd-native-quantization-kernels-mi355
  • amd-qwen3-next-mtp-async-eplb-accuracy
  • basic-models-test-other-cpu
  • cpu-multimodal-config
  • cpu-params-env-tokenizers-parser
  • cpu-reasoning-renderers
  • cpu-tool-parsers
  • crcr-report
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus
  • distributed-nixlconnector-pd-accuracy-4-gpus
  • distributed-torchrun-examples-4-gpus
  • docker-build-metadata
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • dsv41-mono-decode-numerics-amd
  • elastic-ep-scaling-test
  • engine
  • eplb-algorithm
  • eplb-execution
  • fusion-e2e-tp2-ar-rms-dynamo-partition-amd
  • fusion-e2e-tp2-ar-rms-inductor-partition-amd
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus
  • kimi-k3-prefix-cache-4xb200 ×2
  • multi-modal-processor-cpu ×4
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus
  • nixlconnector-pd-edge-cases-2-gpus
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus
  • qwen4-exp-unit-tests-cpu
  • rust-frontend-cargo-style-clippy
  • rust-frontend-cargo-tests
  • sharded-rdt-weight-transfer
  • torch-stable-abi-audit
  • v1-kv-connectors ×4
  • v1-kv-offload
  • v1-others-cpu
Would skip (today's rules run them) (55)
  • ascend-npu-test
  • async-engine-inputs-utils-worker
  • basic-correctness ×2
  • basic-correctness-cpu-offload
  • basic-correctness-cumem
  • basic-correctness-prefetch-offload
  • basic-correctness-sleep-mode
  • basic-models-tests-initialization
  • basic-models-tests-other
  • benchmarks-cli-test
  • cpu-language-generation-and-pooling-model-tests ×3
  • distributed-comm-ops
  • distributed-compile-comm-4-gpus
  • distributed-compile-rpc-tests-2-gpus
  • distributed-dp-tests-2-gpus
  • distributed-dp-tests-4-gpus
  • distributed-torchrun-shutdown-tests-2-gpus
  • entrypoints-integration-api-server ×4
  • entrypoints-integration-api-server-generate
  • entrypoints-integration-api-server-openai-chat_completion
  • entrypoints-integration-api-server-openai-completion
  • entrypoints-integration-llm
  • entrypoints-integration-multimodal
  • entrypoints-integration-pooling
  • entrypoints-integration-responses-api
  • entrypoints-integration-speech_to_text
  • fault-tolerance-e2e-2xh100
  • kernels-fla-ops-test-b200
  • kernels-mhc-test-b200
  • kernels-root-misc-test-b200
  • language-models-tests-granite-l4-compatibility
  • language-models-tests-hybrid ×2
  • language-models-tests-standard
  • metrics-tracing-2-gpus
  • multi-modal-models-standard-1-qwen2
  • multi-modal-models-standard-2-qwen3-gemma
  • multi-modal-models-standard-3-llava-qwen2-vl
  • multi-modal-models-standard-4-other-whisper
  • multi-modal-processor ×4
  • pipeline-context-parallelism-4-gpus
  • pytorch-compilation-dynamic-shapes
  • pytorch-compilation-passes-unit-tests
  • pytorch-compilation-unit-tests
  • pytorch-compilation-unit-tests-h100
  • pytorch-fullgraph-cudagraph-l4-compatibility
  • pytorch-fullgraph-test
  • regression
  • rl-entrypoints-tests
  • rust-frontend-distributed
  • v1-core
  • v1-executor-worker
  • v1-logits-oracle
  • v1-metrics-lmeval
  • v1-sample
  • v1-spec-decode
Would add (today's rules do not run them) (31)
  • amd-fp8-moe-kernels-mi355 (code map)
  • amd-kernels-mi355 (code map)
  • amd-lm-eval-small-models-harness (code map)
  • amd-native-quantization-kernels-mi355 (code map)
  • amd-qwen3-next-mtp-async-eplb-accuracy (code map)
  • cpu-multimodal-config (code map)
  • cpu-params-env-tokenizers-parser (code map)
  • cpu-reasoning-renderers (code map)
  • cpu-tool-parsers (code map)
  • crcr-report (code map)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (Python record)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (Python record)
  • distributed-nixlconnector-pd-accuracy-4-gpus (Python record)
  • docker-build-metadata (code map)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (Python record)
  • dsv41-mono-decode-numerics-amd (code map)
  • engine (Python record)
  • fusion-e2e-tp2-ar-rms-dynamo-partition-amd (code map)
  • fusion-e2e-tp2-ar-rms-inductor-partition-amd (code map)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (Python record)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (Python record)
  • kimi-k3-prefix-cache-4xb200 ×2 (Python record)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (Python record)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (Python record)
  • nixlconnector-pd-edge-cases-2-gpus (Python record)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (Python record)
  • qwen4-exp-unit-tests-cpu (code map)
  • rust-frontend-cargo-style-clippy (code map)
  • rust-frontend-cargo-tests (code map)
  • sharded-rdt-weight-transfer (code map)
  • torch-stable-abi-audit (code map)
AMD mirrors: would skip (0)

none

AMD mirrors: would add (95)
  • basic-models-tests-extra-initialization ×14 (code map)
  • batch-invariance-a100 (code map)
  • batch-invariance-b200 (code map)
  • batch-invariance-h100 (code map)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • cudagraph (code map)
  • deepseek-v4-kernel-test-b200 (code map)
  • deepseek-v4-kernel-test-h100 (code map)
  • distributed-compile-unit-tests-2xh100 (code map)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-model-tests-2-gpus ×3 (code map)
  • distributed-mooncakeconnector-pd-accuracy-4-gpus (code map)
  • distributed-nixlconnector-pd-accuracy-4-gpus (code map)
  • docker-build-metadata (code map)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • e2e-core-1-gpu (code map)
  • e2e-core-large-memory (code map)
  • e2e-scheduling-1-gpu (code map)
  • e2e-scheduling-accuracy-1-gpu (code map)
  • engine (code map)
  • engine-1-gpu (code map)
  • entrypoints-unit-tests (code map)
  • examples (code map)
  • extract-hidden-states-integration (code map)
  • extract-hidden-states-integration-2-gpus (code map)
  • fusion-e2e-config-sweep-h100 (code map)
  • fusion-e2e-quick-h100 (code map)
  • glm5next-unit-tests (code map)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (code map)
  • inkling-unit-tests-b200 (code map)
  • jit-monitor-no-runtime-jit (code map)
  • kernels-attention-diffkv-test-h100 (code map)
  • kernels-attention-test ×7 (code map)
  • kernels-b200 ×3 (code map)
  • kernels-core-operation-test ×3 (code map)
  • kernels-flashmla-test-h100 (code map)
  • kernels-fp4-moe-test-b200 (code map)
  • kernels-helion-test ×5 (code map)
  • kernels-mamba-test (code map)
  • kernels-moe-test ×5 (code map)
  • kernels-quantization-test ×6 (code map)
  • kimi-k3-unit-tests-b200 (code map)
  • kv-offload-large (code map)
  • kv-offload-medium (code map)
  • kv-offload-small (code map)
  • language-models-tests-extra-standard ×2 (code map)
  • lm-eval-dspark-watermark-2xh100 (code map)
  • lm-eval-small-models (code map)
  • lm-eval-turboquant-k3v4nc (code map)
  • lm-eval-turboquant-k8v4 (code map)
  • lm-eval-turboquant-t3nc (code map)
  • lm-eval-turboquant-t4nc (code map)
  • lm-eval-watermarking (code map)
  • lora ×4 (code map)
  • lora-tp-distributed ×4 (code map)
  • model-executor (code map)
  • mooncake-ec-tcp-e2e-2-gpus (code map)
  • mrcr-eval-small-models (code map)
  • multi-modal-accuracy-eval-small-models (code map)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (code map)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (code map)
  • nixlconnector-pd-edge-cases-2-gpus (code map)
  • nixlconnector-pd-spec-decode-acceptance-2-gpus (code map)
  • openai-api-correctness (code map)
  • plugin-tests-2-gpus (code map)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (code map)
  • pytorch-nightly-dependency-override-check (code map)
  • quantization ×4 (code map)
  • quantized-fusions (code map)
  • quantized-models-test (code map)
  • quantized-moe-test-b200 (code map)
  • qwen4-exp-unit-tests (code map)
  • ray-dependency-compatibility-check (code map)
  • rayexecutorv2-4-gpus (code map)
  • rust-frontend-core-correctness (code map)
  • rust-frontend-openai-coverage (code map)
  • rust-frontend-serve-admin-coverage (code map)
  • rust-frontend-tool-use (code map)
  • samplers-multimodal-beam-search (code map)
  • samplers-test (code map)
  • scale-out-ec-e2e-2-gpus (code map)
  • sharded-rdt-weight-transfer (code map)
  • spec-decode-draft-model ×4 (code map)
  • spec-decode-eagle-1-deepseek-qwen (code map)
  • spec-decode-eagle-2-llama3-qwen-vl-other (code map)
  • spec-decode-mtp-deepseek-mimo (code map)
  • spec-decode-mtp-gemma4 (code map)
  • spec-decode-mtp-qwen3-5 (code map)
  • spec-decode-ngram-suffix (code map)
  • spec-decode-speculators (code map)
  • torch-stable-abi-audit (code map)
  • v1-attention-b200 ×2 (code map)
  • v1-attention-h100-mi300 ×2 (code map)
  • vllm-ir-tests (code map)

6 changed files · base e0317b28ce · head 01ac280475 · Python record: build 93039 at 1e5d0ea888 · kernel record: table 74f4404 (build 94125), map 74f4404 · not counted: 11 build steps, 5 A100 steps the generator no longer emits, 61 optional steps the selector would also run

UCX's ROCm memory hooks (libucm_rocm) intercept GPU frees once NIXL
starts its UCX backend. On MI355 this breaks HIP IPC for buffers that
RCCL allocates afterwards, so the RCCL communicators created for elastic
EP scale-up fail with hipIpcGetMemHandle/hipIpcOpenMemHandle invalid
argument. Set UCX_MEM_EVENTS=no on ROCm before NIXL is loaded unless the
user already set it.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

❌ This PR is 69 commits behind upstream main. Your branch must contain every commit currently on upstream main. No new CI build was started. Merge or rebase onto the latest main, then rerun /ci run. To test this branch at your own risk, use /ci run --allow-stale.

@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92694 for commit 7fa7d51c4829.

…ic EP job

Run a vLLM-free script that creates, all-reduces and destroys RCCL
groups of 4 and 2 ranks, alone, with most GPU memory held, and with that
memory registered in NIXL, probing hipIpcGetMemHandle after every round.
Trim the job to the repro plus one elastic EP case to shorten CI.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

❌ This PR is 41 commits behind upstream main. Your branch must contain every commit currently on upstream main. No new CI build was started. Merge or rebase onto the latest main, then rerun /ci run. To test this branch at your own risk, use /ci run --allow-stale.

@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92829 for commit dc7c89966437.

Phases A-C pass on MI355 CI. Add phase D, which also exchanges NIXL agent
metadata and READs from every peer's registered GPU memory each round,
as the EPLB NIXL communicator does, before churning RCCL groups.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92832 for commit ce538117c0c6.

Opt the AMD image steps into the TheRock Dockerfiles from vllm-project#56351 so the
MI355 Elastic EP job runs on ROCm SDK 10.0.0 (HIP, RCCL, PyTorch) and we
can see whether the HIP IPC failure is fixed in the newer ROCm userspace.

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

Copy link
Copy Markdown

❌ This PR is 1 commit behind upstream main. Your branch must contain every commit currently on upstream main. No new CI build was started. Merge or rebase onto the latest main, then rerun /ci run. To test this branch at your own risk, use /ci run --allow-stale.

@aarushjain29

Copy link
Copy Markdown
Collaborator Author

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #94251 for commit 01ac280475f9.

stefankoncarevic added a commit to stefankoncarevic/vllm that referenced this pull request Oct 14, 2026
Carries the diagnostic work from vllm-project#59684 onto current main unchanged. None of
these six files were touched on main since that branch was cut, so this is the
same content, only rebased so CI runs against a current tree.

The follow-up commit adds the instrumentation that narrows the failure down.

Signed-off-by: Stefan Koncarevic <Stefan.Koncarevic@amd.com>
stefankoncarevic added a commit to stefankoncarevic/vllm that referenced this pull request Oct 14, 2026
Follow-up diagnostics for vllm-project#59684, where the MI355 Elastic EP Scaling step
fails on every run and nothing reproduces on a bare metal host.

The CI logs report ValueError('Process group <torch...'). That is not the
real error: while handling the collective failure, torch's c10d logger calls
dist.get_backend() on the already invalidated group, which raises and
replaces "hipIpcGetMemHandle failed : invalid argument" in everything
downstream. Walk the exception chain and print the traceback so the original
error survives.

The mesh probe already runs immediately before the all_reduce, with nothing
between them, and it passes on the very rank that then fails. So the export
capability dies inside RCCL's lazy communicator init, not when the group is
created. Ask RCCL directly which transport it picks per pair and which buffer
it exports, and add two runs that avoid the IPC transport to establish whether
it is the trigger rather than only a symptom.

After the failure every export fails, including a fresh plain hipMalloc and a
buffer owned by another device, so this is not one bad pointer. The fixed
64 handle burst cannot see a ceiling, since the same probe holds 8192 handles
on a bare metal host with amdgpu 6.16.6, so report the count actually reached.

amd-smi on the CI node reports XGMI as N/A for four of the six pairs, which
could mean no link or merely no visibility from inside the VM. Dump the KFD
node properties and io_links, which do not carry that ambiguity.

Signed-off-by: Stefan Koncarevic <Stefan.Koncarevic@amd.com>
@github-project-automation github-project-automation Bot moved this from Todo to Done in AMD Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci/build ready ONLY add when PR is ready to merge/full CI is needed rocm Related to AMD ROCm

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants