[ROCm] Fix intranode queue ordering for shared buffers - #18
[ROCm] Fix intranode queue ordering for shared buffers#18AndreasKaratzas wants to merge 1 commit into
Conversation
Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com>
|
Do you have test suite results after this change? |
|
@kudomcho For vLLM you mean? |
|
@kudomcho lmk if there is anything needed on my end :) |
|
Hi, yes, please provide test reproducer and result logs if possible. Thank you. |
|
So the failure is: It is from our CI. You can use: docker pull rocm/vllm-ci:da3a252fd13f51c22657bfc8650936f2fbb5b6f3Which is one of our latest nightlies. And then you can just: cd /vllm-workspace
pytest tests/v1/distributed/test_dbo.py::test_dbo_dp_ep_gsm8k[deepep_high_throughput]You should then get a similar error message to: |
There was a problem hiding this comment.
Thanks for contributing to the project, I was not able to reproduce the issue on MI300 with the pipeline_test.
I see the PR is closed, a few points that might help the future investigation:
1- similar wide-warp sync (bar.sync) to wait_workgroup_warp_barrier has been tested before and it found that they cause performance regression. They should be avoided as much as possible.
2- On MI300/XGMI the load/store semantics can be relaxed as long as the buffers are not being updated by different CUs.
The Distributed Tests / DBO test group on ROCm vLLM CI fails in build 11147 when successive DBO microbatches share one ROCm DeepEP buffer. The intranode path can publish queue progress without a complete producer/consumer ownership chain, while whole-workgroup barriers can pair unrelated per-rank rounds. This change uses per-rank wave barriers and release/acquire ordering for dispatch and combine tail publication, queue-slot reuse, receiver progress, retirement, and shared tail fan-out. It also adds a two-rank regression test that drives asymmetric and randomized microbatches through repeated queue wraparound on the same buffer.