-
-
Notifications
You must be signed in to change notification settings - Fork 11.6k
[DP][ray] Support different VLLM_RAY_DP_PACK_STRATEGY #23849
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request refactors the data parallel placement group creation logic in Ray to ensure that dp_size_local ranks are strictly packed onto the same node. This is an important change for use cases like DeepEP. While the overall direction is correct, I've identified a critical bug in the implementation that prevents scheduling on any node other than the master node, which would break multi-node data parallelism. My review includes a suggested fix for this issue.
73eb8a6 to
26eaecc
Compare
Signed-off-by: Rui Qiao <ruisearch42@gmail.com>
345dcfc to
1d86f50
Compare
|
cc @njhill |
vllm/envs.py
Outdated
| # - "strict": | ||
| # allocate exactly data-parallel-size-local DP ranks to each picked node; | ||
| # This environment variable is ignored if data-parallel-backend is not Ray. | ||
| "VLLM_RAY_DP_PACK_STRATEGY": lambda: os.getenv("VLLM_RAY_DP_PACK_STRATEGY", "fill"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't the default be strict?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated
kouroshHakha
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs one change
|
LGTM |
njhill
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ruisearch42 @kouroshHakha
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: xuebwang-amd <xuebwang@amd.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: Dhruvil Bhatt <bhattdbh@amazon.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: bbartels <benjamin@bartels.dev>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: xuebwang-amd <xuebwang@amd.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: 0xrushi <6279035+0xrushi@users.noreply.github.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com> Signed-off-by: 0xrushi <6279035+0xrushi@users.noreply.github.com>
…3849) Signed-off-by: Rui Qiao <ruisearch42@gmail.com>
Purpose
Currently we only strictly pack dp_size_local for the master node. However, in case of DeepEP it assumes EP ranks [0, 7] are on the same node, (same for [8, 15], etc.) and uses cuda IPC for communication among them. If this is not satisfied, a runtime error is raised because cuda IPC does not work cross-node. This PR fixes the issue by restricting the placement.
Test Plan
Test Result
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.