You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows HIP, 2× R9700: --peer-device hangs to driver timeout. Launch batching reproduced in a small probe #3767
Hi, a follow-up on the --peer-device hang on Windows (2x Radeon AI PRO R9700, driver 32.0.31041.5005 for ROCm 10.1; it also hung on PRO 26.Q3, ending in a driver timeout with 17 LiveKernelEvent records).
I think I've reproduced the mechanism in a 190-line HIP probe. Two single-thread kernels, one per card, ping-pong a flag through one hipHostMalloc(Coherent | Mapped | Portable) buffer (same address on the CPU and both cards), using system-scope release/acquire, with every wait bounded by time so it can't hang the driver.
With a timing-free event recorded right after each launch (hipEventCreateWithFlags(hipEventDisableTiming) + hipEventRecord on the same stream), 10,000 round trips complete in both directions, mean 2.8 us.
Without that, the host launches both kernels and then waits on the initiator's card. The responder's kernel is never submitted: the initiator spins for its full 400 ms bound with no answer. Only when the host synchronizes the responder's card does it start, finds the stale ping and answers it. Host time 450 ms = 400 + 50, both directions, every time.
So on Windows a launch can sit in the runtime's batch indefinitely until something submits that card's work (an event record, a sync, or the batch filling). Any kernel that spins waiting for a kernel on the other card will hang until TDR, unless each card's launch is flushed right after it's made.
If the peer tier exchanges through host memory, recording a timing-free event after every launch the other card waits on should fix it. That's what Radiance's Windows backend does after each collective. If it reads the other card's VRAM directly, note that this driver reports no peer access (hipDeviceCanAccessPeer = 0 both ways), so that path can't work on Windows regardless.
Thanks for the issue. To keep the tracker readable, every item needs an area prefix in the title and the parts of the issue form filled in. This one is missing:
Start the title with its area: [Engine], [GUI], [TUI], [Benchmark], [Docs] or [Other], then a short description. Example: "[Engine] decode stops after 2 minutes".
Edit the issue (title and description) and this note goes away on its own. If it is still missing parts in 5 days it will be closed, which is not a rejection: fix it and comment /reopen.
Strata version: 0.1.46 (rx9070 build), peer tier started with <your config name / flags>, --peer-device 1. I haven't retested on 0.2.0-beta yet.
To be precise about what the probe measured: the responder's kernel stayed unsubmitted for the
whole 400 ms bounded wait, i.e. at least 400 ms. "Indefinitely" was my inference from the real
hang, not something the probe timed.
On the Radeon side: my Windows port of Radiance flushes this way by design. I'm still verifying
that it does so after every collective at two cards, so treat that as the approach, not a tested result.
Probe source attached (mailbox2.hip, single file, hipcc --offload-arch=gfx1201 -O2).
Closing this issue because it still did not follow the format after 5 days. That is housekeeping, not a rejection.
To bring it back: fix the title (area prefix) and the missing parts, then comment /reopen. A check runs and reopens it, or tells you what is still missing. See CONTRIBUTING.md.
Activity
github-actions commentedon Oct 22, 2026
Thanks for the issue. To keep the tracker readable, every item needs an area prefix in the title and the parts of the issue form filled in. This one is missing:
Edit the issue (title and description) and this note goes away on its own. If it is still missing parts in 5 days it will be closed, which is not a rejection: fix it and comment
/reopen.Details: CONTRIBUTING.md
wmmunn commentedon Oct 22, 2026
A few details I left out:
--peer-device 1. I haven't retested on 0.2.0-beta yet.whole 400 ms bounded wait, i.e. at least 400 ms. "Indefinitely" was my inference from the real
hang, not something the probe timed.
that it does so after every collective at two cards, so treat that as the approach, not a tested result.
Probe source attached (mailbox2.hip, single file, hipcc --offload-arch=gfx1201 -O2).
github-actions commentedon Oct 28, 2026
Closing this issue because it still did not follow the format after 5 days. That is housekeeping, not a rejection.
To bring it back: fix the title (area prefix) and the missing parts, then comment
/reopen. A check runs and reopens it, or tells you what is still missing. See CONTRIBUTING.md.