Skip to content

[Ray] v1 Change device str for platform compatibility #19785

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

1StepForever
Copy link

@1StepForever 1StepForever commented Jun 18, 2025

Essential Elements of an Effective PR Description Checklist

  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.

Purpose

Change the "GPU" str to platform device key.
When using ray to create placement groups, there is a key error for other platforms. So fix it with platform abstraction.
image
image

Test Plan

No test needed

Test Result

(Optional) Documentation Update

Copy link

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run fastcheck CI which starts running only a small and essential subset of CI tests to quickly catch errors. You can run other CI tests on top of those by going to your fastcheck build on Buildkite UI (linked in the PR checks section) and unblock them. If you do not have permission to unblock, ping simon-mo or khluu to add you in our Buildkite org.

Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging.

To run CI, PR reviewers can either: Add ready label to the PR or enable auto-merge.

🚀

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @1StepForever, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical platform compatibility issue within the Ray placement group creation logic. By abstracting the device resource key, it ensures that resource allocation correctly identifies and utilizes available hardware, moving away from a GPU-specific assumption to a more generalized approach suitable for diverse computing environments.

Highlights

  • Platform Compatibility: This PR enhances platform compatibility by replacing the hardcoded 'GPU' string with a dynamic device_key when creating Ray placement groups. This resolves key errors encountered on platforms that do not use 'GPU' as their device identifier.
  • Resource Abstraction: Introduced an abstraction layer by importing current_platform from vllm.platforms to retrieve the appropriate ray_device_key. This makes the resource allocation logic more generic and adaptable to different hardware configurations.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mergify mergify bot added the v1 label Jun 18, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This PR addresses an important compatibility issue by abstracting the device key for Ray placement groups. The use of current_platform.ray_device_key is a good step towards platform independence.

One area for improvement is the test plan. The PR description states "No test needed". However, for changes impacting platform compatibility, it's crucial to have some form of verification. This could involve:

  • Manual testing on different target platforms (e.g., CUDA, ROCm if applicable) to confirm the fix works and no regressions are introduced.
  • Adding a unit test that checks the value of current_platform.ray_device_key for mocked or common platforms.
  • An integration test that verifies placement group creation with the new dynamic key.

Without testing, it's harder to be confident that this change behaves correctly across all intended environments and won't cause issues in the future. Please consider adding details about how this change was verified or a plan for testing it.

Additionally, please ensure the PR description checklist items like 'Test Results' are filled if any manual or automated tests are performed.

vllm/v1/utils.py Outdated
Comment on lines 404 to 405
from vllm.platforms import current_platform
device_key = current_platform.ray_device_key
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

According to PEP 8, imports like from vllm.platforms import current_platform should generally be placed at the top of the file. This improves code readability and organization.

Since vllm.platforms.current_platform appears to be lazily initialized (via __getattr__ in vllm/platforms/__init__.py), moving this import to the top-level imports of vllm/v1/utils.py should be safe and is the standard practice.

After moving the import, current_platform.ray_device_key (as used on the next line) will correctly access the top-level import.

Suggested change
from vllm.platforms import current_platform
device_key = current_platform.ray_device_key
# The import 'from vllm.platforms import current_platform' should be moved to the top of this file.
device_key = current_platform.ray_device_key # This line now relies on the top-level import.

@1StepForever 1StepForever changed the title Change device str for platform compatibility [Ray] v1 Change device str for platform compatibility Jun 18, 2025
@1StepForever 1StepForever force-pushed the 1StepForever-patch-device-str branch 2 times, most recently from e9a735f to ff00ecb Compare June 19, 2025 06:39
Signed-off-by: 1StepForever <wangww1step@foxmail.com>
@1StepForever 1StepForever force-pushed the 1StepForever-patch-device-str branch from ff00ecb to 788deb8 Compare June 19, 2025 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant